Linux FreeBSD mini-HOWTO(2)

2008-02-23 07:23:17来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


Fourth primary partition /dev/hda4 /dev/wd0s4

FreeBSD slice 中的 partitions 如下述方法标示 (/dev/hda4 是例子中的 FreeBSD slice ): 
Linux label FreeBSD label Default FreeBSD mount point 
/dev/hda5 /dev/wd0s4a /
/dev/hda6 /dev/wd0s4b swap
/dev/hda7 /dev/wd0s4e /var
/dev/hda8 /dev/wd0s4f /usr

如果你在 Linux中执行 dmesg 你将会看到如下 (Linux 的 kernel 必须有 UFS 支援才能奏效. 看 安装并准备 Linux) 部份: 
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

如果你在 /dev/sdb3 slice 中安装 FreeBSD, 而且 /dev/sdb2 是一个含有两个逻辑切割的 Linux 扩充切割 (/dev/sdb5 及 /dev/sdb6), 之前的例子看起来将如同这样: 
Linux label FreeBSD label Default FreeBSD mount point 
/dev/sdb7 /dev/sd1s3a /
/dev/sdb8 /dev/sd1s3b swap
/dev/sdb9 /dev/sd1s3e /var
/dev/sdb10 /dev/sd1s3f /usr

在 dmesg 的输出中看起来将如 
Partition check:
sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >

如果你有一个 Linux 延伸磁区在 FreeBSD slice 之後, 你便有了麻烦. 因为大多数的 Linux 核心安装磁片没有内含UFS 支援, 它们认不得 FreeBSD slice 中的 partitions. 看到的(/dev/hda3 是 FreeBSD slice 而 /dev/hda4 是 Linux 延伸切割) 

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

出现成: 
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 >

这会导致错误的设施指定, 并会令资料遗失. 我的建议是 永远把你的 FreeBSD slice 放在任何 Linux 延伸切割之後, 并且不要在安装 FreeBSD 後, 改变 Linux 延伸切割中的任何逻辑切割. 



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

3. 在 Linux 和 FreeBSD间分享 Swap 空间
这一个篇幅描述我如何让 Linux 和 FreeBSD 共用一个 Swap 切割. 可能还有别的方法可以做到相同的结果. 这里所用的 Linux 是 Red Hat 4.1 和 4.2 (Linux 核心 2.0.29 和 2.0.30) 与 FreeBSD 2.2.2. 如果你愿意, 你可以在安装 Linux 之前先安装 FreeBSD, 但要注意 FreeBSD slice 中 partition 的顺序. 


3.1 安装和准备 Linux 
第一步是如平常一样的安装 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, 并再试一次. 经验是好的导师. :-) 



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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:The RCS MINI-HOWTO

下一篇:The Linux DOS Win95 mini-HOWTO