内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Ubuntu开机进入GRUB手动引导

2018-12-03 20:45 出处:清屏网 人气: 评论(0

推测原因:昨天系统升级添加内核后没有更新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

正文完

GRUB里发现的小彩蛋:

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

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

分享给小伙伴们:
本文标签: GRUBUbuntu

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号