问题描述
-
我首先通过官网下载ubuntu系统和archlinux系统.iso镜像,
接着制作系统盘设置均为gpt分区 -
我的硬盘是SSD:465G(1024字节)
- 我对硬盘分区为
/dev/sdb1: FAT32 1G EFI分区
/dev/sdb2: ext4 64G ubuntu根目录
/dev/sdb3: ext4 192G ubuntu home目录
/dev/sdb4: brtfs 192G arch设置了@和@home
/dev/sdb5: swap
- 我对硬盘分区为
-
我首先安装的是ubuntu24.04,接着安装archlinux
-
当我在archLinux输入以下命令设置引导项时,os-prober显示警告
Warning: os-prober will not be executed to detect other bootable
partitions
- 该问题的解决方法是
sudo vim /etc/default/grub
//找到GRUB_DISABLE_OS_PROBER=false,删除注释#,或者直接添加这一行
GRUB_DISABLE_OS_PROBER=false
- 然后我重新更新我的grub配置项,发现依然报错
$ grub-mkconfig -o /boot/grub/grub.cfg
…
Warning: os-prober will be executed to detect other bootable partitions
- 当我重启archlinux后进入到grub菜单界面,并未显示ubuntu启动项
问题解决
- 采用手动添加启动项配置的方式,如果不太了解,尽量不要自己写,直接复制配置文件grub.cfg里的菜单模板
- 首先找到对应系统菜单配置项
sudo vim /boot/grub/grub.cfg
##再匹配 menuentry,
:/menuentry
##找到ubuntu的菜单启动项,然后复制
menuentry “ubuntu” {
…
set root=‘(hd1,4)’ # 对应 /dev/sdb4
linux /boot/vmlinuz-linux root=UUID=1234-5678 rw rootflags=subvol=@
initrd /boot/initramfs-linux.img
…
}
- 参考上面模板,然后粘贴到Archlinux的/etc/grub.d/40_custom
- ,因为我设置的Archlinux的grub菜单项,如果你是ubuntu的grub,就去arclinux系统对应的/boot/grub/grub.cfg ,然后将菜单配置项粘贴到另一个系统的40_custom里
- 最后更新grub
ubuntu:sudo update-grub
archlinux:sudo grub-mkconfig -o /boot/grub/.cfg
- 重启系统,进入grub菜单,测试添加的系统启动项是否可用,可能会报错显示grub无法识别菜单配置项里的部分宏,此时只需要回到40_custom依次注释掉即可