我之前安装过 Ubuntu 11.10,是在电脑的 D: 盘中使用 Wubi 完成的。相应的 grub.cfg 条目是:
http://paste.ubuntu.com/1546414/
现在我想使用 Ubuntu 12.04,所以我从 D: 驱动器中删除了以前的安装,然后安装了 Ubuntu 12.04。我不小心将它安装到了 C: 驱动器,而不是安装在 D: 驱动器中,这里的 grub 条目是 http://paste.ubuntu.com/1546422/
C: 驱动器中没有足够的空间,因此我将 ubuntu 文件夹从 C: 驱动器移至 D:,但令人惊讶的是它无法启动。意识到 grub.cfg 需要更新后,我打开了旧的 grub.cfg(此 11.10 安装在 D: 驱动器中)
并检查了 UUID grub.cfg (对于之前安装在 D: 驱动器中的 11.10)
search --no-floppy --fs-uuid --set=root 8E9E86339E86143D
linux /boot/vmlinuz-3.2.0-23-generic root=UUID=8E9E86339E86143D
loop=/ubuntu/disks/root.disk ro
在新的 12.04 grub.cfg 中(意外安装在 C: 驱动器中)
有以下 grub.cfg(适用于 C: 驱动器中的 12.04)
search --no-floppy --fs-uuid --set=root E4ACAFF5ACAFC082
linux /boot/vmlinuz-3.2.0-29-generic root=UUID=E4ACAFF5ACAFC082
loop=/ubuntu/disks/root.disk ro
我已经将整个文件夹 C:\ubuntu 移动到了 D: 驱动器,所以现在它是 D:\ubuntu
我注意到旧的 UUID 条目(从 11.10 开始)与 12.04 中的 UUID 条目不一样,有没有办法解决这个问题?
答案1
选择 Ubuntu 后按住 Shift 键。按E手动编辑 grub 条目(如果你知道如何操作)。然后按Ctrl+X启动。
如果您不知道如何编辑 grub 条目,请C按 进入 grub 提示符。然后输入以下内容:
search -s -f -n /ubuntu/disks/root.disk
probe --set=diskuuid -u $root
loopback loop0 /ubuntu/disks/root.disk
set root=(loop0)
linux /vmlinuz root=UUID=$diskuuid loop=/ubuntu/disks/root.disk ro quiet splash
initrd /initrd.img
boot
开机后,输入sudo update-grub
grub.cfg进行修复。