以存在 /boot 单独分区举例
准备一个ubuntu 16.04的引导优盘,推荐用 Refus,然后从优盘启动,选择 try without install(试用模式),然后打开一个终端.在终端中依次输入以下命令
sudo mount/dev/sdXX /mnt #挂载/分区
sudo mount/dev/sdXX /mnt/boot #挂载boot分区
for i in /dev /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub
其中如果系统是UEFI模式启动.则上面的第二句需要改为
sudo mount/dev/sdXX /mnt #挂载/分区
sudo mount/dev/sdXX /mnt/boot/efi #挂载efi分区
for i in /dev /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install /dev/sdX
update-grub
用命令 efibootmgr 可以查看当前系统是否是UEFI模式,当用UEFI启动时会返回如下类似信息.
aaa@HHHH:~$ efibootmgr
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0002,0000,0003,0001,0004,0005
Boot0000* Windows Boot Manager
Boot0001* UEFI:CD/DVD Drive
Boot0002* ubuntu
Boot0003* Hard Drive
Boot0004* UEFI:Removable Device
Boot0005* UEFI:Network Device
PS:其实efibootmgr这个命令就可以修改启动项,感兴趣的同学可以去尝试.
另外如果grub损坏,开机提示 grub命令。可以通过如下方式启动硬盘中的系统
grub> ls #查询系统存在的硬盘
grub> set root=(hd0,gpt2) #设置根分区对应的硬盘
grub> set prefix=(hd0,gpt2)/boot/grub #设置grub目录位置
grub> insmod normal #安装normal 模块
grub> normal #启动到grub选择界面,正常情况下就可以进系统了