好吧,你们中的许多人可能都知道 Windows 8 开发人员预览版今天发布了,因此我非常渴望使用它,但我的机器上安装了 Ubuntu 和 Windows 7。我不想打扰这些驱动器,最近在 /media/sdb8 上设置了一个专用的 grub 分区
我的问题是,如果我安装 Windows 8,它会覆盖 grub 分区吗?如果会,我应该采取什么步骤来恢复它。
答案1
如果您在安装过程中(硬盘设置,选择在哪个分区安装 C: 驱动器...)明确告诉 Windows 不要覆盖您的启动分区 (/media/sdb8),Windows 8 将不会覆盖您的启动分区。但据我所知,Windows 8 将覆盖您的 MBR。因此,一旦安装了 Windows 8,您将无法启动 Ubuntu;即使您仍然可以启动 Windows 7。
要修复此问题,您需要与安装 Ubuntu 时使用的 Ubuntu LiveCD 版本相同。使用 LiveCD,您可以修复 MBR 以显示启动屏幕以选择 Windows 8、7 和 Ubuntu。详细说明可在此处找到:https://help.ubuntu.com/community/Grub2#Copy_LiveCD_Files。
为了方便起见,我在这里列出它们。
- 启动 LiveCD 桌面。
- 从菜单栏中选择“应用程序”、“附件”、“终端”来打开终端。
- 确定 Ubuntu 安装的分区。fdisk 选项“-l”是小写的“L”。
sudo fdisk -l
或sudo blkid
。设备/驱动器由 sdX 指定,其中 X 是设备名称。sda 是第一个设备,sdb 是第二个,等等。对于大多数用户来说,MBR 将安装到 sda,即系统上的第一个驱动器。分区由 Y 指定。第一个分区是 1,第二个是 2。请注意,设备和分区的计数不同。例如:MBR 可能安装在 /dev/sdb 上,而 Ubuntu 分区可能安装在 /dev/sdb3 上。 - 挂载包含 Ubuntu 安装的分区:
sudo mount /dev/sdXY /mnt
。示例:sudo mount /dev/sdb3 /mnt
。注意:如果用户有单独的 /boot 分区,则必须将其挂载到 /mnt/boot。由于您有单独的启动分区(其中包含 grub - /media/sdb8 - 您还需要运行以下命令:sudo mount /dev/sdb8 /mnt/boot
。注意:如果用户有单独的 /home 分区,则必须将其挂载到 /mnt/home。加密的主分区应该可以工作。 - 按照如下所述运行 grub-install 命令。这将重新安装已安装分区上的 GRUB 2 文件到正确的位置和指定设备的 MBR。如果您正在使用10.04 或 10.10,然后运行
sudo grub-install --root-directory=/mnt /dev/sdX
。例如:sudo grub-install --root-directory=/mnt /dev/sdb
。如果您使用11.04 或 11.10,然后运行sudo grub-install --boot-directory=/mnt/boot /dev/sdX
。例如:sudo grub-install --boot-directory=/mnt/boot/ /dev/sdb
。 - 重新启动进入硬盘上的 Ubuntu 安装。
- 通过在终端中输入以下命令来刷新 GRUB 2 菜单:
sudo update-grub
。
注意:正如 Steve 所回答的,“Windows 8 使用新的 Protogon 文件系统”。Grub 尚不支持此文件系统!一旦支持,您可以使用 Grub 启动 Windows 8 引导加载程序。在此之前,按照 jart 的建议,使用单独的硬盘来保存 Windows 8 分区及其引导加载程序。这样,即使是 Ubuntu 硬盘 MBR 也不会被覆盖。在安装到 Windows 8 硬盘时,请拔下 Ubuntu 硬盘。安装完成后,重新插入 Ubuntu 硬盘,启动 Ubuntu 硬盘(通过在 BIOS 启动顺序中设置),然后按照我上面概述的步骤进行操作。
答案2
注意 - Windows 8 使用新的 Protogon 文件系统,Grub 无法找到它。
这意味着当你重新安装 grub 时,你将失去进入 Windows 8 的能力
答案3
如果钱不是问题,那么就买一个新硬盘,然后在其中安装 Windows 8。这样,您将在一个硬盘中安装 ubuntu 和 Windows 7,在另一个硬盘中安装 Windows 8。不过,您必须从 BIOS 启动 Windows 8,但不必担心弄乱 Windows 7 或 ubuntu。在安装 Windows 8 之前,请记住先拔下包含 Windows 7 和 ubuntu 的硬盘。在新驱动器中安装 Windows 8 后,重新插入包含 Windows 7 和 ubuntu 的硬盘。
答案4
我猜大多数人在发现这个问题后,他们的引导程序就已经坏了。我在一个完全独立的磁盘上安装了 Windows 8,并计划在对 Windows 进行一些奇怪的操作后像往常一样重新安装 grub。不幸的是,重新安装 grub 不足以修复我的启动菜单。
因此之后根据 ubuntu 的说明修复 grub,我跑了
apt-get install startupmanager
在终端中,运行startupmanager应用程序,它找到了适当的菜单。关闭它,重新启动,一切正常。
请注意使用 Windows 8 菜单中的关机选项实际休眠,因此为了在 Windows 8 中挂起后重新启动到 Linux,您需要使用重新启动选项,或者在终端中运行以下命令将其完全关闭。
shutdown /s /full / t 0