我已将我的 ext4 根文件系统(在 上/dev/nvme0n1p6
)复制到 上的新 btrfs 文件系统/dev/nvme1n1p2
。
很多指南都教我如何 chroot 到新的文件系统,并让 grub 认为它是主分区,但这对我来说简直是一个巨大的挑战!我想确保我当前的配置能够正常工作,直到我确定可以启动到新的文件系统为止。
我想保留旧文件系统作为主启动项,并将新文件系统设为辅助启动项。由于我之前已经成功让这个 grub 能够启动两个不同的 Linux 分区和两个 Windows 分区,所以这个操作似乎无法撤销。
如果我运行update-grub
(安装了新的文件系统),它会在 grub.cfg 中为我提供新系统的启动项,但这显然是错误的:
menuentry 'Linux Mint 22 Xfce (on /dev/nvme1n1p2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-6.8.0-58-generic--0d9f074e-f0b5-4418-8831-a6b1d96479b1' {
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root 0d9f074e-f0b5-4418-8831-a6b1d96479b1
linux /boot/vmlinuz-6.8.0-58-generic root=UUID=42be809f-0321-4fee-bc70-b3ac34ef0adc ro quiet splash
initrd /boot/initrd.img-6.8.0-58-generic
}
0d9f074e-f0b5-4418-8831-a6b1d96479b1
是分区的正确 UUID。42be809f-0321-4fee-bc70-b3ac34ef0adc
是原始分区(我当前正在运行的分区)的 UUID。
我(几乎)确信 Grub 确实可以启动到 BTRFS 分区(我见过 SE 建议 /boot 应该是一个单独的分区,但这些建议都不是最近 5 年内提出的),但让我吃惊的是,该配置没有给出任何有关具有我的根 fs 的 btrfs 子卷的指示。
btrfs grub.cfg 的正确格式是什么?