標籤:linux 檔案系統
1 磁碟組成與分區1.1 磁碟物理組成(1)圓形碟片—記錄資料(2)機械手臂及磁頭—讀寫碟片資料(3)主軸馬達—使得機械手臂成功讀寫資料驅動1.2 碟片物理組成(1)扇區—最小實體儲存體單位,512bytes(2)柱面—扇區組成的圓,分區的最小單位(3)第一扇區—最重要的扇區,包含主引導記錄MBR446bytes 以及 分區表PB 64bytes1.3 磁碟介面在Linux中檔案名稱(1)/dev/sd[a-p][1-15] 為 SCSI 、 SATA 、 USB 、 Flash等介面的磁碟檔案名稱(2)/dev/hd[a-d][a-63] 為IDE介面的磁碟檔案名稱2 檔案系統特性2.1 不同作業系統使用的檔案系統(1)傳統Windows98及以前的作業系統主要利用的檔案系統為FAT或FAT16(2)Windows2000及以後的作業系統主要利用NTFS為其檔案系統(3)Linux作業系統的正規檔案系統均為EXT2 或 EXT3 為其檔案系統2.2 檔案系統的儲存塊通常,檔案系統一般有三個儲存塊:(1)super block : 超級塊,用來隱藏檔系統的整體資訊,包括其餘兩塊innode 及 block的總量、使用量、剩餘量以及檔案系統的格式和檔案資訊(2)innode:主要記錄檔案的屬性資訊,一個檔案會佔用一個innode塊,同時記錄該檔案實際資料所在的block的編號(3)block:主要記錄檔案的實際資料,根據實際情況可能佔用一個或多個block儲存2.3 不同檔案系統的資料訪問方式(1)索引式檔案系統此類檔案系統的innode塊記憶體儲檔案實際資料所在的所有block的編號,此時,作業系統可以由此從開始就讀取出檔案資料所在的全部block。Linux的EXT2 、 EXT3都是這類檔案系統;索引式檔案系統的優點:它基本上不需要進行磁碟重組,因為其檔案寫入的block不至於過於離散。結構如:
(2)FAT檔案系統此類檔案系統沒有innode塊的存在,因此也就不存在一開始就讀取檔案實際資料的所有block。這種檔案系統,通常都是一個block記憶體儲要訪問的下一block的編號,該儲存方式容易造成檔案資料block的過於離散。所以說,FAT的檔案系統需要經常進行磁碟重組,來保證其效能。我們通常使用的隨身碟一般是採用的FAT檔案系統。結構如:
3 Linux的EXT2檔案系統3.1 EXT2 儲存塊詳解對於Linux的EXT2以及EXT3檔案系統,有3個儲存塊,super block 、 innode以及block ,檔案系統一開始就把innode和block規劃好了,除非重新格式化或者利用resize2fs等命令更改,否則這兩部分便不再進行改動。(1)data blockdata block是用來隱藏檔資料的塊,EXT2檔案系統中支援的block大小有1KB、2KB和4KB三種而已。data block的大小在檔案系統開始就已經初始化完畢,且不再改變。一個block最多隻能儲存一個檔案的資料,一個檔案的資料根據實際內容量可以儲存在多個block中。對於小於block大小的檔案來講,在block中剩餘的容量則不能再被其他檔案佔用,此時造成一定程度的磁碟空間浪費。(2)innode blockinnode主要記錄檔案的屬性以及該檔案實際資料存放區在block的編號。具體來講,innode block中儲存的內容有:該檔案的訪問模式;該檔案大小;該檔案的所有者與組;該檔案建立狀態改變的時間;最近修改的時間;定義檔案特性的標誌,如SetUID等;該檔案真正內容的指向;innode block的大小也在檔案系統格式化時已經確定,每個block的大小均固定為128bytes,每個檔案只會佔用一個innode block。檔案系統能夠建立的檔案數量與innode的數量有關。系統讀取檔案時,先找到innode,分析許可權,符合要求則讀取block的內容。innode block與檔案大小密切相關,由於innode大小有限,只有128bytes的容量,記錄一個block號碼佔用4bytes,而對於大檔案則需要非常多的block來儲存資料,block的數量遠遠超出了innode塊可儲存的容量。為此,檔案系統採用多級儲存結構,有12個直接,1個間接,一個雙間接,一個三間接記錄區,這樣就滿足了大檔案的繁多block號的記錄。innode多級結構如:
那麼,這樣的儲存結構可以指定多少個block呢?以較小的1KB的block來講:12個直接指向,12*1K=12K , 直接指向可以記錄12條;間接指向,256*1K=256K,每條block號碼的記錄需要4bytes,因此1K大小可以記錄256條;雙間接,256*256*1K,第一層指定256個記錄,每個第二層指定256條;三間接,256*256*256*1K , 第一層指定256個記錄,每個第二層指定256條,每個第三層也指定256條記錄;總量,12+256+256*256+256*256*256(K)=16GB此時,我們可以知道,檔案系統將block劃分為1KB時,能夠容納的最大檔案為16GB,與檔案限制表結果一致。但是這個方法不適用與block大小為2KB或者4KB時,因為大於2KB的block將會受到EXT2檔案系統本身的限制,計算結果與限制表產生出入。
(3)super block此塊記錄整個檔案系統相關資訊的地方,記錄資訊主要有:block與innode的總量;未使用和已使用的innode/block的數量;block和innode的大小;檔案系統掛載時間、最近一次寫入資料的時間、最近一次檢驗磁碟時間等;一個validbit數值,掛載值為0,未掛載值為1;3.2 EXT2檔案系統與分類樹的關係3.3 EXT2與EXT3檔案系統訪問與記錄檔系統3.4 檔案系統操作及掛載點3.5 其他Linux檔案系統以上幾節內容理論性強,通讀《鳥哥的Linux私房菜—基礎學習篇》P204-209瞭解即可。
《鳥哥—基礎學習》總結(8):Linux磁碟與檔案系統管理 之 認識EXT2系統