tonglin0325的个人主页

ubuntu下GRUB使用

GRUB 是一个用于加载和管理系统启动的完整程序。它是Linux 发行版中最常见的 引导程序 bootloader 。引导程序是计算机启动时运行的第一个软件。

1.grub命令行模式#

如果进入的grub命令行模式的话,则说明GNU grub找不到正确的引导文件,这时候可以通过命令手动来进行选择,如下

查看当前路径

1
2
grub> ls

输出如下

1
2
(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
2
grub> ls (hd0,1) #再按tab键

出现的是lost+found,说明这是一个数据盘,并不是linux系统分区,当试到hd1,4的时候

1
2
grub> ls (hd1,4) #再按tab键

出现,说明找到了linux系统安装的盘

1
2
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
2
3
4
5
set root=(hd1,4)
set prefix=(hd1,4)/boot/grub
insmod normal
normal

会正常进到grub系统选择页面,然后就可以正常进入linux系统,如下

参考:Ubuntu开机出现grub指令,无法正常开机

2.修复GRUB引导#

安装boot-repair来对引导进行修复

1
2
3
sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair

然后运行boot-repair按布置操作即可

参考:ubuntu启动盘修复grub引导

对于ubuntu18.04以下的版本,可能无法通过apt-get来安装boot-reapir,会报源找不到的错误

可以直接下载deb包来进行安装boot-repair

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Download debian packages
wget https://launchpad.net/~yannubuntu/+archive/ubuntu/boot-repair/+files/glade2script_3.2.3~ppa4_all.deb
wget https://launchpad.net/~yannubuntu/+archive/ubuntu/boot-repair/+files/boot-sav_4ppa65_all.deb
wget https://launchpad.net/~yannubuntu/+archive/ubuntu/boot-repair/+files/boot-repair_4ppa65_all.deb

# Attempt to install them
sudo dpkg -i ./glade2script_3.2.3~ppa4_all.deb
sudo dpkg -i ./boot-sav_4ppa65_all.deb
sudo dpkg -i ./boot-repair_4ppa65_all.deb

# Now that dpkg knows we need to install dependancies for these packages
# use apt-get to auto-install said dependancies
sudo apt-get -f install

# Install the packages FOR REAL this time
sudo dpkg -i ./glade2script_3.2.3~ppa4_all.deb
sudo dpkg -i ./boot-sav_4ppa65_all.deb
sudo dpkg -i ./boot-repair_4ppa65_all.deb

参考:

1
2
https://gist.github.com/wilm0x42/6f11a58d3ef1ccb1238045e29834af40