美文网首页
一次艰辛的修复manjaro系统MBR的grub过程记录

一次艰辛的修复manjaro系统MBR的grub过程记录

作者: EvineDeng | 来源:发表于2022-01-19 16:05 被阅读0次

前两天看着deepin 20.4社区版正式发布了,想着界面还挺看的,要不来试试?马上下载了iso镜像文件作为第二系统安装好,进入系统后发现deepin果然对老电脑不太友好,巨卡无比。 于是只能放弃,继续切换回我的manjaro xfce吧。

在grub界面选择manjaro后傻眼了,根本进不去manjaro,错误是:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

deepin的安装器根本就没有正常识别到manjaro系统的initrd。在正常的manjaro中的/boot/grub/grub.cfg文件中manjaro的启动项大约是这样的:

    savedefault
    load_video
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  90d8e987-6bd4-4047-915b-a9015fd16c89
    else
      search --no-floppy --fs-uuid --set=root 90d8e987-6bd4-4047-915b-a9015fd16c89
    fi
    linux   /boot/vmlinuz-5.10-x86_64 root=UUID=90d8e987-6bd4-4047-915b-a9015fd16c89 ro  quiet apparmor=1 security=apparmor resume=UUID=14e90d14-8fca-43dd-a8f6-a46a47f5c9de udev.log_priority=3
    initrd  /boot/intel-ucode.img /boot/initramfs-5.10-x86_64.img

而在deepin系统生成的manjaro的启动项大概是这样:

    insmod part_msdos
    insmod ext2
    set root='hd0,msdos5'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5  90d8e987-6bd4-4047-915b-a9015fd16c89
    else
      search --no-floppy --fs-uuid --set=root 90d8e987-6bd4-4047-915b-a9015fd16c89
    fi
    linux   /boot/vmlinuz-5.10-x86_64 root=UUID=90d8e987-6bd4-4047-915b-a9015fd16c89 ro  quiet apparmor=1 security=apparmor resume=UUID=14e90d14-8fca-43dd-a8f6-a46a47f5c9de udev.log_priority=3
    initrd  /boot/intel-ucode.img

注意二者最后的initrd,正常的情况下有两个img(因为启用了闭源驱动),而deepin生成的/boot/grub/grub.cfg中initrd项只有一个/boot/intel-ucode.img,这导致无法从deepin的grub启动manjaro。

所以只能手动切换为manjaro的grub配置文件了。

  • 在grub界面按c进入grub命令行;
  • 输入ls检查有哪几个区,会输出形如下面这样的内容,每一个msdos就是一个分区(GPT的应该是类似于(hd0,gpt1)的形式);
    grub> ls
    (hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)
    
  • 如果你不知道你的manjaro位于哪个分区,就依次找一下:cat (hd0,msdos5)/etc/os-release,如果能输出类似这样的,那就这分区没错了。
    grub> cat (hd0,msdos5)/etc/os-release
    NAME="Manjaro Linux"
    ID=manjaro
    ID_LIKE=arch
    BUILD_ID=rolling
    PRETTY_NAME="Manjaro Linux"
    ANSI_COLOR="32;1;24;144;200"
    HOME_URL="https://manjaro.org/"
    DOCUMENTATION_URL="https://wiki.manjaro.org/"
    SUPPORT_URL="https://manjaro.org/"
    BUG_REPORT_URL="https://bugs.manjaro.org/"
    LOGO=manjarolinux
    
  • 我的manjaro装在(hd0,msdos5)分区,所以切换吧:
    grub> configfile (hd0,msdos5)/boot/grub/grub.cfg
    
  • 然后系统会重新进入manjaro的grub界面,这时启动按理应该没问题了。在进入系统后再在manjaro中更新下grub吧。
    sudo grub-install /dev/sda
    sudo update-grub
    

然而我万万没想到安装了deepin后,后面还有一个坑(我装其他kubuntu, debian多系统都没这问题)。这里需要先说明一下我的分区结构:

  • (hd0,msdos1): windows 10
  • (hd0,msdos2): linux swap,所有Linux系统共用
  • (hd0,msdos3): 所有linux系统共用的/home分区,每个linux系统用户名不一样,所以可以共用一个
  • (hd0,msdos5): manjaro的根分区
  • (hd0,msdos6): deepin的根分区

我重新调用manjaro的grub配置文件重新进入manjaro后,发现无法登陆,现象是在登陆界面输入账号密码后屏幕一闪又重新回到登陆界面。

没办法,只好祭出控制台大法了,在登陆界面按CTRL+ALT+F2(注意是键盘左边的CTRL和ALT键,根据桌面系统的不同,可能是F1-F12中的某个)进入控制台,就在进入控制台的时候,就发现有问题了,根本无法进入manjaro系统用户的家目录/home/mevine。deepin用户的家目录是/home/devine,他们共用(hd0,msdos3),cd到/home/一看,发现是安装deepin时把权限给修改了:

[mevine@laptop ]$ cd /home
[mevine@laptop ]$ ls -l
总用量 28
drwx------  8 root    root     4096  7月 22 12:47 arch
drwxr-xr-x 19 devine  devine   4096  1月 19 13:55 devine
drwx------  2 root    root    16384  2月 14  2021 lost+found
drwx------ 38 root    root     4096  1月 20 15:37 mevine

这。。。这是什么操作?

只能恢复权限吧。

chown -R mevine:mevine mevine

顺便把grub更新了。

sudo grub-install /dev/sda
sudo update-grub

最后按CTRL+ALT+F7(根据桌面系统的不同,可能是F1-F12中的某个)终于能够重新进入桌面系统啦,终于搞定这次坑爹的多系统安装。

相关文章

  • 一次艰辛的修复manjaro系统MBR的grub过程记录

    前两天看着deepin 20.4社区版正式发布了,想着界面还挺看的,要不来试试?马上下载了iso镜像文件作为第二系...

  • 修复Grub2引导

    有些时候在重装了 Windows 之后,MBR 中的 Grub 就会被清除,这时候需要修复 Grub2 的引导,笔...

  • 简介Centos5和6的启动流程

    系统启动流程 大致过程如下 加电自检,检查硬件是否正常;MBR引导MBR前446个字节属于grub的属于第一阶段,...

  • Manjaro记录

    记录使用Manjaro过程中遇到的问题,与“Linux命令记录”,“Linuxmint记录”相关。 打印系统信息 ...

  • Manjaro安装后的配置清单

    记录一次自己安装Manjaro系统后的配置清单,方便之后自己安装时重新使用。 前言 安装Manjaro系统时,记得...

  • 系统启动流程

    流程 引导顺序: BIOS -> MBR -> GRUB确定启动哪个操作系统,是boot loader的一种,启动...

  • Linuxmint记录

    记录使用Manjaro过程中遇到的问题,与“Linux命令记录”,“Manjaro记录”相关。

  • grub修复记录

    rescue模式下手动引导进入系统 三大命令,ls, set, insmod 重新安装grub 这两条命令可以重新...

  • 通过Grub来引导启动Linux

    本篇介绍下如果遇到开机进入Grub应该如何修复。 Grub是Linux系统默认使用的引导程序,当grub的配置文件...

  • linux系统启动流程

    linux(CentOS6)系统启动流程说明(重点) 开机BIOS自检 读MBR引导 加载GRUB菜单 加载内核(...

网友评论

      本文标题:一次艰辛的修复manjaro系统MBR的grub过程记录

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