PCを分解して組み立て直したところ、GRUBが消えました。
SSD(sdb、GPT)とHDD(sda、MBR)の2つのディスクがあります。
sda4:Arch Linux /
sdb1:Windowsの回復(ntfs)
私は通常SSDで起動し、WindowsブートローダーとArch_grubを使用していました
Windowsブートローダーしかありませんが、grubのファイルはまだあります。grubx64.efi
には/boot/efi/EFI/Arch_grub
があり、grubenv
、grub.cfg
、x86_64-efi
in /boot
(ウィンドウをUEFIモードでインストールしましたが、ArchもUEFIモードでインストールしたと思います。アーキテクトを使用しました)
つまり、基本的にgrubはHDDにある/boot
にあり(そして/boot/efi
はSSDにあります)、これまではすべて正常に機能していました。 ubuntu liveusbでboot-repair
を使用しようとしましたが、「Archにgrub-AMD64-efi-signed
パッケージがインストールされていません」というエラーが発生しました。
grubのコマンドライン を使用してArchで起動できると思いますが、どうすればよいですか?私はすでに必要なファイルをすべて持っているので、 grub-install は役に立たないでしょう
助けてくれたRamanSailopalとcasに感謝しますが、私の場合には合いませんでした。
/dev/sda4がLinuxルート、/ dev/sdb2がEFIパーティション(/ boot/efiにある)、linux/initrdファイルが/boot/vmlinuz-linux
&/boot/initramfs.img
であると仮定して、従うべき正確な手順は次のとおりです。
AMD64アーキテクチャでubuntu(16.04?)のライブUSBを焼き、起動して次のコマンドを貼り付けます。
Sudo os-prober
efibootmgr
まだインストールされていない場合は、os-proberまたはefibootmgrをインストールします。
Sudo apt-get install os-prober
Sudo apt-get install efibootmgr
EfiモードのGrubはおそらくインストールされていません。インストールしてください。
Sudo apt-get install grub-efi-AMD64-signed
次に、grubをインストールします。
Sudo mount -t ext4 /dev/sda4 /mnt
Sudo mount -t vfat /dev/sdb2 /mnt/boot/efi
grub-install --target=x86_64-efi --efi-directory=/mnt/boot/efi --boot-directory=/mnt/boot --bootloader-id=grub
grub-mkconfig
を使用しようとしないでください。機能しません。
代わりに、新しくgrubブートローダーから起動します grubシェルがあります。これらのコマンドを貼り付けてください :
set root=(hd0,4)
linux /boot/vmlinuz-linux root=/dev/sda4
initrd /boot/initramfs.img
boot
その後、Linuxを使用し、efiパーティションがまだマウントされていない場合はマウントし、grub/os-prober/efibootmgrをインストールして、次のコマンドを実行します。
Sudo os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/efi --boot-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
再起動すると、grubが戻ってきます。
Linuxリカバリメディア/ライブCDを起動してから、/ dev/sda4を/ mntにマウントし、/ dev/sdb2を/ mnt/bootにマウントします。/mntをchrootしてから、grub-install/dev/sdbを実行します。