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

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

文件系统分类

搜索文件系统驱动bash

VFS

文件系统自己是属于操做系统的功能spa

如,对于用户来说,咱们用 cat /etc/passwd访问文件,而这些文件最终是经过文件系统来放到硬盘上的。当咱们用命令去访问磁盘上的文件的时候,命令怎样去和文件系统交互的呢?底层用到的文件系统有不少种,但命令就一个,操作系统

难不成 cat 先要知道文件系统是什么,而后再访问文件系统的数据吗?3d

咱们要实现文件的管理,针对不一样的文件系统,开发独立的软件呢?如:是否是要为 cat 开发 "cat for xfs"的软件呢?如:为cat 开发 "cat for ext4"的软件呢?实现上这是不现实的。code

为了让用户更加专心地访问磁盘中的文件,不须要知道各个文件系统的区别,咱们就提供了一个虚拟的文件系统。blog

用户敲命令是在用户空间的,还有内核空间,命令不会直接跑到磁盘上去执行命令。用户空间的命令是没有权限直接访问磁盘上的文件的,经过中间的系统调用,让操做系统内核来帮它来访问磁盘文件。在不一样文件系统之上又构建了一个虚拟层,这个虚拟的层就叫虚拟的文件系统。虚拟的文件系统集成了通用文件系统的功能,而后对外让用户去访问。用户空间不须要去关心各个文件系统的区别,就只须要开发一个版本的软件。如 开发ls,就只须要开发 "ls for VFS"就能够了。ci

文件系统选择

建立文件系统

[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

文件系统检测和修复

相关文章
相关标签/搜索