磁盤存儲和文件系統(四)

磁盤存儲和文件系統(四)

文件系統分類

搜索文件系統驅動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

文件系統檢測和修復

相關文章
相關標籤/搜索