GRUB 是一个用于加载和管理系统启动的完整程序。它是Linux 发行版中最常见的 引导程序 bootloader 。引导程序是计算机启动时运行的第一个软件。
1.grub命令行模式#
如果进入的grub命令行模式的话,则说明GNU grub找不到正确的引导文件,这时候可以通过命令手动来进行选择,如下
查看当前路径
1 | grub> ls |
输出如下
1 | (proc) (hd0)、(hd0, msdos1) (hd1) (hd1,gpt4) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2) (hd2,gpt3) (hd2,gpt2) (hd2,gpt1) (hd3) (hd3,gpt1) |
我这边机器挂了4块硬盘,所以就会有hd0,hd1,hd2,hd4
这时候就需要找到linux系统安装所在的分区,只能每个盘的每个分区一个个试过去,比如hd0只有1个分区,我们就可以使用如下命令查看1分区的文件目录
1 | grub> ls (hd0,1) #再按tab键 |
出现的是lost+found,说明这是一个数据盘,并不是linux系统分区,当试到hd1,4的时候
1 | grub> ls (hd1,4) #再按tab键 |
出现,说明找到了linux系统安装的盘
1 | lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/ root/ run/ sbin/ snap/ srv/ sys/ tmp/ usr/ var/ initrd.img/ vmlinux cdrom/ lib32/ |
接下来使用如下命令选择这个引导
1 | set root=(hd1,4) |
会正常进到grub系统选择页面,然后就可以正常进入linux系统,如下
2.修复GRUB引导#
安装boot-repair来对引导进行修复
1 | sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update |
然后运行boot-repair按布置操作即可
对于ubuntu18.04以下的版本,可能无法通过apt-get来安装boot-reapir,会报源找不到的错误
可以直接下载deb包来进行安装boot-repair
1 | # Download debian packages |
参考:
1 | https://gist.github.com/wilm0x42/6f11a58d3ef1ccb1238045e29834af40 |