美文网首页
Linux 修复grub开机引导(ubuntu)

Linux 修复grub开机引导(ubuntu)

作者: DB哥 | 来源:发表于2020-04-15 16:28 被阅读0次

    问题: 有时候Linux系统/boot分区损坏时,启动Linux系统时直接进入字符介面的grub引导,并没有进入到系统或者开机显示 error:unknow filesystem提示

    解决办法:

    Linux开机自动会进入到grub引导介面(如果没进入到grub引导介面可以按C键进入)

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

    第一步:找到系统对应的扇区及/boot/grub目录
    注意:假设是硬盘接口类型sd,hd0对应是sda hd1对应是sdb
    (hd0)≠(hd0)
    (hd1,gpt2)=(hd1,2)
    ls (hd1,gpt2)  查看(hd1,gpt2)扇区信息(盘符、空间等)
    ls (hd1,gpt2)/  查看(hd1,gpt2)扇区下的内容(文件、文本等)

    如果打印每个扇区目录信息,会出现两种情况:
    1、ls (hd1,gpt2)显示Unknow filesystem提示说明这个扇区不是我们要找系统分区
    2、ls (hd1,gpt2)显示/boot /proc等系统目录信息说明这个扇区是我们要找的系统分区

    如果找到对应扇区的系统分区,可能会遇到两种情况:
    1、 A目录下有/boot/grub
    2、A目录下有/boot,B目录下有/grub (此时在第二步加载系统内核要使用 set prefix=(hd1,gpt2)/grub 命令)

    grub > ls
    (hd0), (hd1), (hd1, gpt1), (hd2,gpt2), (hd3, gpt3)

    第二步:加载系统内核
    grub > set root=hd1,2 #此处不需要括号,加括号也可以,hd0和hd1是有区别
    grub > set prefix=(hd1,2)/boot/grub
    grub > linux /vmlinuz root=/dev/sdb2 #vmlinuz必须使用TAB补全(可能有后缀),注意sda或sdb需要看自己的实际情况
    grub > initrd /initrd.img-xxx #TAB补全,多内核情况下版本需统一
    grub > boot

    提示:如果在boot之后不幸进入BusyBox,说明参数设置有问题,可以仔细查看出错的日志,再重启系统后重复执行第二步操作(重启系统后上面设置的参数会被清空)。

    第三步:修改grub引导
    如果成功进入系统,记得要马上信息grub引导,不然重启系统后问题还是存在
    sudo update-grub #grub情况下命令,具体参考之前的设置 sudo update-grub2 #grub2命令(高版本使用grub2)
    $ sudo grub-install /dev/sdb

    第四步:重启系统
    重启系统后即可正常进入系统
    reboot

    相关文章

      网友评论

          本文标题:Linux 修复grub开机引导(ubuntu)

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