文件系统:管理文件,实现文件的按名称存取,通常由位于内核的一个模块来实现(仅内核有此权限),程序员通过系统调用来与内核交互(open(),close()…

 

一块磁盘上的0磁道,0扇区为MBR,不属于任何文件系统

MBR512bytes

MBR446bytesbootloader

                   64bytes(分区表,每16bytes一个分区,因此最多4个主分区)

                   2bytes(标识此硬盘是否为可引导的,可引导的值为5A

 

分区的第一个存储空间为引导块(0—1023bytes)(boot  block

 

Inode(文件索引节点)里面的信息为:

文件大小、权限、属组、属主、时间戳(mtimeatimectime),这些称为元数据。

 

每一个文件都有自己的inode

 

Inode都有自己的编号,称为inode

 

Inode有存储数据块编号的三级索引数据块

 

目录就是一个文件,文件内容为:

目录下的文件名,及其对应的inode号;目录只负责自己目录下的文件以及inode号的保存,子目录下的文件及inode号由子目录来保存。

 

每一个文件系统一般都会分为几个block group,每个中都存放着各自的blockinode bitmap,一般第一个block group上有一个superblock,另外几个block  上也可能存有备份的superblock

Superblock内容:总inode数,总block数,空闲的block数;空闲的inode数;预留给管理员的block数;以及这些block的编号和所在block  group

 

查看超级块命令示例:

Tune2fs    -l       /dev/sda3

Dumpe2fs         /dev/sda3|less显示所有blockgroup的信息–h 显示超级块的信息

 

Du命令查看文件大小   df命令查看磁盘剩余使用空间

 

再看文件的:

删除:1)找到文件对应的inode,把inode对应bitmap改为0,将inode中数据清除或不清除,以后使用inode时覆盖原数据即可

2)找到文件对应的block,把block对应bitmap改为0,不清除block中数据,以后使用block时覆盖原数据即可

 

复制:找到原文件的blockinode,在目标目录下创建inode数据及block,将原block数据复制到目标block上去

移动:1)原文件和目的文件在同一分区上,inode不变,改变目录的inode与文件的对应关系,将原目录上的对应关系条目删除,在目标目录上加一条对应关系

2)原文件和目的文件不在同一分区上,因为不同分区inode列表不同:在目标目录下创建inode数据及block,将原block数据复制到目标block上去,再清除原inode以及block信息

 

 

链接文件:

硬链接:定义:同一分区下,任意几个文件(大于一个文件)指向的同一inode号,说白了就是几个指向同一inode的不同路径,删除其中一个路径不影响其他路径,除非删除最后一个路径;ls –l 第二列显示出的数字为文件硬链接的次数,若显示为1,删除此文件将再无其他路径访问此文件指向的inode及其block中的数据。此inode及其blockbitmap值将被标记为0,供以后创建文件使用,硬链接不可以跨分区,因为每个分区的inode表是独立的。

 

硬链接特性:1)不可以跨分区,因为每个分区的inode表是独立的。所有文件指向同一inode,因此为同一文件。

2)不能对目录创建硬链接,因为这样会导致循环引用,.号目录是个例外。

3)删除其中一个路径不影响其他路径, ls –l第二列显示出的数字为文件硬链接的次数,ls  -i显示文件相对应的inode

4)所有文件指向同一inode,因此为同一文件。修改一个文件,影响所有文件。

创建硬链接示例:ln  inittab  hello

 

 

软链接(符号链接symbolic  link):ls   -l文件类型显示为l的;bash测试条件是-L    -h

创建软链接示例:ln  -s  inittab hello#-v选项显示创建过程

软链接特性:

1)  删除源文件,符号链接文件将不可用

2)  可以跨分区,可以指向目录。

3)  源文件,符号链接文件指向的是不同的inode,符号链接文件的数据只是目标文件的绝对路径(字符个数(byte))而已,因此符号链接文件一般都很小。

 

Ext文件系统的扩展属性:

查看  lsattr

修改  chattr  [+|-|=][i|a|u|A]