引导加载程序屏幕 HD/OS 选择

引导加载程序屏幕 HD/OS 选择

安装了 Ubuntu 12.04。计算机有 3 个分区的硬盘和多个 Windows XP 实例。硬盘配置如下:

SDA Vista|Ubuntu;  SDB  Windows XP (1);  SDC Windows XP (2) | Windows XP (3)

启动画面如下:

  Ubuntu,使用 Linux 3.2.0-52-generic-pae
  Ubuntu,带有 Linux 3.2.0-52-generic-pae(恢复模式)
  以前的 Linux 版本
  内存测试(memtest86+)
  内存测试(memtest86+,串行控制台115200)
  Windows Vista (加载程序) (在 /dev/sda3 上)
  Microsoft Windows XP Professional(在 /dev/sdb1 上)
  Microsoft Windows XP Professional(在 /dev/sdc1 上)
  Microsoft Windows XP Professional(在 /dev/sdc2 上)

如果选择了 Windows XP (!),计算机将在 HD SDB 上的 XP 实例上正确启动。但是,如果选择了 Windows XP (2) 或 (3),计算机仍将在 HD SDB 上的 XP 实例上启动,而不是 SDC。

查看文件 /boot/grub/grub.cfg 中的 SDB 和 SDC:

菜单项“Microsoft Windows XP Professional(在 /dev/sdb1 上)”--class windows --class os {
    修改 part_msdos
    修改ntfs
    设置根目录='(hd1,msdos1)'
    搜索--no-floppy--fs-uuid--set=root F6ECD6C9ECD68373
    驱动器映射 -s (hd0) ${root}
    链式装载机 +1
}
菜单项“Microsoft Windows XP Professional(在 /dev/sdc1 上)”--class windows --class os {
    修改 part_msdos
    修改ntfs
    设置根目录='(hd2,msdos1)'
    搜索--no-floppy--fs-uuid--set=root F6ECD6C9ECD68373
    驱动器映射 -s (hd0) ${root}
    链式装载机 +1
}
菜单项“Microsoft Windows XP Professional(在 /dev/sdc2 上)”--class windows --class os {
    修改 part_msdos
    修改ntfs
    设置根目录='(hd2,msdos2)'
    搜索--no-floppy--fs-uuid--set=root F6ECD6C9ECD68373
    驱动器映射 -s (hd0) ${root}
    链式装载机 +1

看来 Windows XP 的 3 个分区/实例具有相同的 UUID,这可能是问题所在。如何修复此问题?如果可以更改 UUID,这会改变使用计算机的 BIOS 启动菜单 (F2) 或 (F12) 启动所选分区的能力吗?

答案1

要将 Grub 指向正确的 UUID,请使用 找到正确的 UUID,sudo blkid然后在 中替换它们grub.cfg

相关内容