EFI ディレクトリが見つかりません: grub インストールの問題

EFI ディレクトリが見つかりません: grub インストールの問題

LinuxでGRUBを救出しようとしています。このチュートリアルに従ってOSにログインできました。

https://www.liisenet.com/2014/grub2-rescue-mode-error-unknown-filesystem/

この問題を解決するには、GRUBをアップグレードする必要がありました。ただし、実行するとgrub-installエラーが発生します。

$ grub-install /dev/sda
grub-install: error: cannot find EFI directory.

私のファイルシステムには、それぞれEFIシステム、Linuxスワップ領域、およびLinuxファイルシステムを表す、およびが含まれていsda4ますsda5sda6

私はmountや他のコマンドを使った経験がありません。

答え1

走るときグラップインストールデフォルトでは、EFIシステムが/boot/efiとしてマウントされているとします。

これはEFIシステムをインストールするディストリビューションによって異なり、一部のディストリビューションではブート後にEFIシステムがインストールされません。

まず、/boot/efiがマウントされていることを確認してください。

mount | grep /boot/efi

それでも問題が解決しない場合は、まず次のことを試して他の場所にインストールされていることを確認してください。

mount | grep /dev/[efi device]

これらのうち何も機能しない場合:

mount /dev/[efi device] /mnt

次に、次を実行します。

grub-install --efi-directory=[efi dir]
grub-mkconfig -o /boot/grub/grub.cfg

ここで、[efi dir]は/boot/efiまたは/mnt、[efi device]はEFIシステムパーティションを持つデバイスです。使用する命令がわからない場合lsblk -o NAME,PARTTYPE,MOUNTPOINT | grep -i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B"

答え2

efiディレクトリは次の場所になければなりません。/スタート/efi/

どのパーティションefiがあるかを知るには、パーティションテーブルを確認する必要があります。したがって、メインディスクが/ dev / sdaの場合は、次のようになります。

fdisk -l /dev/sda
Device             Start        End   Sectors   Size Type
/dev/sda1           2048     309247    307200   150M EFI System
/dev/sda2         309248  964843519 964534272 459.9G Linux filesystem
/dev/sda3      964843520 1000214527  35371008  16.9G Linux filesystem

類似コンテンツの検索結果EFIシステムまたはEFI(FAT-12/16/32)

パーティション番号(この場合はsda1)がわかったら、それをマウントする必要があります。/スタート/efi

何らかの理由で /boot/efi/ ディレクトリが存在しない場合は、ディレクトリを作成します。

mkdir /boot/efi

そしてefiをこのディレクトリにマウントします。

mount /dev/sda1 /boot/efi/

それがすべてだと思います。ディスクに grub をインストールできる必要があります。

答え3

今この問題が発生しました。回復USBスティックを起動しました。私に役立つ修正を説明します。

検索すると、gdisk -l /dev/sda元のルートパーティションがあることがわかります/dev/sda2。これにアクセスするには、次のように入力します。sudo mount /dev/sda2 /mnt

今まではそんなに良くなった。何かを最初に説明するといいえ作業してからソリューションを選択してください。一部のページではchroot /mntthenを提案していgrub-installますが、エラーが発生しますgrub-install: error: cannot find EFI directory.

他の提案に従って、EFIパーティションはこのようなものを見て再びchrootを/dev/sda1試みましたsudo mount /dev/sda1 /mnt/boot/efi。今grubは/dev私のために行方不明になったと文句を言いますmount --bind /dev/ /mnt/dev。 ...しかし、グラップは他のことについて文句を言った。状況が歩くことができず雪玉のように吹き飛ばされました。chroot答えではありません。

うまくいくのは次のとおりです。grub-install -d /mnt/usr/lib/grub/x86_64-efi --boot-directory=/mnt/boot /dev/sda

このフラグは必須です。それ以外の場合、grubは正しいコンテンツを含まない回復イメージを-d使用しようとします。/usr/lib/grub/i386-pc

うん、うん!これでシステムが再起動します!

答え4

sudo apt-get --purge autoremove  grub-efi-amd64-signed

関連情報