3 Linux管理员手册--存贮介质( 六 )


事实上,一些新版的BIOS和IDE硬盘可以处理多于1024柱面 。如果你有这样一个系统,你可以忘却这个问题;如果你不能确认,还是把启动分区放在前1024柱面内 。
每个分区拥有一块连续的扇区 。因为Linux文件系统使用1 kB的块,即2个扇区,所以奇数个扇区会导致最后一个扇区不能使用,这不会有什么问题,但不好,有些版本的 fdisk 会对此给出警告 。
改变分区大小一般要求首先备分此分区想保留的所有东西(为防万一,最好备分整个硬盘),然后删除此分区,产生新分区,最后回存所有东西到新分区 。如果是扩大分区,你可能需要调整相邻分区的大小(并备分、回存) 。
由于改变分区大小是如此痛苦,最好一次就确定 。或拥有一个有效而易用的备分系统 。如果你通过无须太多人工干预的介质安装(例如CDROM,而不是软盘),那么开始可以比较容易地玩玩各种设置 。因为你无须备分什么数据,改几次分区大小不会太过痛苦 。
有个MSDOS的程序叫fips , 可以无须备分和回存地改变MSDOS分区的大小, 但对其他文件系统,备分回存还是必须的 。
设备文件和分区
每个分区和扩展分区有自己的设备文件 。这些文件的命名规定是在整个盘的名字加分区号,并约定1-4是基本分区(不管真的有几个基本分区),5-8是逻辑分区(不管它在哪个基本分区中) 。例如,/dev/hda1 是第一个IDE硬盘的第一个基本分区,而/dev/sdb7 是第二个SCSI硬盘的第三个扩展分区 。设备列表 [Anv]给出更详细的信息 。
文件系统
什么是文件系统?
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构;即在磁盘上组织文件的方法 。也指用于存储文件的磁盘或分区,或文件系统种类 。因此,可以说"我有2个文件系统"意思是他有2个分区,一个存文件,或他用 "扩展文件系统",意思是文件系统的种类 。
【3 Linux管理员手册--存贮介质】磁盘或分区和它所包括的文件系统的不同是很重要的 。少数程序(包括最有理由的产生文件系统的程序)直接对磁盘或分区的原始扇区进行操作;这可能破坏一个存在的文件系统 。大部分程序基于文件系统进行操作,在不同种文件系统上不能工作 。
一个分区或磁盘能作为文件系统使用前,需要初始化,并将记录数据结构写到磁盘上 。这个过程就叫建立文件系统 。
大部分UNIX文件系统种类具有类似的通用结构,即使细节有些变化 。其中心概念是超级块superblock, i节点inode, 数据块data block,目录块directory block, 和间接块indirection block 。超级块包括文件系统的总体信息,比如大小(其准确信息依赖文件系统) 。i节点包括除了名字外的一个文件的所有信息,名字与i节点数目一起存在目录中,目录条目包括文件名和文件的i节点数目 。i节点包括几个数据块的数目,用于存储文件的数据 。i节点中只有少量数据块数的空间,如果需要更多,会动态分配指向数据块的指针空间 。这些动态分配的块是间接块;为了找到数据块,这名字指出它必须先找到间接块的号码 。
UNIX文件系统通常允许在文件中产生孔(hole) (用lseek ; 请看手册), 意思是文件系统假装文件中有一个特殊的位置只有0字节,但没有为这文件的这个位置保留实际的磁盘空间(这意味着这个文件将少用一些磁盘空间) 。这对小的二进制文件经常发生,Linux共享库、一些数据库和其他一些特殊情况 。(孔由存储在间接块或i节点中的作为数据块地址的一个特殊值实现,这个特殊地址说明没有为文件的这个部分分配数据块,即,文件中有一个孔 。)
孔有一定的用处 。在笔者的系统中,一个简单的测量工具显示在200MB使用的磁盘空间中,由于孔,节约了大约4MB 。在这个系统中,程序相对较少,没有数据库文件 。有关这个测量工具的细节请看附录 A.

推荐阅读