EXT2文件系統: node
文件系統特性: linux
格式化(format):每種操做系統所設置的文件屬性/權限並不相同,爲了存放這些文件所需的數據,所以就須要將分區格式化,以成爲操做系統可以你用的文件系統格式 安全
一般咱們稱呼一個可被掛載的數據爲一個文件系統而不是一個分區(一個分區多個文件系統,多個分區一個文件系統) 架構
每一個inode和block都有編號,而每一個文件佔用一個inode,inode內則有文件數據放置的block號碼。這種數據訪問的方法稱爲索引式文件系統。 異步
碎片整理:文件寫入到block太過於分散了,此時文件讀取的性能將會變得不好。經過碎片整理將同一文件所屬的block匯合在一塊兒,這樣數據的讀取會比較容易。 async
文件系統一開始就將inode和block規劃好了,除非從新格式化(或者利用resize2fs等命令更改文件系統大小),不然inode與block固定後就再也不變更。 oop
Ext2文件系統在格式化的時候基本上是區分多個塊組(block group)的,每一個塊組都有獨立的inode/block/superblock系統。 性能
總體規劃中,文件系統最前面有一個啓動扇區(boot sector),這個啓動扇區能夠安裝引導裝載程序。 測試
調出目前掛載的設備:df 操作系統
查看文件系統信息:dumpe2fs 【-bh】 設備文件名
與目錄樹的關係
新建一個目錄時,ext2會分配一個inode與至少一塊block給該目錄。
inode記錄該目錄的相關權限與屬性,並可記錄分配到的那塊block號碼;
block記錄在這個目錄下的文件名與該文件名佔用的inode號碼數據
查看目錄內文件所佔用的inode號碼:ls –i
當咱們新建一個文件時,ext2會分配一個inode與相對於該文件大小的block數量給該文件。
目錄樹的讀取:
系統經過掛載的信息找到掛載點的inode號碼(一般一個文件系統的最頂層inode號碼會由2號開始),此時就可以獲得根目錄的inode內容,並依據該inode讀取根目錄的block內的文件名數據,再一層一層地往下讀到正確的文件名
新建一個文件或者目錄的步驟:
inode table與data block稱爲數據存放區域,其餘super block、block bitmap與inode bitmap等區段爲meta data(中間數據),數據是常常變更的,每次添加、刪除、編輯時均可能會影響到這三個部分的數據。
數據的不一致(Inconsistent)狀態
meta data的內容與實際數據存放區產生不一致的狀況。Ext2文件系統中,經過Super block當中記錄的valid bit(是否有掛載)與文件系統的state(clean與否)等狀態來判斷是否強制進行數據一致性的檢查。如有須要檢查時則以e2fsck這支程序來進行的
日誌文件系統(Journaling file system)
在這樣的程序當中,萬一數據的記錄過程中發生了問題,那麼咱們的系統只要去檢查日誌記錄塊就能夠知道哪一個文件發生了問題,針對該問題作一致性檢查便可。
linux文件系統的操做
異步處理(asynchronously):當系統知道一個文件到內存後,若是該文件沒有改動過,則在內存區段的文件數據會被設置爲(clean)的。但若是內存中的文件數據被更改過了,此時該內存中的數據會被設置爲Dirty。此時全部的操做還在內存中執行,並無寫入到磁盤中。系統會不定時地將內存中設置爲Dirty的數據寫回磁盤,以保持磁盤與內存數據的一致性。
文件系統與內存:
Linux VFS(Virtual Filesystem Switch):Linux內核經過VFS管理文件系統,用戶並不須要知道麼個分區上頭的文件系統是什麼。
df -hi:以人們較易閱讀的GB、MB、KB等格式自行顯示;不用硬盤容量,而以inode的數量來顯示
讀取的範圍是在super block內的信息,因此命令顯示結果的速度很是快。
du -s:列出總量而已,而不列出每一個個別的目錄佔用容量
直接到文件系統內去查找全部的文件數據,默認狀況下大小的輸出是以KB爲單位的。
在某個目錄下面新建一條文件名鏈接到某inode號碼關聯的記錄。
安全:若是將任何一個「文件名」刪除,其實inode與block仍是存在的。此時能夠經過另外一個「文件名」來讀取到正確的文件數據。此外,不論使用哪一個「文件名」來編輯,最終的結果都會寫入到相同的inode和block中,所以均能進行數據的修改。
限制:不能跨文件系統,不能鏈接到目錄。
建立一個獨立的文件,而這個文件會讓數據的讀取指向它鏈接的那個文件的文件名。當源文件被刪除以後,symbolic link的文件會「開不了」
內容:目標文件的「文件名」
symbolic link與Windows的快捷方式能夠劃上等號,有symbolic link所建立的文件爲一個獨立的新的文件,因此會佔用inode與block
-l:輸出後面接的設備全部分區內容
df:找出可用磁盤文件名,再使用fdisk查閱
強制更新內核分區表信息:partprobe
mkfs 【-t 文件系統格式】 設備文件名
fsck 【-t 文件系統】 【-ACay】 設備名稱
-A:依據/etc/fastab的內容,將須要的設備掃描一次
-a(y):自動修復檢查時遇到的有問題的扇區
-C:檢驗的過程中用一個直方圖來顯示目前的進度
一般只有身爲root且文件系統有問題的時候才使用這個命令,不然在正常狀況下使用此命令,可能對系統形成危害。
執行fsck時,被檢查的分區務必不可掛載到系統上!
mount -a:依據配置文件/etc/fstab的數據將全部未掛載的磁盤都掛上來
mount -l:顯示目前掛載的信息(加上label列)
b:外部存儲設備文件
c:外部輸入設備文件
p:FIFO文件
tune2fs
mount –o loop 文件地址 掛載地址
幫助解決分區不良的狀況。