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
ますsda5
。sda6
私は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 /mnt
thenを提案してい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