最近我重新安装了 Ubuntu 的 Windows 副本,之后 GRUB 菜单消失了,计算机自动在 Windows 上启动。我找到的解决方案是运行启动修复,因此我从 CD 运行 Ubuntu,然后安装并运行启动修复,它说修复成功了。但是,GRUB 没有再次出现。这是我运行启动修复后得到的日志:
http://paste.ubuntu.com/6677448/
谢谢
答案1
除非您在 Windows 7 安装向导期间错误地格式化了 Linux 分区,否则没有理由认为您的 Ubuntu 文件不再存在。我不得不在我的双启动机器上重新安装 Windows 7 几次,并遇到了这个问题。Windows 安装会覆盖您的 MBR 并将其自己的代码放在那里。只要您的 Ubuntu 分区中有 GRUB 启动目录,它就是完整的,但 GRUB 编写的 MBR 代码不再存在。
以下步骤有一定的风险。我会根据您上传的屏幕截图调整命令以适应您的分区号,但在使用我的命令之前,请仔细检查分区号两次。此外,如果出现问题并且您最终不得不备份文件并重新安装 Ubuntu,我不承担任何责任。
由于我不确定下面的命令是否适用于 GPT 分区表,因此让我们添加额外的安全性,并且仅当您的磁盘是 MBR 时才执行此操作,该命令sudo parted -l
必须显示您的分区表,如其msdos
输出的第 3 行或第 4 行所示。如果没有,请在此处停止。
- 请启动您的 Ubuntu Live CD,版本与您的硬盘上的版本相同。
- 首先确认目录 /boot 存在于您的 Ubuntu 根分区中。我假设它是 sda2,因为它被格式化为 ext2,因此挂载它并导航到它的根目录,看看那里是否有启动目录。如果没有,请在此处停止。
- 卸载 sda2。使用 Nautilus 或 Unity laucher 或 umount 命令,无所谓。但要卸载它。
- 启动终端。
- 使用以下命令(注意,如果我没记错的话,当从 Live CD 使用 sudo 时,只需ENTER在提示输入密码时按):
:
sudo -i
mount /dev/sda2 /mnt
grub-install --root-directory=/mnt/ /dev/sda
umount /mnt
exit
- 重新启动机器。移除 Live CD。
如果 grub 菜单出现并显示 Windows 7 和 Ubuntu,则您已完成。如果没有,您将不得不做额外的工作。我现在正在更新这个问题以添加更长的方法,我不得不在一次场合使用它,因为上面的较短方法让我在 GRUB 控制台中没有任何操作系统可供选择,如果您遇到这种情况,请不要惊慌,我现在正在编写更长的方法。
更长的方法:如果在启动时,控制台中没有操作系统可供选择,或者 Windows 7(或 Ubuntu)没有显示在列表中,则执行此操作
- 请启动您的 Ubuntu Live CD,版本与您的硬盘上的版本相同。
- 启动终端。
- 使用以下命令(注意,如果我没记错的话,当从 Live CD 使用 sudo 时,只需ENTER在提示输入密码时按):
:
sudo -i
mount /dev/sda2 /mnt
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt update-grub
umount /mnt/sys
umount /mnt/dev
umount /mnt/proc
exit
- 重新启动机器。移除 Live CD。
现在您应该可以在 GRUB 启动菜单中看到 Windows 7 和 Ubuntu 两个选项。
致谢:http://www.ubuntugeek.com/how-to-restore-grub-boot-loader-after-installing-windows.html
我在自己的机器上测试了这两种方法并且确认它们有效。
还有第三种情况,如果你的启动目录位于另一个分区中,而该分区不是 Ubuntu 根目录的挂载位置,但是当你格式化另一个分区时,如果是这种情况,那么你已经丢失了它,所以没有意义。
答案2
您的 Ubuntu 分区已损坏(可能是由于 Windows 安装程序造成),因此 Boot-Repair 无法提供帮助。
- 如果尚未完成,请将您的文档备份到外部磁盘(USB 或 DVD)
- 尝试通过 TestDisk 修复您的分区(http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step)
- 如果你丢失的 Ubuntu 分区上有一些非常重要的文档,你可以通过以下方式恢复它们相簿,但这可能会破坏您的 Windows 安装。
- 通过 gParted 格式化您的 sda2/sda3/sda5 分区
- 在空闲空间重新安装 Ubuntu