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

淺唱寂寞╮ 提交于 2019-12-09 12:31:06

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

文件系统分类

搜索文件系统驱动

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

文件系统检测和修复

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!