当前位置: 代码迷 >> 综合 >> grub rescue界面手动引导ubuntu指南
  详细解决方案

grub rescue界面手动引导ubuntu指南

热度:81   发布时间:2023-11-15 06:24:49.0

grub rescue界面手动引导ubuntu指南

  1. 查看硬盘和分区情况:

    ls命令查看有哪些硬盘和分区

    grub rescue> ls
    

    image-20211217160155828

    GRUB对设备的命名必须包含在小括号( )内,不区分IDE硬盘和SCSI硬盘,统一使用hdx,其中x指定BIOS中硬盘的编号,并从0开始计数,而且IDE硬盘编号小于SCSI硬盘。

  2. 查找ubuntu安装位置,即/目录节点。该步骤用ls查看步骤1中所有分区下的目录情况,找到/目录:

    grub rescue> ls (hd2,msdos6)/
    

    image-20211217160729279

    由上图所示,(hd2,msdos6)分区中包含了etc, root等系统目录,因此(hd2,msdos6)就是我们要找的。

    注意,使用ls时要加/,即ls (hd2,msdos6)/,否则不会输出目录

    image-20211217161145825

  3. 设置grubcmdpath、root、prefix三个变量:

    首先要知道这三个变量的具体作用,可以参考grub2配置关键(三个核心变量prefix、root、cmdpath)和几点疑问。

    set命令可以查看当前三个变量的值:

    grub rescue> set
    

    image-20211217161545508

    接下来用set命令将三个变量设置为步骤2中对应的值(以我的设备对应的(hd2,msdos6)为例):

    grub rescue> set cmdpath=(hd2)
    grub rescue> set prefix=(hd2,msdos6)/boot/grub
    grub rescue> set root=(hd2,msdos6)
    

    此时再用set命令查看一下,设置成功:

    image-20211217162006422

    注意,prefix指向的是boot/grub目录。若在安装ubuntu时没有单独挂载boot目录的话,prefix=(hd2,msdos6)/boot/grub,若单独挂载了boot则需要将prefix设置为对应的位置。我的设备单独挂载了boot,位置为(hd2,msdos5),因此应设置为prefix=(hd2,msdos5)/grub(查找boot目录所在分区的方法与步骤2中相同)。

  4. 加载模块并启动:

    设置好三个变量后,加载normal

    grub rescue> insmod normal
    
  5. 启动ubuntu:

    grub rescue> normal