GRUB 2を再インストールしたいのですが、次の指示が見つかりました: buntu Live CDまたはUSBでGrub 2を修復、復元、または再インストールする方法 。私の場合、ブートローダーはEFIパーティションにインストールされています。このガイドで提供されているコマンドを使用すると、GRUBはEFIパーティションに自動的に再インストールされますか、それともUbuntuがインストールされているルートパーティションにインストールされますか?明らかに、私はこれが起こることを望まない。
このようにして、EFIモードでUbuntuインストールにGRUBブートローダーを再インストールします...
Ubuntuインストールメディアから起動し、「インストールせずにUbuntuを試す」を選択します。
(インストールメディアをEFIモードで起動し、UEFIを前面に持つUbuntuエントリを選択します。)
Liveデスクトップを開いたら、ターミナルを開いて次のコマンドを実行します。
Sudo mount /dev/sdXXX /mnt
Sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do Sudo mount -B $i /mnt$i; done
Sudo chroot /mnt
grub-install /dev/sdX
update-grub
注:sdX
= disk | sdXX
= efiパーティション| sdXXX
=システムパーティション
GPartedを使用してパーティションを識別するには、ツールがインストールメディアに含まれています。
コマンドを実行すると、GRUBが別のEFIパーティションにインストールされます。
これは私のために働いた唯一の方法です:(システム:sdb8、ブート:sdb6、efi:sdb2)
Sudo mount /dev/sdb8 /mnt
Sudo mount /dev/sdb6 /mnt/boot
Sudo mount /dev/sdb2 /mnt/boot/efi
Sudo mount --bind /dev /mnt/dev &&
Sudo mount --bind /dev/pts /mnt/dev/pts &&
Sudo mount --bind /proc /mnt/proc &&
Sudo mount --bind /sys /mnt/sys
Sudo chroot /mnt
grub-install --target=x86_64-efi /dev/sdb
grub-install --recheck /dev/sdb
exit &&
Sudo umount /mnt/sys &&
Sudo umount /mnt/proc &&
Sudo umount /mnt/dev/pts &&
Sudo umount /mnt/dev &&
Sudo umount /mnt
また、ライブcdから起動して回復する場合、grub-efi-AMD64-binパッケージが欠落していて、
"grub-install --target=x86_64-efi /dev/sdb"
「grub-install:エラー:/usr/lib/grub/x86_64-efi/modinfo.shが存在しません。--targetまたは--directoryを指定してください」というエラーメッセージが表示されて失敗します。
この場合、chrootの外部でこれを実行します
Sudo apt get grub-efi-AMD64-bin
そして/ usr/lib/grub/x86_64-efiをchrootマウントに追加します。
ところで、「/ dev/sdb」パラメータは廃止され、無視されています。
手順については@ cl-netboxに感謝します!
Linux Mint 18.2 Sonyaを18.3 Sylviaにアップグレードした後、システムが起動しなかったため、上記の手順を実行しましたが、まだ成功しませんでした。しかし、マシンが別のパーティションに/ bootを持っていることに気づきました(おそらくLVMを使用しているためです)。
Sudo mount /dev/sdXXX /mnt
Sudo mount /dev/sdXY /mnt/boot
Sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do Sudo mount -B $i /mnt$i; done
Sudo chroot /mnt
grub-install /dev/sdX
update-grub
注:sdX = disk | sdXX = efiパーティション| sdXY =ブートパーティション| sdXXX =システムパーティション
EFIパーティションが失われた場合、簡単に元に戻すことができます。 fdisk
またはparted
を使用して、「EFI partition(1)」タイプの新しいGPTパーティションを作成し、次の形式でフォーマットできます。
Sudo mkfs.msdos /dev/sdX
それをマウントすると、実行に従うことができます:
Sudo grub-install /dev/sdX
他のソリューションのように。
ci-netboxの回答に加えて。
お使いのペンドライブのOSバージョンがディスクにインストールされているものと一致しない場合、grub-installは適切なgrubインストールを特定するのが難しい場合があります。
$ Sudo chroot /mnt
# grub-install /dev/sdX
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist.
Please specify --target or --directory.
使用するインストールを手動で特定してください
# ls /usr/lib/grub/
grub-mkconfig_lib x86_64-efi x86_64-efi-signed
次にgrub-installを再起動します:
# grub-install --target=x86_64-efi /dev/sdX
Installing for x86_64-efi platform.
Installation finished. No error reported.
私の推測では、問題の原因はUbuntuのインストールがfstabの場合にefiパーティションをマウントしていないことです。そしてgrubを更新します。更新時に。