Linux+FreeBSD mini-HOWTO( 三 )


第一步是如平常一样的安装 Linux. 你必须在你的硬碟中留下给 FreeBSD slice 的空间. 你不用作 Linux 的 Swap 切割, 但如果你要这样一个切割, 就把它放在你要给 FreeBSD 的空间中. 这样, 你便可以在稍後删除这个切割, 并把它拿来给 FreeBSD 用 .

在完成 Linux 的安装後, 你必须要重新编译 kernel. 如果你对这不清楚, 可以参考 The Linux Kernel HOWTO. 你 必须 加入对 UFS 档案系统 的支援, 与对 BSD disklabel (FreeBSD partition tables) 的支援.

UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y
BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]
(NEW) y

安装新的核心并重新开机. 如果你有建构 Linux Swap 切割, 把在/etc/fstab 档中任何含有 swap 的那几行删去. 确定你有可用的新核心开机片 你便可以开始来安装 FreeBSD 了.
3.2 安装 FreeBSD
依 FreeBSD 文件中所描述的方式来安装你的 FreeBSD. 如果你有建构 Linux swap 切割, 把它删除, (你可以使用 FreeBSD 的fdisk 程式.) 注意一下 FreeBSD slice 中 partitions 的顺序. 如果你使用预设的标签编码, 第二个 partition 将是swap 切割. 完成 FreeBSD 的安装, 并使用Linux的开机片 重新开机进入 Linux.


3.3 在 Linux 中设定 FreeBSD 的 swap 切割
在进入 Linux 後执行 dmesg. 在它的输出你应该会看到类似这样的东西:

Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

这表示 /dev/hda4 是你的 FreeBSD slice, 而 /dev/hda5, /dev/hda6, /dev/hda7 和 /dev/hda8 是 FreeBSD 切割. 如果你的 swap 切割是在 slice 中的第二个切割, 那将会是 /dev/hda6. 你必须把下面的这几行放到你的 /etc/fstab 档中来开启 swap partition 的功能.
/dev/hda6 none swap sw 0 0

FreeBSD 可以用任何型态的切割来当作 swap 切割, 但 Linux 的 swap 切割需要特别的签名. 这个签名是用 mkswap 来建构的. FreeBSD 使用这个共用的 swap 切割时会对这个签名造成破坏, 所以你必须在每次进入 Linux 的时後执行 mkswap. 要让这个动作自动执行, 你必须找出执行 swapon 的 script 并在开机时执行. 以 Red Hat 而言, 这是 /etc/rc.d/rc.sysinit. 把下面这一行放到 swapon -a 前:
awk -- "/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }" /etc/fstab

这将会在每次开机时, 在 /etc/fstab 中的任何 swap 切割上执行 mkswap, 除非你把它取消 (使用 ``#"" 当一行的第一个字元)
在你重新开机进入 Linux 後, 使用 free 来检查 swap 空间的大小. 你也必须重新开机进入 FreeBSD 来确认一切都如预期的运作. 如果没有, 那你可能使用了错误的切割来当作 swap 切割. 唯一的解决办法, 便是重新再安装 FreeBSD, 并再试一次. 经验是好的导师. :-)



--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

4. 使用 LILO 来启动 FreeBSD
你可以非常容易的使用 LILO 来启动 FreeBSD. 如果你要使用 LILO, 不要安装 FreeBSD 的 boot loader (Booteasy). 在你的/etc/lilo.conf 档中加入下列这几行, 并执行 lilo ( FreeBSD slice 是在 /dev/hda4):


other=/dev/hda4
table=/dev/hda
label=FreeBSD

如果你把 FreeBSD 安装在第二颗 SCSI 硬碟中, 使用类似这样的设定(FreeBSD slice 在 /dev/sdb2):

推荐阅读