EndeavourOSをインストールした後(ライブUSB経由)、グラブは機能しません。

EndeavourOSをインストールした後(ライブUSB経由)、グラブは機能しません。

以前にUbuntuをインストールした/ dev / sdaパーティションのガイドに従って、ライブUSB経由でEndeavorOS(アーチLinuxベース)をインストールしましたが、正しく実行されました。また、Windows 10がインストールされている別のハードドライブである/ dev / sdbパーティションもあります。コンピュータの電源を入れるたびにgrubシェルに入りますが、両方のOSが正しく起動できません。

以下は grub シェルの出力です。

grub>ls
grub>(hd0) (hd1) ... (hd1,gpt2) (hd2,gpt2) (hd1,msdos1)...

必要なパーティションは(hd1、gpt2)なので、次のようにします。

grub>set root (hd1,gpt2)
grub>linux /boot/vmlinuz-linux root=/dev/sda2
grub>initrd /boot/initramfs_linux.image
grub> boot

通常はEndeavourOSで起動します。その後、grubのインストールを修復しようとしました。

$ sudo grub-mkconfig -o /boot/grub/grub.cfg
$ sudo grub-install /dev/sda

これにより、次のエラーが発生します。

Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.

次のようにEFIパーティションを指定してみました。これ答え:

$ sudo mount /dev/sda1 /mnt
$ sudo grub-install --efi-directory=/mnt/EFI

しかし、私は次のようになります。

Installing for x86_64-efi platform.
grub-install: warning: disk does not exist, so falling back to partition device /dev/sda1.
grub-install: warning: disk does not exist, so falling back to partition device /dev/sda1.
grub-install: warning: disk does not exist, so falling back to partition device /dev/sda1.
grub-install: error: disk `hostdisk//dev/sda1' not found.

/mnt/EFI ディレクトリを確認しました。

$ls /mnt/EFI/
drwxr-xr-x 2 root root 4096 21 apr  2019 BOOT
drwxr-xr-x 3 root root 4096 24 mar 15.22 ubuntu

そのため、USB Liveインストールがパーティションを正しくフォーマットしていない可能性があると思いました。すべてをフォーマットして最初から始めずにこの問題を解決する方法はありますか?よろしくお願いします。

編集:提案されているようにefiディレクトリに/ mntを呼び出してみました。

$ sudo grub-install --efi-directory=/mnt

そして、このエラーが発生しました:

Installing for x86_64-efi platform.
Could not prepare Boot variable: No space left on device
grub-install: error: efibootmgr failed to register the boot entry: Input/output error.

今私の/mnt/EFIフォルダは次のようになります。

$ ls /mnt/EFI
BOOT  endeavouros  ubuntu
$ ls /mnt/EFI/endeavouros
grubx64.efi
$ ls /mnt/EFI/ubuntu
BOOTX64.CSV  fw  grub.cfg  grubx64.efi  mmx64.efi  shimx64.efi

Ubuntuフォルダを削除する必要がありますか?

また、efibootmgrを実行して多くの結果を得ました。

BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,000C,001A,0012,0007,0009,0011,0013,0014,0015,0017,0018,0019,0001,0002,0003
Boot0000* ubuntu
Boot0001* UEFI:CD/DVD Drive
Boot0002* UEFI:Removable Device
Boot0003* UEFI:Network Device
Boot0007  UEFI OS
Boot0009  CD/DVD Drive 
Boot000C* UEFI OS
Boot0011  UEFI OS
Boot0012* Unknown Device
Boot0013  ubuntu
Boot0014  ubuntu
Boot0015  UEFI OS
Boot0017  ubuntu
Boot0018  UEFI OS
Boot0019  ubuntu
Boot001A* UEFI OS

解決済み:フォローしましたガイドWikiからUEFIにライブシステムを起動します(それ以外の場合は機能しません)。

答え1

efiディレクトリが正しくないため、パーティションをマウントされたパスに設定する必要があります。次の目的にもsudo使用されますgrub-install

sudo mount /dev/sda1 /mnt
sudo grub-install --efi-directory=/mnt

編集する:

efivars(パーティションではなくEEPROMの場所/dev/sda1)がいっぱいになってきれいにする必要があるようです。

efibootmgr -v古いUbuntuエントリがある場合は、古いエントリを実行して削除します。

Boot0014* ubuntu    HD(1,GPT,...)/File(\EFI\ubuntu\shimx64.efi)

だから削除してもいい

sudo efibootmgr -b 0014 -B

またdump-*、のファイルを削除してください/sys/firmware/efi/efivars。この回答を参照してください。グラップのインストールに失敗しました

はい、ディレクトリを削除することもできますが、正常に作成されたため、/mnt/EFI/ubuntuこれがエラーの原因ではないようです。endeavouros/grubx64.efi

それでは試してください。

sudo grub-install --efi-directory=/mnt

再び。

関連情報