20 FreeBSD连载:建立文件系统

建立文件系统当系统负载逐步增加,仅仅依靠原有文件系统的空间是不够的,更有效的方式是增加新的硬盘设备 。这首先需要改动硬盘及其控制器的硬件设置,以及FreeBSD内核配置,以便硬盘能安装到计算机上并能被FreeBSD内核正确识别 。接下来就需要在新硬盘上创建新的文件系统 。
在系统安装过程中,已经接触了在FreeBSD下管理硬盘和分区的方式,FreeBSD需要两个步骤才能为文件系统分配一个硬盘空间,第一步是为FreeBSD创建一个UFS系统分区,这个分区只由FreeBSD来使用,然后在第二步中从这个分区中,为各个文件系统划分空间,在FreeBSD下称为创建文件系统的DiskLabel标签 。
最容易和直观的创建新文件系统或交换空间方式是使用安装程序sysinstall,以便系统启动能够自动安装上这个文件系统 。使用Sysinstall来安装新文件系统的方式在系统安装的过程中已经有了详细描述,以root权限执行/stand/sysinstall就能进入Sysinstall,然后选择Partition进行分区,选择Label创建和维护BSD文件系统 。
建立文件系统的命令行方式
除了使用sysinstall之外,还可以使用命令行的方式来完成这些操作 。相比较而言,命令行的方式更困难,也更容易出错,因此一般不需要使用这种方式,然而命令行方式能带来更大的灵活性,在一些系统维护情况下更为有效 。
命令行方式建立文件系统需要使用fdisk命令进行硬盘的分区工作,fdisk能查看系统分区表上的分区信息,并更改其分区设置;然后disklabel命令可以在分区中划分不同子分区空间并标记各个空间的DiskLabel;使用newfs建立新文件系统,或者使用swapon命令增加交换设备 。
【20 FreeBSD连载:建立文件系统】创建新文件系统,首先要使用交互式的fdisk命令(使用-i参数)对硬盘进行分区,不带参数的fdisk命令仅仅显示该硬盘的分区设置,而不能更改设置 。fdisk均使用它检测到的硬盘设置作为缺省设置,如果不需要改变,就可以直接使用这些缺省设置回应其询问 。在fdisk中可以修改的数据有硬盘映射数据,以及四个分区的起始位置和类型 。
# fdisk -i wd1
******* Working on device /dev/rwd1 *******
parameters extraced 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)
 
Do you want to change our idea of what BIOS thinks ? [n]fdisk能检测硬盘的真实映射数据和BIOS的映射数据,由于FreeBSD不使用BIOS存取硬盘数据,因此这两个数据有可能不一致,但这不影响FreeBSD系统对硬盘的访问 。但BIOS的映射数据必须与BIOS中的设置一致,否则fdisk使用错误数据划分的分区,系统的引导和其他使用BIOS的操作系统就无法正确识别 。当硬盘上没有硬盘分区时,fdisk无法获得正确的BIOS映射数据(因为FreeBSD不访问BIOS),此时就需要在询问是否更改BIOS映射方式时回答yes,以进行更改 。一般在硬盘上已有分区或不需要兼容的情况下,不需要更改这个设置,直接回车选择no略过这个设置 。
The data for partition 1 is:
UNUSED>
Do you want to change it? [n] y然后,fdisk会针对每个分区询问是否更改其数据,此时按需要更改分区的设置 。由于使用fdisk可以直接指定分区的起始和结束,因此具有很大的灵活性,也很容易出现错误,如分区的划分出现重叠 。由于多操作系统引导程序Boot Manager占用了硬盘主引导区后面的几个空余扇区,按照Dos/Windows的标准,虽然主引导区仅占用了一个扇区,同一柱面中的其他扇区(一般为64或32个)也不能被分配给其他分区,而要保持为空余,这些扇区可以为Boot Manager占用 。这样就在fdisk指定分区的起始时,是不能从0开始的,而要从下一个柱面的起始位置开始 。

推荐阅读