GRUB 2を再インストールしたいのですが、Ubuntu Live CDまたはUSBでGrub 2を修復、復元、または再インストールする方法を見つけました 。私の場合、ブートローダーはEFIパーティションにインストールされています。このガイドで提供されているコマンドを使用する場合、GRUBはEFIパーティションに自動的に再インストールされますか、それともUbuntuがインストールされているルートパーティションにインストールされますか?明らかに、私はこれが起こることを望まない。
GRUB 2を再インストールしたいのですが、Ubuntu 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
=ディスク| sdXX
= efiパーティション| sdXXX
=システムパーティション
GPartedを使用してパーティションを識別するには、ツールがインストールメディアに含まれています。
コマンドを実行すると、GRUBは別のEFIパーティションにインストールされます。
grub-efi
する場合はUEFIモードでブートする必要があり、再インストールする場合はgrub-pc
レガシーモードでブートする必要があります。
grub-install /dev/sdXX
。つまり、ディスクではなく、EFIパーティションがgrubのインストールに使用され、機能しました。
これは私のために働いた唯一の方法です:(システム: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
--recheck
するの?マニュアルにはdelete device map if it already exists
?
--bootloader-id=Ubuntu_02
ブートが失敗します。GRUBコンソールで起動するだけです...解決策はありますか?
grub-install --recheck
必要なようです。動作しないUSB HDD EFIを修正しました。
手順については@ cl-netboxに感謝します!
Linux Mint 18.2 Sonyaを18.3 Sylviaにアップグレードした後、システムが起動しなかったため、上記の手順を実行しましたが、まだ成功しませんでした。しかし、私のマシンは(おそらくLVMを使用しているために)別のパーティションに/ bootがあることに気付きました。
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 =システムパーティション
また、ライブ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」パラメータは廃止され、無視されています。
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を更新します。更新時に。