Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18568232
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: BSD

2008-04-02 21:51:40


硬盘分区 

那么应该将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*) 

由以上可以清楚的看出硬盘的分区情况。对硬盘分区的详细了解有助于在安装系统时正确的选择安装位置,以免错误的删除其他操作系统占用的分区,造成不必要的损失。 
阅读(1320) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~