デュアルブート環境で「Shim SBATデータの検証に失敗しました(Security Policy Violation)」エラーが出たときの対処法
「Verifying shim SBAT data failed: Security Policy Violation」(Shim SBATデータの検証に失敗しました:セキュリティポリシー違反)というエラーは、WindowsとLinuxを両方インストールしているデュアルブート環境のPCでよく発生します。これは、Secure Boot(セキュアブート)というセキュリティ機能がLinuxの起動をブロックすることで起こるものです。
原因は、Microsoftが最近のWindowsアップデートで導入した最新のセキュリティルールに対して、Linux側で使われている起動ファイル(ShimやGRUB)が古く、対応できていないことにあります。これらのアップデートによってSecure Bootの基準はより厳格になっており、Linuxのブートローダーが更新されていなかったり適切に設定されていなかったりすると、システムが起動できずこのエラーが表示されます。
幸いなことに、環境に応じていくつかの解決方法があります。Linuxを引き続きWindowsと併用している場合でも、もうLinuxが必要ない場合でも、以下の方法でシステムを正常に起動できるようになります。
方法1:Secure Bootを一時的に無効化し、Shimを更新してから再度有効化する
このエラーの主な原因は、Linuxのブートローダー(通常はShim)が古くなり、Secure Bootから信頼されなくなっていることです。対処としては、まずSecure Bootを一時的に無効化し、次にShimを安全なバージョンへ更新し、最後にSecure Bootを再度有効化してシステム保護を完全な状態に戻します。
ステップ1:Secure Bootを無効にする
- PCを再起動し、起動画面に表示されるキー(一般的にはDelete、Esc、F2、F10など)を押してBIOS/UEFIに入ります。
- Boot(起動)タブまたはSecurity(セキュリティ)タブへ移動します。
- Secure Bootの項目を見つけてDisabled(無効)に設定します。
- F10キーを押して設定を保存し、BIOSを終了します。
- Linuxシステムを起動します。
ステップ2:SBATポリシーを削除し、Linux上でShimを更新する
- Linuxが起動したら、Ctrl + Alt + Tを押してターミナルを開きます。
- 以下のコマンドを実行して、既存のSBATポリシーを削除します。
sudo mokutil --set-sbat-policy delete
- 一度システムを再起動します。
- 再びターミナルを開き、以下のコマンドでShimを更新します。
sudo apt update && sudo apt upgrade shim-signed
- 更新が完了したら、PCを再度再起動します。
ステップ3:Secure Bootを再度有効にする
- PCを再起動し、再びBIOSに入ります。
- Secure Bootの項目に移動し、Enabled(有効)に戻します。
- 設定を保存してBIOSを終了します。
- これで、Secure Bootが有効かつ更新済みの有効なShimを使った状態で、システムが正常に起動するはずです。
方法2:BIOSで起動順序を変更し、Windows Boot Managerを優先させる
Shimを修正してもSBATエラーが表示される場合や、Linuxを起動しようとしてしまう場合は、誤ったブートローダーが選択されている可能性があります。デュアルブート環境では、WindowsとLinuxがそれぞれ独自のブートマネージャー(Windows Boot ManagerとGRUB/Shim)をインストールします。システムが先にLinux側を読み込もうとすると、このエラーが発生することがあります。BIOSで起動順序を変更し、Windows Boot Managerを最初に読み込むようにすれば解決できます。
- PCを再起動し、起動時に表示されるキー(通常はDelete、Esc、F2、F10)を押してBIOS/UEFIに入ります。
- Boot(起動)タブまたはセクションへ移動します。
- Boot Priority(起動優先度)またはBoot Option Priorities(起動オプションの優先順位)を探します。
- Windows Boot Managerを最初の起動オプションに設定します。
- GRUB、Shim、その他のLinux起動エントリーを下位の優先度へ移動します。
- F10キーを押して設定を保存し、BIOSを終了します。
- これで、Linuxのブートローダーを読み込むことなく、直接Windowsが起動するようになります。
方法3:BIOSでFast Bootを無効化する
それでもエラーが出る場合は、BIOSのFast Boot(ファストブート)機能が原因かもしれません。この設定はハードウェアチェックをスキップして起動を高速化するものですが、特にデュアルブート環境では、LinuxなどのOSが正しく読み込まれるのを妨げることがあります。Fast Bootを無効にすると、システムがすべてのハードウェアを適切にチェックするようになり、ShimやGRUBといったブートローダーとの競合を回避できます。
- PCを再起動し、起動時に表示されるキー(通常はDelete、Esc、F2、F10)を押してBIOS/UEFIに入ります。
- Boot(起動)タブまたはセクションへ移動します。機種によっては、先にAdvanced Mode(詳細モード)に切り替える必要があります。
- Fast Bootという項目を探します。
- Disabled(無効)に設定します。
- 設定を保存します(F10キーを押すか、Save & Exitを選択)。
- PCを再起動し、再度起動を試みます。
方法4:Windowsをリセットして競合するブートローダーを除去する
もうLinuxを使用しておらず、エラーなしでWindowsだけを起動したいのであれば、Windowsのリセットは確実な解決策です。このプロセスでは、残存するLinuxブートローダー(GRUBやShimなど)が削除され、破損したWindowsの起動ファイルが修復され、Secure Bootの設定もデフォルトに戻ります。他の解決策がうまくいかない場合や、起動後もSBATエラーが表示され続ける場合に有効な選択肢です。
- まず、PCを強制的に再起動することを3〜4回繰り返し、自動修復(Automatic Repair)画面を表示させます。
- 画面が表示されたら、トラブルシューティング(Troubleshoot)をクリックします。
- このPCを初期状態に戻す(Reset this PC)をクリックします。
- 個人データを残したい場合は「個人用ファイルを保持する(Keep my files)」を、まっさらな状態から始めたい場合は「すべて削除する(Remove everything)」を選択します。
- 画面の指示に従ってリセットを完了させます。
リセットが完了すると、Windowsはデフォルトのブートローダーを使って正常に起動します。必要に応じて、BIOSからSecure Bootを再度有効化し、セキュリティを強化しておきましょう。
-
Linuxターミナルをマスター:Ctrl+Rでコマンド履歴を素早く検索・再利用する方法
モダンなbashシェルを使用しているなら、キーボードショートカット「Ctrl+R」を活用してコマンド履歴を検索できます。以前実行したコマンドを呼び出し、そのまま再実行できるため、コマンドラインでの作業効率が大幅に向上します。この機能は、emacsモードでkshを使用している場合など、他のシェルでも同様に動作します。この操作にはターミナルが必要です。「Ctrl+Alt+T」を同時に押すか、デスクトップ環境によっては「Super+T」で起動できます。また、アプリケーションメニューから「システムツール」→「ターミナル」を選択するか、Ubuntu Dashで検索して開くことも可能です。方法1:Ctrl
-
Linux・Ubuntuでマザーボードの型番を確認する方法|ターミナルとGUI両方の手順を徹底解説
RAMカードやUSB、PCI、PCI Expressデバイスと同様に、Linuxにはシステムに搭載されたマザーボードのメーカーやモデルを調べるためのツールが標準で用意されています。他のデバイスは取り外して目視確認できますが、マザーボードは物理的にアクセスするのが最も困難なパーツの一つです。だからこそ、ソフトウェア経由で情報を取得できるのは非常に便利なのです。デスクトップPCではマザーボードがケース内部に固定され、小型ネットブックやタブレットではほぼ触れることすらできない場合もあります。本記事では、コマンドラインとグラフィカルツールの2つの方法でマザーボード情報を確認する手順を紹介します。どちら