硬盘分区
那么应该将FreeBSD装在硬盘的什么位置呢?下面看看硬盘。熟悉DOS/Windows系统的用户都知道,DOS/Windows将硬盘分成主分区和 扩展分区,在扩展分区上再建立逻辑分区,并给主分区和逻辑分区分配相应的盘符:C、D等。那么FreeBSD是如何处理硬盘分区的呢?
在FreeBSD 中,分区的概念略有不同。FreeBSD将硬盘分成最多四个slice(片段),每一个slice上又可以分成最多8个partition(分区)。也就 是说FreeBSD将DOS/Windows里的一个分区看作一个slice。在以后的叙述中,将采用FreeBSD的概念,即slice和 partition的硬盘分区术语。
FreeBSD(包括其他Unix类操作系统)可以将硬磁盘当作大量连续的数据块进行处理,这样 并没有文件系统的概念,很像访问磁带机。这种访问方式称作raw访问,这样的设备称作raw device或character device。但是用户希望使用文件访问的方式,这样不用关心文件究竟存储在硬盘的什么地方,只要能够打开文件进行数据操作就可以了。采用这种访问方式需 要许多其他的处理工作,将这时使用的磁盘称作block device。可以通过ls -l命令,从列出的权限属性的头一个字符区分character device和block device。"c"表示character device,而"b"表示block device。例如:
$ ls -l /dev/rwd0s1a /dev/wd0s1a
crw-r----- 1 root operator 3, 0x00010002 Oct 16 23:38 /dev/rwd0
brw-r----- 1 root operator 0, 0x00010002 Oct 16 23:38 /dev/wd0
下面介绍FreeBSD对硬盘分区的命名规则。
与 其他设备一样,硬盘分区设备文件存储于/dev目录下。如果是raw device设备名的起始字符是:"r",否则不会使用这个起始字符。接下来是设备名,IDE硬盘是"wd",SCSI硬盘是"da",软盘是"fd"。 接下来是一个数字,表示是第几个硬盘,如第一个IDE口上的主用硬盘(Primary IDE Master)的名字就是:/dev/rwd0和/dev/wd0,从用硬盘(Primary IDE Slave)的名字就是:/dev/rwd1和/dev/wd1,以此类推。接下来是分区信息,为表示slice在前面的名字基础上加字符"s"和数字 "1"到"4"来表示一个硬盘上的四个slice。BSD通过在slice名后面附加字符"a"到"h"来表示分区。这样可以得到如下一些设备名(以 Primary IDE上的Master硬盘为例):
/dev/rwd0, /dev/rwd0s1,/dev/rwd0s2,/dev/rwd0s3,/dev/rwd0s3,
/dev/rwd0s1a,/dev/rwd0s1b,/dev/rwd0s1c,/dev/rwd0s1d,/dev/rwd0s1e,
/dev/rwd0s1f,/dev/rwd0s1g,/dev/rwd0s1h,/dev/rwd0a,/dev/rwd0b,
/dev/rwd0c,/dev/rwd0d,/dev/rwd0e,/dev/rwd0f,
/dev/rwd0g,/dev/rwd0h和/dev/wd0, /dev/wd0s1,/dev/wd0s2,/dev/wd0s3,
/dev/wd0s4,/dev/wd0s1a,/dev/wd0s1b,/dev/wd0s1c,/dev/wd0s1d,
/dev/wd0s1e,/dev/wd0s1f,/dev/wd0s1g,/dev/wd0s1h,/dev/wd0a,
/dev/wd0b,/dev/wd0c,/dev/wd0d,/dev/wd0e,/dev/wd0f,/dev/wd0g,/dev/wd0h等。
举 例来讲,/dev/rwd0s1a和/dev/wd0s1a分别表示第一个IDE接口上的Master模式硬盘上的第一个slice上的第一个分区的 character device和block device,这个分区(即"a"分区通常是根目录 / ),而/dev/rwd0s1b和/dev/wd0s1b表示第一个slice上的第二个分区,这个分区通常用作swap(交换分区)。 /dev/rwd0s1c和/dev/wd0s1c则有特殊的含义,表示第一个slice这整个slice。下面是我自己的硬盘参数,用fdisk命令的 输出结果:
******* Working on device /dev/rwd0 *******
parameters extracted from in-core disklabel are:
cylinders=525 heads=255 sectors/track=63 (16065 blks/cyl)
parameters to be used for BIOS calculations are:
cylinders=525 heads=255 sectors/track=63 (16065 blks/cyl)
Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 6,(Primary 'big' DOS ( 32MB))
start 63, size 3084417 (1506 Meg), flag 80 (active)
beg: cyl 0/ sector 1/ head 1;
end: cyl 191/ sector 63/ head 254
The data for partition 2 is:
sysid 5,(Extended DOS)
start 3084480, size 3084480 (1506 Meg), flag 0
beg: cyl 192/ sector 1/ head 0;
end: cyl 383/ sector 63/ head 254
The data for partition 3 is:
sysid 165,(FreeBSD/NetBSD/386BSD)
start 6168960, size 2265165 (1106 Meg), flag 0
beg: cyl 384/ sector 1/ head 0;
end: cyl 524/ sector 63/ head 254
The data for partition 4 is:
用disklabel /dev/wd0s3命令可以看出FreeBSD占用的slice 3的分区情况,如下:
# /dev/wd0s3:
type: ESDI
disk: wd0s3
label:
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 255
sectors/cylinder: 16065
cylinders: 141
sectors/unit: 2265165
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 307200 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 19*)
b: 131072 307200 swap # (Cyl. 19*- 27*)
c: 2265165 0 unused 0 0 # (Cyl. 0 - 140)
e: 307200 438272 4.2BSD 1024 8192 16 # (Cyl. 27*- 46*)
f: 1519693 745472 4.2BSD 1024 8192 16 # (Cyl. 46*- 140*)
由以上可以清楚的看出硬盘的分区情况。对硬盘分区的详细了解有助于在安装系统时正确的选择安装位置,以免错误的删除其他操作系统占用的分区,造成不必要的损失。