几年来,我一直使用 Wubi 在我的计算机上安装 Ubuntu。我的计算机上有两个硬盘。Windows 位于第一个驱动器上,Ubuntu 位于第二个驱动器上。但是,最近对 grub 的更新(这是我最好的猜测)导致 Ubuntu 无法启动。我可以通过以下方式重现以下情况:+ 安装最新的 10.04(因为他们几天前更新过)+ 安装 11.04 + 安装 10.10,然后从系统内部安装提供的所有更新
我来描述一下 10.10 的路线:我安装系统,默认设置,启动成功。以下是 grub.cfg 中的相关信息:
### BEGIN /etc/grub.d/10_linux ###
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/10_lupin ###
menuentry "Ubuntu, Linux 2.6.35-22-generic" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos3)'
search --no-floppy --fs-uuid --set 46b2c65db2c650db
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz-2.6.35-22-generic root=/dev/sdb3 loop=/ubuntu/disks/root.disk ro quiet splash
initrd /boot/initrd.img-2.6.35-22-generic
}
...
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda2)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set b296c2ae96c27281
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
10.10安装的grub版本是1.98+20100804-5ubuntu2
更新系统后(不是更新到 11.04,而是安装了首次运行更新管理工具时建议的所有更新),grub 的版本不再是 1.98+20100804-5ubuntu3.3。除了新的内核版本和条目外,grub.cfg 看起来与以前类似。它确实在文件早期添加了一些代码:
...
insmod part_msdos
insmod ntfs
set root='(hd1,msdos3)'
search --no-floppy --fs-uuid --set 46B2C65DB2C650DB
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
....
这是新的 Ubuntu 条目:
menuentry "Ubuntu, Linux 2.6.35-30-generic" {
insmod part_msdos
insmod ntfs
set root='(hd1,msdos3)'
search --no-floppy --fs-uuid --set 46B2C65DB2C650DB
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /boot/vmlinuz-2.6.35-30-generic root=UUID=46B2C65DB2C650DB loop=/ubuntu/disks/root.disk ro quiet splash
initrd /boot/initrd.img-2.6.35-30-generic
}
但是,在启动时,我收到了可怕的“警报!/host/ubuntu/disks/root.disk 不存在。进入 shell!在此 shell 上运行“ls”显示 /host 指向我的第一个驱动器,也许应该是第二个。
一开始听起来像是来自https://bugs.launchpad.net/ubuntu/lucid/+source/grub2/+bug/742967,但由于该页面声称 1.98+20100804-5ubuntu3.3 修复了这个错误,所以也许它对我来说还没有被修复(或者错误有其他原因)。
有什么想法或建议吗?
答案1
这两个分区具有相同的 UUID - Windows 卷号太短了 :( 我将尝试更改 /dev/sdb3 的 UUID 并报告。 – user22787 2011 年 8 月 5 日 10:58
changing the UUID did the trick. Thanks! – user22787 Aug 7 '11 at 20:18
原贴作者重视评论并回答问题