磁盘存储和文件系统(四)
文件系统分类

搜索文件系统驱动

VFS

文件系统本身是属于操作系统的功能
如,对于用户来讲,我们用 cat /etc/passwd访问文件,而这些文件最终是通过文件系统来放到硬盘上的。当我们用命令去访问磁盘上的文件的时候,命令怎样去和文件系统交互的呢?底层用到的文件系统有很多种,但命令就一个,
难不成 cat 先要知道文件系统是什么,然后再访问文件系统的数据吗?
我们要实现文件的管理,针对不同的文件系统,开发独立的软件呢?如:是不是要为 cat 开发 "cat for xfs"的软件呢?如:为cat 开发 "cat for ext4"的软件呢?实现上这是不现实的。
为了让用户更加专心地访问磁盘中的文件,不需要知道各个文件系统的区别,我们就提供了一个虚拟的文件系统。
用户敲命令是在用户空间的,还有内核空间,命令不会直接跑到磁盘上去执行命令。用户空间的命令是没有权限直接访问磁盘上的文件的,通过中间的系统调用,让操作系统内核来帮它来访问磁盘文件。在不同文件系统之上又构建了一个虚拟层,这个虚拟的层就叫虚拟的文件系统。虚拟的文件系统集成了通用文件系统的功能,然后对外让用户去访问。用户空间不需要去关心各个文件系统的区别,就只需要开发一个版本的软件。如 开发ls,就只需要开发 "ls for VFS"就可以了。
文件系统选择

创建文件系统

[root@Centos7 ~]# mkfs.xfs /dev/sda6
meta-data=/dev/sda6 isize=512 agcount=4, agsize=131072 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=524288, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@Centos7 ~]#
[root@Centos7 ~]# blkid
/dev/sda1: UUID="a04bd2f6-9c4f-4d64-b21d-30c843c0d8c4" TYPE="xfs"
/dev/sda2: UUID="b0b144a3-b892-4faf-b328-7bb0527c8f52" TYPE="xfs"
/dev/sda3: UUID="1a493b21-d500-41bd-aba0-8c420a77b913" TYPE="swap"
/dev/sda5: UUID="8bb20363-d090-4bcb-97de-6d950c38b38a" TYPE="xfs"
/dev/sr0: UUID="2019-09-09-19-08-41-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda6: UUID="44a0573a-def3-401e-bd5e-d40d23fdab1f" TYPE="xfs"
创建ext文件系统

超级块和INODE TABLE

文件系统标签

tune2fs

文件系统检测和修复

来源:oschina
链接:https://my.oschina.net/u/4270793/blog/3138861