我的笔记本上通过 wubi 安装了 Ubuntu 10.04 (Lucid Lynx)。但是自从最近的 ubuntu 更新后,我的系统就不能用了。启动时,我进入了grub rescue>
。在网上查阅了一些资料后,我得出结论,我必须重新安装 grub(我忘了 :$ 我是通过 wubi 安装 Ubuntu 的,我以为它是独立的……)并使用本教程。现在我有一个命令行 grub,但不知道该做什么。
我的目录结构如下:
/dev/sda5 (NTFS)
/boot
/grub
<grubfiles>
/ubuntu
/disks
/boot
/grub
<empty>
/install
/winboot
...
...
空的逻辑合理吗/ubuntu/disks/boot/grub/
?我想让引导加载程序重新能够在 Windows 和 Linux 之间进行选择。任何帮助都值得感激 :)
更新 通过安装独立的 Ubuntu 10.10,我的问题得到了一定程度的解决。现在我的引导加载程序已正确恢复,不过现在必须经过 3 个引导加载程序屏幕才能进入 Ubuntu 10.04 ^^
答案1
一开始我回答这个问题是为了匹配 Lucasmus 的情况,他实际上已经能够恢复启动能力,并且 MBR 上有一个来自(非 wubi Ubuntu 安装)的正常工作的 grub。由于来这里的大多数人可能不是这种情况,只是在启动时获得 grub 救援 shell,根本无法启动 Windows 或他们的 Wubi 安装,所以我重新制作了正常情况下的说明。Lucasmus 问题的答案基本上是按照现在的步骤 2 到 5 进行操作。
不幸的是,这是 Wubi 中的一个已知错误https://bugs.launchpad.net/bugs/610898。我已提交了一个补丁,希望可以防止未来的用户因为 Wubi 而导致他们的驱动器完全无法启动,但在此或其他修复被接受之前,您需要(在 Wubi 中)执行以下操作以使 Windows 和 Ubuntu 启动并防止这种情况再次发生:
1:从 Ubuntu LiveCD 启动并运行sudo software-properties-gtk -e universe && sudo apt-get update && sudo apt-get install mbr && sudo install-mbr /dev/sda
。
如果您有多个硬盘,则需要/dev/sda
在最后一个命令中更改为 Windows 所在的驱动器。但它始终是驱动器,而不是分区。因此/dev/sdb
可能合适,但绝不 /dev/sdb1
(后者可能会覆盖 Windows 的 PBR,使得重新启动 Windows 变得更加困难)。
现在您应该能够像以前一样启动 Windows 或 Wubi 安装。如果您想继续使用 Wubi,请按照以下步骤操作,以确保您不会再次陷入无法启动的情况。
2:启动您的 Wubi 安装并运行sudo dpkg-reconfigure grub-pc
这将弹出一些带有问题的对话框。
3:对于第一个问题,The following Linux command line was extracted from /etc/default/grub or the 'kopt' parameter in GRUB Legacy's menu.lst. Please verify that it is correct, and modify it if necessary.
保留字段的默认值(可能是空白)并按回车键继续下一个问题。
4:对于第二个问题The following string will be used as Linux parameters for the default menu entry but not for the recovery mode.
,请保留默认值(可能是“quiet splash”),然后按 Enter 继续
5:这个问题...GRUB install devices:
很重要。确保你取消选中除 之外的所有选项/dev/loop0
。你可以使用空格键选中/取消选中条目,并使用箭头键更改条目。
如果您在从此列表中取消选中 /dev/sda 之前按下回车键,您的计算机将再次无法启动。
现在您可以安全地更新/升级您的 Wubi 安装,而不必担心您的计算机无法启动。
答案2
如果正如您的评论所暗示的那样,/dev/sda5 有一个完整的 /boot 目录,则添加类似以下内容:
menuentry 'Ubuntu Lucid 10.04' --class ubuntu --class os {
recordfail
set root='(hd0,5)'
linux /boot/vmlinuz-<version> root=/dev/sda5 ro
initrd /boot/initrd.img-<version>
}
其中<version>
用 sda5/boot 上的实际文件名替换为 10.10 系统下的 /etc/grub.d/40_custom。然后update-grub
在正在运行的 10.10 系统中运行,重新启动后,grub 菜单上应该有一个 10.04 选项,用于直接引导。
注意事项:
- update-grub 重写 /boot/grub/grub.cfg 并在重启之前检查其正确性。
- 我总是忘记 /dev/sda5 是否对应
(hd0,5)
或(hd0,4)
在 grub.cfg 中,所以请仔细检查我或准备重新启动到 10.10 并修复它。
祝你好运。