我在我的 PC 上单独运行 Debian Wheezy,最近我使用rsync将根分区复制到另一个分区,因为我发现它运行良好(我也知道 dd 和 ddrescue,但它们在新分区上留下了无法使用的空间)。我使用sudo tune2fs -U random /dev/hda9为新分区生成了一个新的随机 UUID,并更新了 fstab / 和 /home 条目。
然后,由于我对 GRUB 知之甚少,我使用了一个 gui(GRUB 定制器)来探测新的操作系统,并向 GRUB 和 MBR 添加一个条目 - 它创建一个 /etc/grub.d 条目然后更新 GRUB。
启动时,GRUB 列表包含新操作系统(在 sda9 上),但它会引导第一个操作系统(我从 -sda5 复制)。
/boot/grub/grub.cfg 包含新的 debian 操作系统,但它看起来像这样
set root='(hd0,msdos9)'
search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=cc3bca0d-aee4-4b9c-95c2-57212cc36d4d ro quiet
initrd /boot/initrd.img-3.2.0-2-amd64
Run Code Online (Sandbox Code Playgroud)
第一个 uuid 是 sda9,但第二个 uuid 是 sda5。我可以在启动时更改第二个 uuid(使用 E)并启动 sda9。
那么我怎样才能更正 grub.cfg 以便 sda9 GRUB 列表条目从 sda9 永久启动?