如何正确设置 Grub 来四启动 Windows、Mac OS X、Linux 和 FreeBSD?

如何正确设置 Grub 来四启动 Windows、Mac OS X、Linux 和 FreeBSD?

Grub 对我来说已经完全疯了。我的四启动系统一直运行良好,直到我将 Ubuntu 升级到 12.04。由于 Ubuntu 覆盖了 Grub 的内容,我不得不用我的 Mac OS X 和 FreeBSD 条目来修复它。此后,尝试启动 Mac OS X 时出现错误“无法打开文件”,而 FreeBSD 出现错误“没有这样的分区”。Windows 和 Ubuntu 运行良好。

所以我尝试再次修复,因为我认为安装过程中一定出了问题。然后只有 Ubuntu 可以启动。尝试启动 Windows 会给我错误“未指定参数”。

我再次尝试修复 Grub,因为每次似乎得到的结果都不一样。这一次,Ubuntu 不再出现在 Grub 菜单中,其他操作系统的错误也一样。

于是我启动了 Ubuntu 12.04 live CD,并使用推荐的设置运行了 Boot-Repair。现在 Grub 完全被跳过,Windows 启动了。

我完全不知道发生了什么,也不知道为什么每次重新安装 Grub 时都会得到不同的结果。以下是我的分区设置方式:

  • sda1-存储驱动器,
  • sdb1-Windows,
  • sdb2——Mac OS X,
  • sdb3-FreeBSD,
  • sdb4——扩展,
  • sdb5-Ubuntu,
  • sdb6-共享存储,
  • sdb7-共享存储,

这是我的 grub.cfg 文件:grub配置文件

答案1

好的,听起来好像是你的 GRUB 安装搞乱了,然后 Boot Repair 用 Windows MBR 覆盖了它。

启动 Ubuntu 12.04 LiveCD 并从终端重新安装 Grub2。我假设您不是从带有 Grub Legacy 的旧版 Ubuntu 升级。无论哪种方式,您都需要 Grub2,它默认随 Ubuntu 一起提供。

这些是您需要运行的命令,将 /dev/sdAX 替换为您安装 Ubuntu 的分区(似乎是 /dev/sdb5 - 您可以使用“sudo fdisk -l”进行检查):

sudo su
mkdir /mnt/root

mount -t ext4 /dev/sdaX /mnt/root
mount -t proc none /mnt/root/proc
mount -o bind /dev /mnt/root/dev
mount -o bind /sys /mnt/root/sys

chroot /mnt/root /bin/bash

sudo grub-install /dev/sda
sudo update-grub

基本上,它从 Ubuntu 加载必要的文件,然后使用它们来查找所有操作系统并设置 grub.cfg 文件。

有关安装 Grub2 的更多信息这里

答案2

这就是将设置这个:

1:将 PLoP 安装到 MBR。(链接位于底部)

2:配置 PLoP 并添加 4 个可启动分区:

a:启动计算机

b:选择“设置”

c:选择“配置文件”

d:选择第一个条目

e:将名称更改为 Windows 或其他名称

f:将“在启动菜单中显示”设置为“是”。对您更改的所有条目执行此操作!

g:输入分区,当光标在“HDB1”上时,按键盘上的“B”键

h:按“ESC”退出,按“Y”和“Enter”

i:对接下来的 3 个条目执行此操作,以下是每个条目的分区列表:

答:HDB1,按“B”(Windows)

B:HDB2,按“B”(Mac OSX)

C:HDB3,按“B”(FreeBSD)

D:HDB4,按“B”,然后按“L”直到出现“L1”(Ubuntu)

j:您现在已完成 PLoP 的配置。如果您想配置高级设置,请参阅网站。

3:如果可以,启动 Ubuntu 和 FreeBSD,然后更新 grub。如果无法启动其中任何一个,请刻录 SG2D 或类似程序,并将 grub 安装到 /dev/sdb3 和 /dev/sdb5 上

4:现在您应该有一个可以正常工作的四启动系统。恭喜!如果没有,请评论您遇到问题的部分,我会尽力帮助您。

链接:PLoP:http://www.plop.at/ SG2D:http://www.supergrubdisk.org/super-grub2-disk/

相关内容