Ubuntu 10.04和fedora 14 grub冲突

Ubuntu 10.04和fedora 14 grub冲突

我尝试三重启动 Windows xp、Fedora 14 和 Ubuntu 10.04。我首先安装 Windows xp,然后安装 fedora,最后安装 Ubuntu。

问题是我没有选择启动 Ubuntu,而 Xp 可以正常启动。Ubuntu 似乎无法在 MBR 上用自己的 grub 替换 Fedora 的 grub。查看它们的 grub conf 文件,Fedora 和 Ubuntu 将同一块硬盘识别为两个不同的设备,而我还有另一块没有任何操作系统的 80 GB 硬盘。

下面是我的分区的详细信息以及两个操作系统的 grub 文件的部分信息。

   设备启动开始结束块ID系统
/dev/sda1 * 63 40965749 20482843+ 7 HPFS/NTFS
/dev/sda2 102414436 312576704 105081134+ f W95 扩展 (LBA)
/dev/sda3 40965750 102414374 30724312+ 83 Linux - /Home(适用于 Fedora)
/dev/sda5 102414438 204812684 51199123+ 7 HPFS/NTFS
/dev/sda6 204812748 253634219 24410736 83 Linux——Ubuntu
/dev/sda7 253634283 302455754 24410736 83 Linux——Fedora
/dev/sda8 302455818 312576704 5060443+ 82 Linux 交换 / Solaris

来自 ubuntu 的 grub.cfg

### 开始 /etc/grub.d/10_linux ###
菜单项‘Ubuntu,带有 Linux 2.6.32-21-generic’--class ubuntu --class gnu-linux --class gnu --class os {
    記錄失敗
    修改 ext2
    设置根='(hd1,7)'
    搜索--no-floppy--fs-uuid--设置cd55e078-a2c1-4d8a-9e87-ae838b6f4a05
    linux /boot/vmlinuz-2.6.32-21-generic root=UUID=cd55e078-a2c1-4d8a-9e87-ae838b6f4a05 ro 安静启动
    initrd /boot/initrd.img-2.6.32-21-generic
}
菜单项‘Ubuntu,带有 Linux 2.6.32-21-generic(恢复模式)’--class ubuntu --class gnu-linux --class gnu --class os {
    記錄失敗
    修改 ext2
    设置根='(hd1,7)'
    搜索--no-floppy--fs-uuid--设置cd55e078-a2c1-4d8a-9e87-ae838b6f4a05
    echo ‘正在加载 Linux 2.6.32-21-generic...’
    linux /boot/vmlinuz-2.6.32-21-generic root=UUID=cd55e078-a2c1-4d8a-9e87-ae838b6f4a05 ro单个
    echo ‘正在加载初始 ramdisk ...’
    initrd /boot/initrd.img-2.6.32-21-generic
}
### 结束 /etc/grub.d/10_linux ###

### 开始 /etc/grub.d/20_memtest86+ ###
菜单项“内存测试 (memtest86+)”{
    修改 ext2
    设置根='(hd1,7)'
    搜索--no-floppy--fs-uuid--设置cd55e078-a2c1-4d8a-9e87-ae838b6f4a05
    linux16 /boot/memtest86+.bin
}
menuentry“内存测试(memtest86+,串行控制台115200)”{
    修改 ext2
    设置根='(hd1,7)'
    搜索--no-floppy--fs-uuid--设置cd55e078-a2c1-4d8a-9e87-ae838b6f4a05
    linux16 /boot/memtest86+.bin 控制台=ttyS0,115200n8
}
### 结束 /etc/grub.d/20_memtest86+ ###

### 开始 /etc/grub.d/30_os-prober ###
菜单项“Microsoft Windows XP Professional (在 /dev/sdb1 上)”{
    修改ntfs
    设置根='(hd1,1)'
    搜索--no-floppy--fs-uuid--set cad48cc6d48cb5eb
    驱动器映射 -s (hd0) ${root}
    链式装载机 +1
}
菜单项“Fedora (2.6.35.14-96.fc14.i686) (在 /dev/sdb6 上)”{
    修改 ext2
    设置根='(hd1,6)'
    搜索--no-floppy--fs-uuid--set 6aee34cf-f77a-489a-9361-85d07194b84b
    linux /boot/vmlinuz-2.6.35.14-96.fc14.i686 ro root=UUID=6aee34cf-f77a-489a-9361-85d07194b84b rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
    initrd /boot/initramfs-2.6.35.14-96.fc14.i686.img
}
菜单项“Fedora (2.6.35.6-45.fc14.i686) (在 /dev/sdb6 上)”{
    修改 ext2
    设置根='(hd1,6)'
    搜索--no-floppy--fs-uuid--set 6aee34cf-f77a-489a-9361-85d07194b84b
    linux /boot/vmlinuz-2.6.35.6-45.fc14.i686 ro root=UUID=6aee34cf-f77a-489a-9361-85d07194b84b rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
    initrd /boot/initramfs-2.6.35.6-45.fc14.i686.img
}
### 结束 /etc/grub.d/30_os-prober ###

来自 fedora 的 grub.conf

默认值=0
超时=5
启动画面=(hd0,5)/boot/grub/splash.xpm.gz
隱藏菜單
标题 Fedora (2.6.35.14-96.fc14.i686)
    根(hd0,5)
    内核 /boot/vmlinuz-2.6.35.14-96.fc14.i686 ro root=UUID=6aee34cf-f77a-489a-9361-85d07194b84b rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
    initrd /boot/initramfs-2.6.35.14-96.fc14.i686.img
标题 Fedora (2.6.35.6-45.fc14.i686)
    根(hd0,5)
    内核 /boot/vmlinuz-2.6.35.6-45.fc14.i686 ro root=UUID=6aee34cf-f77a-489a-9361-85d07194b84b rd_NO_LUKS rd_NO_LVM rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
    initrd /boot/initramfs-2.6.35.6-45.fc14.i686.img
标题 其他
    rootnoverify (hd0,0)
    链式装载机 +1

答案1

您有多个硬盘吗?

在 Grub 中,Ubuntu grub.conf 中的 (hd1,7) 表示第二块硬盘的第八个分区,而 Fedora 的 grub.conf 中的 (hd0,5) 表示第一块硬盘的第六个分区。

如果您使用的是 SCSI 驱动器,则驱动器的设备特殊文件将为 /dev/sda*。FireWire、USB、我确信光纤通道和大多数 RAID 也被视为 SCSI。

SCSI 的问题在于 Linux 内核无法以任何特定方式保证驱动器顺序。我猜想您的问题是 Ubuntu 和 Fedora 运行不同的内核,而这些不同内核的某些方面会改变您的驱动器顺序。

两个操作系统的根分区都标有 GUID。我不知道:是否可以让 grub 查找 GUID,而不是 hd0 或 hd1?

hd 编号应该是 BIOS 驱动器编号。如果每个驱动器上只有一个分区,则 hd0 将是 DOS C: 驱动器,而 hd1 将是 DOS D: 驱动器,因为 DOS 使用 BIOS 来查找驱动器,而不是通过内核和设备驱动程序。

如果你能弄清楚为什么你的 BIOS 驱动器在每个操作系统下的顺序不同,那么我认为你的问题就解决了。所以虽然我没有回答你的问题,但也许我给了你一些有用的线索。

相关内容