您现在的位置: 万盛学电脑网 >> 操作系统 >> Linux教程 >> 正文

Linux+FreeBSD mini

作者:佚名    责任编辑:admin    更新时间:2022-06-22

class="22003"> 作者: Niels Kristian Bech Jensen, [email protected] 
译者: 黄则荣 [email protected]
v1.4, 23 January 1998 翻译日期: 17 March 1998 


--------------------------------------------------------------------------------
这份文件途述如何在一个系统中使用 Linux 和 FreeBSD. 它介绍 FreeBSD, 并讨论这两个系统如何互相影响, 如一起分享 swap 空间. 你在读这份文件之前, 应该要有使用 Linux 与做硬碟分割的经验. 如果你对这篇文件有任何的评论, 问题, 与建议, 请不要犹豫, 写封电子邮件给我. 我也希望听听有同时使用 Linux 和 NetBSD 或 OpenBSD 经验的人说说. 
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

1. 什麽是 FreeBSD? 
FreeBSD 和 Linux 一样是个免费的, 如同 unix 般的作业系统. 最主要的差异是, Linux 是自首到尾从新发展的, 而 FreeBSD 是基於 4.4BSD (柏克来大学软□ Distribution) 自由 redistribution 的那一个部份而来. 这个部份也被称为 4.4BSD-lite. 这个事实也许会使人这麽想: FreeBSD 比 Linux 更近於'真正'的unix. FreeBSD 只能在 Intel PC 平台上(i386或更高)执行. 而移植到 DEC Alpha 平台的版本目前正在被讨论. FreeBSD 对硬□的需求与 Linux 非常的相像. 

FreeBSD 的发展与 Linux 比较起来是比较封闭的. 主要的决定是由一个开发人员所成立的中心团队负责. 大的改变先在mail-list 上事先做讨论. FreeBSD 有两个发展树, (如同 Linux 一般) : ``-current'' 和 ``-stable". 新功能的发展在``-current"发展树中, 而``-stable"树中的改变主要都是己除去 bug 的了. 

FreeBSD 如同 Linux一般可自由免费的使用与(re-)散发. 系统的大部份是在BSD 版权下发行, 而其他的则是在 GNU GPL 或 GNU LPGL 下. 

你可以在 FreeBSD Inc. 下找到更多的资讯或是下载整个系统. 最新 ``-stable"的版本和 ``-current"发展程式码可以在 Walnut Creek CDROM 购得. (他们是使用 FreeBSD 来提供 web 和 ftp 服务) 



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

2. FreeBSD 标示硬碟的方式
Linux 和 FreeBSD 使用两种不同的方式来标示与切割硬碟. 

2.1 FreeBSD ``slices'' 和 ``partitions'' 
FreeBSD 只需要用硬碟上的一个主硬碟切割区. 这个主切割区在 FreeBSD 的术语中被称为 ``slice''. 然後它用 disklabel 这个程式在这个主硬碟切割区中制造逻辑切割区. 这些逻辑切割区在 FreeBSD 的术语中被称为``partitions''. 这个观念与 Linux (和 DOS) 处理括充切割区中的逻辑切割区是非常相像的. 注意: Linux fdisk 程式的主功能表中并不会将 FreeBSD slice 中的 partitions 显示出来, 但是你可以使用命令 'b' 来显示 BSD 磁碟标签的讯息. 它的输出将如这样 : (/dev/hda4 是 FreeBSD 的 slice): 


# fdisk /dev/hda 
 
Command (m for help): p
Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes 
   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1   *        1        1       27    54400+  83  Linux native
/dev/hda2           28       28       55    56448   83  Linux native
/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 支援才能奏效. 看 安装并准备 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