页次: 1
之前装的Arch,最近闲着没事儿想再装一个deb系.
nvme1n1p1~p3装了Arch相关,p4和p5是Debian,p4是swap,p5是/,选择的也是btrfs文件系统
安装Debian时没有再安装bootloader,准备用arch的grub来引导
显示是找到了Debian
/boot/grub/grub.cfg如下
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (位于 /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-F4E0-C130' {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root F4E0-C130
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Debian GNU/Linux 12 (bookworm) (位于 /dev/nvme1n1p5)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-fbc5f94e-9ccb-42aa-bb80-40e5b8a5d452' {
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root fbc5f94e-9ccb-42aa-bb80-40e5b8a5d452
linux /boot/vmlinuz-6.1.0-18-amd64 root=/dev/nvme1n1p5
initrd /boot/initrd.img-6.1.0-18-amd64
}
submenu 'Debian GNU/Linux 12 (bookworm) (位于 /dev/nvme1n1p5) 的高级选项' $menuentry_id_option 'osprober-gnulinux-advanced-fbc5f94e-9ccb-42aa-bb80-40e5b8a5d452' {
menuentry 'Debian GNU/Linux 12 (bookworm) (位于 /dev/nvme1n1p5)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-6.1.0-18-amd64--fbc5f94e-9ccb-42aa-bb80-40e5b8a5d452' {
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root fbc5f94e-9ccb-42aa-bb80-40e5b8a5d452
linux /boot/vmlinuz-6.1.0-18-amd64 root=/dev/nvme1n1p5
initrd /boot/initrd.img-6.1.0-18-amd64
}
}
### END /etc/grub.d/30_os-prober ###
但是重启在menu点击进入Debian时会出错
error: file '/boot/vmlinuz-6.1.0-18-amd64 ' not found.
error: you need to load the kernel first.
Press any key to continue...
不过上边第二张图ls /mnt/boot是有vmlinuz-6.1.0-18-amd64这个文件的,那么为什么启动失败了呢?
离线
你的分区信息没讲清楚。在 grub 里,路径的 / 是从当前文件系统开始算起的。你的「/mnt/boot」是不是是一个挂载点?
另外好乱……我建议使用 UEFI boot menu 来选择操作系统;每个操作系统使用自己的引导器。os-prober 生成的 Debian 的引导项我猜是错的,缺少参数的。
非要一个 grub 引导所有系统的话,你需要手动维护另外的操作系统的引导参数(或者你写个脚本干这事)。
离线
页次: 1