美文网首页Linux我用 LinuxLinux学习之路
Ubuntu开机进入GRUB手动引导

Ubuntu开机进入GRUB手动引导

作者: 团不慌 | 来源:发表于2018-12-01 16:14 被阅读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还真是无处不在。

    相关文章

      网友评论

        本文标题:Ubuntu开机进入GRUB手动引导

        本文链接:https://www.haomeiwen.com/subject/yqhrcqtx.html