我在我的 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 永久启动?
只需编辑/boot/grub/grub.cfg/sda5 的 UUID 并将其替换为 sda9 的:
search --no-floppy --fs-uuid --set=root 64662470-0e58-4dfd-90ac-43227d773556
linux /boot/vmlinuz-3.2.0-2-amd64 root=UUID=64662470-0e58-4dfd-90ac-43227d773556
Run Code Online (Sandbox Code Playgroud)
update-grub 为了避免将来从您要使用的系统运行时出现此类错误。如果您从旧操作系统运行它,它将选择当前的根分区并将 grub.cfg 设置为从该分区启动。
| 归档时间: |
|
| 查看次数: |
27140 次 |
| 最近记录: |