如何正确设置Grub以启动Windows,Mac OS X,Linux和FreeBSD?


8

格鲁布对我完全疯了。我的四引导系统运行良好,直到我将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.cfg

Answers:


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的更多信息。


0

这就是会进行设置:

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/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.