如何在一个系统中使用 Linux 和 FreeBSD( 二 )



/dev/hda3 56 56 403 701568 83 Linux native

/dev/hda4 404 404 621 439488 a5 BSD/386

Command (m for help): b

Reading disklabel of /dev/hda4 at sector 1624897.

BSD disklabel command (m for help): p

8 partitions:

# size offset fstype [fsize bsize cpg]

a: 64512 1624896 4.2BSD 0 0 0 # (Cyl. 404 - 419)

b: 104832 1689408 swap # (Cyl. 420 - 445)

c: 878976 1624896 unused 0 0 # (Cyl. 404 - 621)

e: 64512 1794240 4.2BSD 0 0 0 # (Cyl. 446 - 461)

f: 645120 1858752 4.2BSD 0 0 0 # (Cyl. 462 - 621)

BSD disklabel command (m for help): q

#

在第一个栏位中的字母 `a"...`f" 与下面 FreeBSD slice 的例子中的是相同

的. 字母`b"指的是 swap partition, 而`c"指的是整个 slice. 阅读 FreeBSD

文件以便获取指定这些字母给不同切割型态的``标准方法" 的更多资讯.



2.2 Linux 和 FreeBSD 中的硬碟与切割区标示.

Linux 和 FreeBSD 中的硬碟是如下列方法标示的:



Linux FreeBSD

First IDE drive /dev/hda /dev/wd0

Second IDE drive /dev/hdb /dev/wd1

First SCSI drive /dev/sda /dev/sd0

Second SCSI drive /dev/sdb /dev/sd1

FreeBSD slice 是如下方法标示: (/dev/hda 为□例):



Linux FreeBSD

First primary partition /dev/hda1 /dev/wd0s1

Second primary partition /dev/hda2 /dev/wd0s2

Third primary partition /dev/hda3 /dev/wd0s3

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

支援才能奏效. 看 [6]安装并准备 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 切割, 但如果你要这样一个切割, 就把它放在

推荐阅读