主要結構:
磁碟組成與分割槽
檔案系統特性
linux的ext2檔案系統
與目錄樹的關係
ext2/ext3檔案的訪問與日誌式檔案系統功能
linux檔案系統的執行
掛載點的意義
其他linux支援的檔案系統與vfs
xfs檔案系統簡介
1.整顆磁碟的組成
圓形的碟片(竹雅頌記錄資料的部分)
機械手臂,與機械手臂上的磁頭(可讀寫碟片上的資料)
主軸馬達,可以轉動碟片,讓機械手臂的磁頭在碟片上讀寫資料
2.碟片上物理組成
扇區為最小的物理儲存單位,且依據磁碟設計的不同,目前主要有512bytes與4k兩種格式。
將扇區組成乙個圓,那就是柱面。
磁碟分割槽表主要有兩種格式,一種是限制較多的mbr分割槽表,一種是較新且限制較少的gpt分割槽表。
mbr分割槽表中,第乙個扇區最重要,裡面有:(1)主要開機區(master boot record,mbr)及分割槽表(partition table),其中mbr占有446bytes,而partition table 則占有64bytes。
gpt分割槽表除了分割槽數量擴充較多之外,支援的磁碟容量也可以超過2tb。
3.實體磁碟及虛擬磁碟
linux檔案系統詳解
4.三個資料的意義
superblock:記錄此filesystem的整體資訊,包inode/block的總量,使用量,剩餘量,以及檔案系統的格式與相關資訊等。
inode:記錄檔案的屬性,乙個檔案占用乙個inode,同時記錄此檔案的資料所在的block號碼。
block:實際記錄檔案的內容,若檔案太大時,會占用多個block。
linux檔案系統詳解
linux檔案系統詳解
linux檔案系統詳解
5.區塊群組(block group)的六個主要內容
1)data block(資料區塊)
linux檔案系統詳解
ext2檔案系統的block還有什麼限制?
原則上,block的大小與數量在格式化就不能夠在改變了(除非重新格式化)。
每個block內最多隻能夠放置乙個檔案的資料。
如果檔案大於block的大小,則乙個檔案會占用多個block數量。
若檔案小於block,則該block的剩餘容量就不能在被使用了(磁碟空間會浪費)。
2)inode table (inode**)
inode記錄的檔案資料:
該檔案的訪問模式
該檔案的擁有者於群組
該檔案的容量
該檔案建立或狀態改變的時間(ctime)
最近一次的讀取時間(atime)
最近修改的時間(mtime)
定義檔案特性的旗標
該檔案真正內容的指向
inode特色
每個inode大小均固定為128bytes(新的ext4與xfs可設定到256bytes)。
每個檔案僅會占用乙個inode而已。
因此檔案系統能夠建立的檔案數量與inode的數量有關。
系統讀取檔案時需要先找到inode,並分析所記錄的許可權與使用者是否符合,若符合才能開始實際讀取block的內容。
linux檔案系統詳解
3)superblock (超級區塊)
記錄的資訊
block與inode的總量
未使用與使用的inode/block數量
block與inode的大小(block為1,2,4k,inode為128bytes或256bytes)。
filesystem的掛載時間,最近一次寫入資料的時間,最近一次檢驗磁碟的使勁按等檔案系統相關資訊。
乙個valid bit數值,若此檔案系統已被掛載,則valid bit為0,若未被掛載,則valid bit為1。
4)filesystem description (檔案系統描述說明)
這區段可以描述每個block group的開始與結束的block號碼,以及說明每個區段分別介於哪乙個block號碼之間。
5)block bitmap (區塊對照表)
是記錄使用與未使用block區塊的。
6)inode bitmap (inode 對照表)
inode bitmap是記錄使用與未使用的inode號碼。
6.與目錄樹的關係
Linux檔案系統詳解
bin 存放著一百多個 linux下常用的命令 工具 dev 存放著linux下所有的裝置檔案 home 使用者主目錄,每建乙個使用者,就會在這裡新建乙個與使用者同名的目錄,給該使用者乙個自己的空間 lost found 顧名思義,一些丟失的檔案可能可以在這裡找到 mnt 外部裝置的掛接點,通常用c...
詳解Linux檔案系統
磁碟組成與分割槽 為啥要進行格式化 fhs檔案系統層級標準 ext檔案系統結構 ext檔案系統與目錄的關係 ext系列檔案系統的區別 ext2檔案系統 日誌檔案系統 學習遇到的問題 dumpe2fs 磁碟組成與分割槽 磁碟的組成 其他知識點 為啥要進行格式化 因為每種作業系統所設定的檔案屬性,許可權...
Linux 檔案系統結構詳解
一 常見檔案相關結構體以2.6.22為例,其他的2.6.x版本可能調整,但是變化不大。struct file結構體定義在include linux fs.h中定義。檔案結構體代表乙個開啟的檔案,系統中的每個開啟的檔案在核心空間都有乙個關聯的struct file。它由核心在開啟檔案時建立,並傳遞給在...