安装 Windows 7 后我无法启动到 Ubuntu

xpe*_*ct0 5 windows-7 grub multi-boot ubuntu

我安装了 Ubuntu 10.04 并且它工作正常,但是今天我将 Windows 7 安装到另一个分区,现在我没有得到任何启动菜单,并且自动 Windows 仍然正常工作。

是否有任何选项可以获取启动菜单,或者如何删除 Windows 7 并恢复正常状态?

Maj*_*nko 16

您需要从 Ubuntu CD 启动并重新安装 grub 引导加载程序。

您确实应该先安装 Windows,然后再安装 Linux,它会自动获取您的 Windows 安装并将其添加到引导加载程序中。

首先你需要一张 Ubuntu Live CD。如果您从 CD 安装 Ubuntu,那么您应该已经有了一个。确保您在 CD 上的版本与您在计算机上运行的版本相同。

获得 CD 并启动后,选择“Try Ubuntu”(或类似的)图标。这将使您进入一个非常熟悉的 Ubuntu 桌面环境。

接下来,您必须确定哪个分区是您的引导分区。

转到屏幕顶部的Places菜单并挂载其中列出的任何文件系统(通过单击它们)。打开并包含与此列表类似的文件的文件系统是引导文件系统:

config-2.6.18-3-686      initrd.img-2.6.18-3-686.bak  System.map-2.6.18-3-686
grub                     lost+found                   vmlinuz-2.6.18-3-686
initrd.img-2.6.18-3-686  memtest86+.bin
Run Code Online (Sandbox Code Playgroud)

数字不重要,重要的是名字。如果您看到诸如、等之类的内容bin,那么您的文件系统就错误了。usrlib

记下文件系统名称(在窗口顶部)。

接下来,您需要打开一个终端窗口,因此请转到“应用程序”菜单并选择“附件”,然后选择“终端”。

在终端类型中:

$ mount
Run Code Online (Sandbox Code Playgroud)

并查找包含您感兴趣的文件系统名称的行。该行将以/dev/<something>sda2、hda1 等行中的 where 为前缀。这是引导分区的设备名称。

现在我们准备用 Grub 替换主引导记录。

在这个例子中,我假设你的引导设备是/dev/sda2而你的文件系统是/media/0d104aff-ec8c-44c8-b811-92b993823444 - 用你自己的文件系统详细信息替换它们。

$ sudo grub-install --root-directory=/media/0d104aff-ec8c-44c8-b811-92b993823444 /dev/sda
Run Code Online (Sandbox Code Playgroud)

请注意,您错过了2设备名称中的 。您想要引用整个设备,而不仅仅是引导分区。--root-directory 选项指定哪个分区包含引导数据。

如果出现任何警告,请尝试将命令修改为:

$ sudo grub-install --root-directory=/media/0d104aff-ec8c-44c8-b811-92b993823444 /dev/sda --recheck
Run Code Online (Sandbox Code Playgroud)

如果一切正常,您应该会看到:

Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect,
fix it and re-run the script `grub-install'.

(hd0)   /dev/sda
Run Code Online (Sandbox Code Playgroud)

您现在可以重新启动计算机,您应该可以恢复 Grub 菜单。