Linux文件系统详解
系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生档案无法储存的困扰。此外,我们在前面几章谈到的档案权限与属性中,这些权限与属性分别记录在文件系统的那个区块内?这就得要谈到filesystem中的inode与block了。在本章我们的重点在于如何制作文件系统,包括分割、格式化与挂载等,是很重要的一个章节喔!
认识EXT2文件系统
Linux最传统的磁盘文件系统(filesystem)使用的是EXT2这个啦!所以要了解文件系统就得要由认识EXT2开始!而文件系统是建立在硬盘上面的,因此我们得了解硬盘的物理组成才行。磁盘物理组成的部分我们在第零章谈过了,至于磁盘分区则在第三章谈过了,所以底下只会很快的复习这两部份。重点在于inode,block还有superblock等文件系统的基本部分喔!
硬盘组成与分割的复习
由于各项磁盘的物理组成我们在第零章里面就介绍过,同时第三章也谈过分割的概念了,所以这个小节我们就拿之前的重点出来介绍就好了!详细的信息请您回去那两章自行复习喔!^_^。好了,首先说明一下磁盘的物理组成,整颗磁盘的组成主要有:
圆形的磁盘盘(主要记录数据的部分);
机械手臂,与在机械手臂上的磁盘读取头(可擦写磁盘盘上的数据);
主轴马达,可以转动磁盘盘,让机械手臂的读取头在磁盘盘上读写数据。
从上面我们知道数据储存与读取的重点在于磁盘盘,而磁盘盘上的物理组成则为(假设此磁盘为单盘片,磁盘盘图标请参考第三章图2.2.1的示意):
扇区(Sector)为最小的物理储存单位,每个扇区为512bytes;
将扇区组成一个圆,那就是磁柱(Cylinder),磁柱是分割槽(partition)的最小单位;
第一个扇区最重要,里面有:(1)主要开机区(Master boot record,MBR)及分割表(partition table),其中MBR占有446bytes,而partition table则占有64bytes。
各种接口的磁盘在Linux中的文件名分别为:
/dev/sd[a-p][1-15]:为SCSI,SATA,USB,Flash随身碟等接口的磁盘文件名;
/dev/hd[a-d][1-63]:为IDE接口的磁盘文件名;
复习完物理组成后,来复习一下磁盘分区吧!所谓的磁盘分区指的是告诉操作系统【我这颗磁盘在此分割槽可以存取的区域是由A磁柱到B磁柱之间的区块】,如此一来操作系统就能够知道他可以在所指定的区块内进行档案资料的读/写/搜寻等动作了。也就是说,磁盘分区意即指定分割槽的启始与结束磁柱就是了。
那么指定分割槽的磁柱范围是记录在哪里?就是第一个扇区的分割表中啦!但是因为分割表仅有64bytes而已,因此最多只能记录四笔分割槽的记录,这四笔记录我们称为主要(primary)或延伸(extended)分割槽,其中延伸分割槽还可以再分割出逻辑分割槽(logical),而能被格式化的则仅有主要分割与逻辑分割而已。
最后,我们再将第三章关于分割的定义拿出来说明一下啰:
主要分割与延伸分割最多可以有四笔(硬盘的限制)
延伸分割最多只能有一个(操作系统的限制)
逻辑分割是由延伸分割持续切割出来的分割槽;
能够被格式化后,作为数据存取的分割槽为主要分割与逻辑分割。延伸分割无法格式化;
逻辑分割的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分割(5号到63号),SATA硬盘则有11个逻辑分割(5号到15号)。
文件系统结构概述
我们都知道磁盘分区完毕后还需要进行格式化(format),之后操作系统才能够使用这个分割槽。为什么需要进行【格式化】呢?这是因为每种操作系统所设定的文件属性/权限并不相同,为了存放这些档案所需的数据,因此就需要将分割槽进行格式化,以成为操作系统能够利用的【文件系统格式(filesystem)】。
由此我们也能够知道,每种操作系统能够使用的文件系统并不相同。举例来说,windows98以前的微软操作系统主要利用的文件系统是FAT(或FAT16),windows 2000以后的版本有所谓的NTFS文件系统,至于Linux的正统文件系统则为Ext2(Linux second extended file system,ext2fs)这一个。此外,在默认的情况下,windows操作系统是不会认识Linux的Ext2的。
传统的磁盘与文件系统之应用中,一个分割槽就是只能够被格式化成为一个文件系统,所以我们可以说一个filesystem就是一个partition。但是由于新技术的利用,例如我们常听到的LVM与软件磁盘阵列(software raid),这些技术可以将一个分割槽格式化为多个文件系统(例如LVM