前两天看着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中的某个)终于能够重新进入桌面系统啦,终于搞定这次坑爹的多系统安装。
网友评论