文件系统:
1、创建分区之后,要实现快速存储文件和查询文件,需要在这个分区上创建文件系统
2、文件系统是一个管理软件,也是存储在磁盘的某个位置上的,但并不是在分区上,文件系统的数据在分区上
3、文件系统把分区分为两部分,元数据区域(类似索引)和存储真正数据的区域
新增、删除、复制、剪切文件的原理都跟文件系统的原理相关,比如说:
(1)为什么剪切文件比复制文件的速度要快
答:因为剪切的时候数据内容不变,变的是inode
(2)为什么有些文件删除了还可以通过文件恢复器找回来?文件粉碎机的原理是什么?
答:删除就是删除inode对应的磁盘块,原来的数据原封不动;粉碎就是用一堆随机数去覆盖原来的数据
4、linux支持的文件系统:ext2、ext3、ext4、xfs、reiserfs、jfs、nfs…
备注:
(1)linux的vfs(虚拟文件系统)使得linux可以支持不同类型的文件系统
(2)linux也支持fat32格式(windows平台)文件系统,但是本身不叫fat32,而叫做vfat;同样支持NTFS(windows平台)文件系统,但是支持不太好,写入速度慢,甚至严重的话会导致系统崩溃
(3)要留意内核支持哪些文件系统,比如ext2,ext3等。只有内核中具有某种文件系统的模块,它才能支持这种文件系统。
cat /proc/filesystems:查看当前内核所支持的文件系统类型
(4)ext3和ext2的区别:
ext3:日志文件系统,分为3个区域,元数据区、数据区、日志区。对数据进行读写操作的时候,先把inode放到日志区进行操作,操作完成之后再放到元数据区。如果这时候断电或者系统崩溃,下次开机的时候直接查找日志区有哪些inode文件就可以知道有哪些文件是损坏的,而不用从头到尾扫描所有的文件。ext3最大的功能在于能够加快文件系统修复的速度。
ext2:就是采取从头到尾的扫描方式,如果存储数据很大的话这样扫描查找会导致机器崩溃,修复速度很慢。ext2是linux上唯一的非日志文件系统。有些情况下,对于安全性、完整性要求不高并且会频繁的大量读写小文件的时候,使用ext2尤佳。
创建完分区,下面就可以创建文件系统
commands:
1、mkfs:make file system,创建文件系统
-t 指定文件系统类型
mkfs -t ext2 = mkfs.ext2
mkfs -t ext3 = mkfs.ext3
mkfs -t vfat = mkfs.vfat
2、mke2fs:专门创建或者管理ext系列文件系统:
-j journal,直接创建ext3系列的文件系统(默认是创建ext2系列的文件系统)
-b 指定block size(块大小),默认是4096,可以取值为1024,2048
-L 指定分区label(卷标)
-m # 指定预留给超级用户的块数百分比(直接指定数字即可,不用加%。防止空间填满管理员也无法进入,因此预留一些空间出来,默认应该是20%)
-i # 指定为多少字节的空间创建一个inode(默认是8192,这里给出的数值应该是块大小的2^n倍。块大小默认是4096字节)
-F #强制创建文件系统(少用)
-E #用户指定额外的文件系统属性(少用)
3、tune2fs:调整文件系统相关属性(例如:tune2fs -j /dev/sda2)
可选参数:
-j:不损坏原有数据,将ext2升级为ext3
-L labelname:设定或修改卷标
-m #:调整预留百分比
-r #:指定预留块数
-c #:指定挂载次数达到#次之后进行自检,0或者-1表示关闭此功能
-i #:每挂载使用多少天之后进行自检,0或者-1表示关闭此功能
(因为系统默认是挂载达到多少次或者多少天之后进行自检,如果文件很大而自检次数hen频繁的话,系统的IO会很高,有时会影响到系统的性能。所以通过设定-c和-i来修改默认的自检次数或者天数)
-l /dev/sda5:显示超级块的信息(所有块组的信息都存储在超级块中)
-o:设定默认挂载选项
4、dumpe2fs:显示文件系统属性信息
可选参数:
-h:只显示超级块中的信息
5、fsck:filesystem check,检查并修复linux文件系统
可选参数:
-t:指定文件系统类型(不指定也没关系,fsck会自动调用blkid来查看类型)
-a:自动修复(不与用户交互)
6、e2fsck:专门用于检查并修复ext2、ext的文件系统
可选参数:
-f:强制检查
-p:自动修复(也可以使用-a)
文件系统配置文件:/etc/fstab
OS在初始化时,会自动挂载此文件中定义的每个文件系统
配置文件格式:
第一列:要挂载的设备,/dev/sda5
第二列:挂载点,/mnt/test
第三列:文件系列类型,ext3
第四列:挂载选项,默认是defaults
第五列:转储频率,跟文件系统备份相关,每多少天做一次完全备份
第六列:文件系统检测次序,只有根文件系统为1,可以多个文件系统为2。0标识不检测
注意事项:
(1)以上设置可以让/dev/sda5在开机之后自动挂载到/mnt/test上
(2)如果挂载设备时一个swap分区的话,它的挂载点也是swap
(3)伪文件系统:tmpfs、devpts、sysfs、proc,用来实现特定功能的,不得不挂载
(2)转储频率:0表示不备份,1表示每天都要备份,2表示每2天备份一次等等