Aze*_*ale 5 freebsd ubuntu grub2
我目前在我的计算机上安装了 Windows 7 和 Ubuntu 11.04 (Natty)。我还制作了一个 FreeBSD liveUSB(或安装程序,不确定;只是将dd他们的 .img 编辑到 U 盘)并安装它而不安装引导加载程序(因为我不想搞砸 GRUB 2,我认为 GRUB 2 应该是能够启动大多数东西)。FreeBSD 有它自己的分区,并且里面有 FreeBSD 分区(也许它们被称为切片?)由安装程序自动分配。我已经试过运行update-grub——它说它是一个未知的 Linux 并且没有为它添加一个条目。
所以,两个问题:
/etc/grub.d/40_custom什么?您有三个选择:您可以让 Grub 将 FreeBSD 视为某个未知操作系统并链式加载 FreeBSD 的第 1 阶段引导加载程序,或者您可以让 Grub 加载 FreeBSD 的第 2 阶段引导加载程序,或者您可以让 Grub 加载 FreeBSD 内核。
这是最简单、最可靠的方法。您所需要的只是在它自己的切片上安装 FreeBSD 引导加载程序(*BSD 所谓的切片就是 Linux 和 Windows 所谓的分区)。然后/etc/grub.d/30_os-prober当您运行update-grub. 入口/boot/grub/grub.cfg看起来像这样(如果 FreeBSD 在/dev/sda2aka 上/dev/wd0s2):
menuentry "FreeBSD" {
set root=(hd0,2)
chainloader +1
}
Run Code Online (Sandbox Code Playgroud)
Grub2目前支持所有主要的 BSD 内核(假设您的计算机从 BIOS 启动)。安装脚本没有(至少是 Ubuntu 10.04 附带的,我没有检查 11.04),所以如果你选择这条路线,你必须通过/etc/grub.d/40_Custom.
以下是来自 FreeBSD 论坛上 David Marec 的示例条目。我还没有测试过它们,但它们看起来很有道理。最好的方法似乎是加载 FreeBSD 阶段 2 引导加载程序。您可以将 FreeBSD 安装的位置指定为磁盘号、片号和分区a:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
set root=(hd0,1,a)
kfreebsd /boot/loader
}
Run Code Online (Sandbox Code Playgroud)
或者通过搜索具有特定 UUID、文件或标签的文件系统:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file /boot/loader
kfreebsd /boot/loader
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13392 次 |
| 最近记录: |