web-dev-qa-db-ja.com

別のドライブにgrubを再インストールしますか?

PCを分解して組み立て直したところ、GRUBが消えました。
SSD(sdb、GPT)とHDD(sda、MBR)の2つのディスクがあります。

  • sda1:「パーツ」(128MB)
  • sda2:windows、ntfs
  • sda3:Windows、ntfs(grub&Archのインストール後にこのパーティションを追加)
  • sda4:Arch Linux /

  • sdb1:Windowsの回復(ntfs)

  • sdb2:/ boot/efi(vfat)
  • sdb3:再び「一部」、16MB
  • sdb4:再びwindows(メインのwindowsパーティション、ここにインストールされます)

私は通常SSDで起動し、WindowsブートローダーとArch_grubを使用していました
Windowsブートローダーしかありませんが、grubのファイルはまだあります。grubx64.efiには/boot/efi/EFI/Arch_grubがあり、grubenvgrub.cfgx86_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 は役に立たないでしょう

2
Random Coder 99

助けてくれた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が戻ってきます。

0
Random Coder 99

Linuxリカバリメディア/ライブCDを起動してから、/ dev/sda4を/ mntにマウントし、/ dev/sdb2を/ mnt/bootにマウントします。/mntをchrootしてから、grub-install/dev/sdbを実行します。

0
Raman Sailopal