EFIエラー

MACHINA

プロンプト

朝PCを起動させようとスイッチを押したところ,これまで見たことのないGrubプロンプト画面になっていた。

再起動しても同じだった。仕方がないのでBiosからいつも使っているシステムを立ち上げたのだが,それで特にエラーが起こるわけでもない。

エラー

ところが,ターミナルで grub-install を実行しようとすると,EFIが見付からないというエラーが返ってくる。

$ sudo grub-install /dev/sda

Installing for x86_64-efi platform.
grub-install: エラー: cannot find EFI directory.

つまり,正常にGrubが設定されていないことになる。それで,思い付く限りのことをやってみたのだが,未だに原因と対処方法がわからない。

Boot Repair Disk

最終的に,“Boot Repair Disk” を作成し,起動して対話的にGrubを修復・再インストールして様子を見ることにした。

EFIパーティションの削除

長い間 Windows7 とのデュアルブート環境で /dev/sda1 を EFI システムパーティションとして使い続けてきたため,これを一旦削除してみることにした。

そのため,NVMe (Non-Volatile Memory Express) にインストールされている Windows11 を立ち上げ,diskpart コマンドを使用することにした。

以下がその行程である。

“Windows + R”を押し,「ファイル名を指定して実行」ボックスを表示。“cmd”と入力し,OKを押すと,プロンプトが表示される。
C:\... >diskpart
DISKPART> list disk  (PCにマウントされているディスクを表示する。)
DISKPART> sel disk 0 (ディスクを選択する,ここで0が選択済みのディスクのディスクレター。)
DISKPART> list partition (選択したディスクにあるパーティションを表示する。)
DISKPART> sel partition 1 (パーティションを選択する。)
DISKPART> set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7(ベーシック・データ・パーティションにする型のフィールドを設定する。)
DISKPART> delete partition override(選択したパーティション1を削除。)
DISKPART> create partition primary size=X

ディスク順序

新たにパーティションを作ると,領域テーブル項目がディスクの順序と対応しなくなる。ところが Linux システムでは,fdisk を用いるとこれを簡単に修正できる。

$ sudo -i
# fdisk -l
# fdisk /dev/sda
コマンド (m でヘルプ): x
上級者コマンド (m でヘルプ): f
上級者コマンド (m でヘルプ): r
コマンド (m でヘルプ): p
コマンド (m でヘルプ): w
パーティションテーブルは変更されました!
# reboot
タイトルとURLをコピーしました