LINUX最传统的磁盘文件系统(filesystem)使用EXT2,目前EXT3也用的比较多。
各种接口的磁盘在Linux中文件名分别为:
/dev/sd[a-p][1-15] 为SCSI ,SATA,USB,FLASH等设备名
/dev/hd[a-d][1-63]  为IDE接口的磁盘文件名

硬盘的物理组成:
1.圆形的磁盘盘(主要用来记录数据)
2.机械手臂及磁头
3.主轴马达,可以转动磁盘盘,让机械手臂上磁头读写数据
磁盘盘上的物理组成(单盘片)
1.扇区(sector) 最小的物理储存单位,每个扇区为512bytes
2.将扇区组成一个圆,就是磁柱(cylinder 磁柱是分割槽(partition)的最小单位。
3.第一个扇区包括   主要开机区(MBR) 446 bytes   分割表(partition table)  64 bytes

硬盘分区的概念:
磁盘分区指的是告诉操作系统此分割槽的开始和结束磁柱
指定分割槽的磁柱范围就记录在第一个扇区的分割表 partition cable
因为分割表只有64bytes,最多只能记录四笔分割槽记录,称为主要9primary)或延伸(extended)分割槽。
延伸分割最多只能有一个(操作系统的限制)
延伸分割槽还可以再次分割出逻辑分割槽(logical),能补格式化的是主要分割和逻辑分割。
LINUX中,IED硬盘最多有59个逻辑分割(5号到63号),SATA硬盘有11个逻辑分割(5号到15号)

文件系统
磁盘分区后还要进行格式化(format),之后操作系统才能够使用这个分区。
格式化就是将分区的文件属性设定为操作系统能够利用的文件系统格式(filesystem)
文件系统格式(filesystem)常见的有WINDOWS的FAT,NTFS,LINUX的EXT2,EXT3等。
一般情况下,一个分区只能被格式化为一个文件系统,所以可以说一个filesystem就是一个partition。
但是新的技术,如LVM,RAID可将多个分区合成一个文件系统。

文件系统的运作:
Linux中将档案权限(rwx)与文件属性(所有者,群组,时间参数等).
Linux文件系统通常将权限与属性放到inode ;实际数据放在data block区块中。
超级区块(superblock)会记录整个文件系统的整体信息,包括inode与block的总量,使用量,剩余量。
inode 一个档案占用一个inode,同时记录此档案数据所在的block号码。(提供数据读写效率)
block 实际记录档案内容(数据)
称为索引式文件系统(indexed allocation)

Linux ext2 inode
ext2文件系统在格式化时候是区分为多个区块群组(block group),每个区块有独立的inode/block/superblock系统。
文件系统最前面有一个启动扇区(boot sector).
每一个区块群组(block group)的六个主要内容;

1.date block 数据块 放置档案数据  ext2支持block大小有1K,2K及4K三种。
block大小在格式化时确定,且每个block都有编号,由inode记录。
block大小差异,导致文件秕能支持的最大磁盘与最大单一档案容量不同。
Block 1KB,最大单一档案限制 16GB ,最大文件系统总容量2TB
Block 2KB,最大单一档案限制 256GB ,最大文件系统总容量8TB
Block 4KB,最大单一档案限制 12TB ,最大文件系统总容量16TB
每个block内最多只能放置一个档案的数据,剩余容量不能再使用。

2.inode table
档案属性及权限放置在这里。
inode记录的档案数据包括以下:
该档案的存取模式(rwx)
档案的拥有者与群组(owner/group)
该档案的容量
该档案建立或状态改变的时间(ctime)
最近一次的读取时间(atime)
最近修改的时间(mtime)
定义档案特性的标志(flag)
该档案真正内容的指向(pointer)

每个inode大小均为固定的128bytes
每个档案都只占用一个inode
文件系统能够建立的档案数量与inode数量有关

3.superblock超级区块  
大小为1024bytes  一个文件系统只有一个 dumpe2fs
主要记录:
block与inode的总量
未使用与已使用的inode/block数量
block与inode的大小  (block 为 1, 2, 4K,inode 为 128 bytes)
filesystem挂载时间,最近一次写入数据时间,最近一次检验磁盘fsck的时间等文件系统相关信息
一个 valid bit 数值,若此文件系统已被挂载,则 valid bit 为 0 ,若未被挂载,则 valid bit 为 1

4.filesystem description 文件系统描述说明
可以描述每个 block group 的开始与结束的 block 号码,以及说明每个区段 (superblock,
bitmap, inodemap, data block) 分别介于哪一个 block 号码之间。这部份也能够用 dumpe2fs 来观察。

5.block bitmap 区块对照表
记录未使用的block。

6.inode bitmap (inode对照表)
记录未使用的block号码