如何将GRUB重新安装到EFI分区?

・4 分钟阅读

问题

我想重新安装GRUB 2,并且找到以下说明: 如何用ubuntu live cd或usb修复、恢复或重新安装grub 2,在我的例子中,引导加载程序安装在EFI分区中,如果我使用这个指南中提供的方法,GRUB会自动重新安装到EFI分区,还是会安装到Ubuntu的根分区?


回答1

用这种方式将GRUB引导加载程序安装到你的Ubuntu安装中。

从Ubuntu安装介质启动,并且选择'Try Ubuntu without installing'。
(用EFI模式引导安装媒体,在前面选择带有UEFI的Ubuntu条目),

在活动桌面上,打开终端,并且执行以下命令:


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分区中。


回答2

我升级后(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 partition | sdXY = boot partition | sdXXX = system partition


回答3

这是对我有用的唯一方法:(系统:sdb8,boot: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




回答4



$ 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安装:


# grub-install --target=x86_64-efi /dev/sdX 


Installing for x86_64-efi platform.


Installation finished. No error reported.




回答5

如果你碰巧失去了EFI分区,其实很容易恢复,可以使用fdiskparted创建一个有类型"EFI分区(1)的新的分区,并将它设置为:


sudo mkfs.msdos /dev/sdX



然后挂载它,你可以执行以下操作:


sudo grub-install /dev/sdX




讨论
Tianye profile image