Linux我用 LinuxLinux学习之路

Ubuntu开机进入GRUB手动引导

2018-12-01  本文已影响33人  团不慌

推测原因:昨天系统升级添加内核后没有更新grub
相似情况:Win10更新后引导崩溃修复


问题描述:在引导彻底崩溃的情况下我们曾尝试使用grub rescue手动寻找引导进入系统。这次的情况有些不同,开机找到了grub,但grub无法正确引导系统。
问题特征:开机后进入以下界面:

GNU GRUB version x.x.xxxxx
Minimal BASH-like line editing is supported...
grub >

第一步:找到根目录和GRUB
使用ls命令查看当前可以访问的扇区:

grub > ls   #这里没有4的原因:第四扇区应该是虚拟扇区
(hd0), (hd0, msdos7), (hd0, msdos6), (hd0, msdos5), (hd0, msdos3), ...

继续使用ls查看每个扇区的信息,需要注意:

  1. (hd0)hd0
  2. (hd0,msdos5)(hd0,5)
  3. ls (hd0)⇒查看(hd0)扇区信息(盘符、空间...)
    ls (hd0)/⇒查看(hd0)扇区下内容(多了一个`/``)

通过挨个打印子目录内容,我们可能遇到以下两种情况:

  1. A目录下有boot/boot/下还有grub/
  2. A目录下有boot/,B目录下有grub/

造成该不同的原因是因为最初分区时的策略原因,如果按照其他教程发现boot目录下没有grub类似问题,有可能是在另一个独立扇区。

第二步:加载系统内核
使用命令如下:

grub > set root=hd0,A    #此处不需要括号,注意A的实际值(参前)
grub > set prefix=(hd0,A)/boot/grub   #对应第一种情况
grub > set prefix=(hd0,B)/grub   #对应第二种情况
grub > linux /vmlinuz root=/dev/sdaA  #vmlinuz必须使用TAB补全(可能有后缀),注意A的值,sda或sdb需要看自己的实际情况
grub > initrd /initrd.img-xxx #TAB补全,多内核情况下版本需统一
grub > boot

如果在boot之后不幸进入了BusyBox,说明参数设置有问题,可以仔细看一下出错的Log(就在BusyBox上面)

第三步:修复引导
如果已经成功进入了系统,切记及时修复引导

$ sudo update-grub  #grub情况下命令,具体参考之前的设置
$ sudo update-grub2  #grub2命令(高版本使用grub2)
$ sudo grub-install /dev/sda

正文完 | 附:Ubuntu删除多余内核



GRUB里发现的小彩蛋:

GNU GRUB version x.x.xxxxx
Minimal BASH-like line editing is supported...
grub > hello
Hello World
grub >

看起来像是测试基础功能用的,不过Hello World还真是无处不在。

上一篇下一篇

猜你喜欢

热点阅读