磁碟與檔案系統管理

2021-09-28 12:20:24 字數 3013 閱讀 2682

1.檔案系統

windows 98 以前的微軟作業系統主要利用的檔案系統是 fat (或 fat16)

windows 2000 以後的版本有所謂的 ntfs檔案系統

至於 linux 的正統檔案系統則為 ext2 (linux second extended file system, ext2fs)這乙個

乙個分割槽槽就是只能夠被格式化成為乙個檔案系統,所以我們可以說乙個 filesystem 就是乙個 partition。但是由於新技術的利用,例如我們常聽到的 lvm 與軟體磁碟陣列(software raid), 這些技術可以將乙個分割槽槽格式化為多個檔案系統(例如 lvm),也能夠將多個分割槽槽合成乙個檔案系統(lvm, raid)! 所以說,目前我們在格式化時已經不再說成針對 partition來格式化了, 通常我們可以稱呼乙個可被掛載的資料為乙個檔案系統而不是乙個分割槽槽

檔案系統通常會將檔案

實際內容和屬性這兩部份的資料分別存放在不同的區塊,許可權與屬性放置到inode 中,至於實際資料則放置到 data block 區塊中。 另外,還有乙個超級區塊 (superblock) 會記錄整個檔案系統的整體資訊,包括 inode 與 block 的總量、使用量、剩餘量等。

filesystem 裡面可能含有的 inode/block/superblock 等。標準的 linux 檔案系統 ext2 就是使用這種 inode 為基礎的檔案系統。

 原則上,block 的大小與數量在格式化完就不能夠再改變了(除非重新格式化);

 每個 block 內最多隻能夠放置乙個檔案的資料;

 承上,如果檔案大於 block 的大小,則乙個檔案會占用多個 block 數量;

 承上,若檔案小於 block ,則該 block 的剩餘容量就不能夠再被使用了(磁碟空間會浪費)。

在 ext2 檔案系統中所支援的 block 大小有 1k, 2k 及4k 三種而已。在格式化時 block 的大小就固定了,且每個 block 都有編號,以方便 inode 的記錄

啦。 不過要注意的是,由於 block 大小的差異,會導致該檔案系統能夠支援的最大磁碟容量與最大

單一檔案容量並不相同。

由於每個 block 僅能容納乙個檔案的資料而已,因此如果你的檔案都非常小,但是你的 block 在格式化時卻選用最大的 4k 時,可能會產生一些容量的浪費喔,如果 block 較小的話,那麼大型檔案將會占用數量更多的 block ,而 inode 也要記錄更多的 block 號碼,此時將可能導致檔案系統不良的讀寫效能。在您進行檔案系統的格式化之前,請先想好該檔案系統預計使用的情況。我的數值模式**平台隨便乙個檔案都好幾百 mb,那麼 block 容量當然選擇較大的

superblock 是非常重要的,因為我們這個檔案系統的基本資訊都寫在這裡,因此,如果 superblock 死

掉了, 你的檔案系統可能就需要花費很多時間去挽救啦!一般來說, superblock 的大小為 1024bytes。

相關的 superblock 訊息我們等一下會以 dumpe2fs 指令來呼叫出來觀察喔!

此外,每個 block group 都可能含有 superblock 喔!但是我們也說乙個檔案系統應該僅有乙個

superblock 而已,那是怎麼回事啊? 事實上除了第乙個 block group 內會含有 superblock 之外,後

續的 block group 不一定含有 superblock , 而若含有 superblock 則該 superblock 主要是做為第一

個 block group 內 superblock 的備份咯,這樣可以進行 superblock 的救援呢

經過上面的說明你也應該要很清楚的知道 inode 本身並不記錄檔名,檔名的記錄是在目

錄的 block 當中。 因此在第五章檔案與目錄的許可權說明中, 我們才會提到『新增/刪除/更名檔名

與目錄的 w 許可權有關』的特色!那麼因為檔名是記錄在目錄的 block 當中, 因此當我們要讀取

某個檔案時,就務必會經過目錄的 inode 與 block ,然後才能夠找到那個待讀取檔案的 inode 號碼,

最終才會讀到正確的檔案的 block 內的資料。

那麼如果是新建乙個檔案或目錄時,我們的檔案系統是如何處理的呢?
這個時候就得要 block bitmap 及 inode bitmap 的幫忙了!假設我們想要新增乙個檔案,此時檔案系

統的行為是:

先確定使用者對於欲新增檔案的目錄是否具有 w 與 x 的許可權,若有的話才能新增;

根據 inode bitmap 找到沒有使用的 inode 號碼,並將新檔案的許可權/屬性寫入;

根據 block bitmap 找到沒有使用中的 block 號碼,並將實際的資料寫入 block 中,且更新 inode 的 block

指向資料;

將剛剛寫入的 inode 與 block 資料同步更新 inode bitmap 與 block bitmap,並更新 superblock 的內容。

一般來說,我們將 inode table 與 data block 稱為資料存放區域,至於其他例如 superblock、 block

bitmap 與 inode bitmap 等區段就被稱為 metadata (中介資料) 囉,因為 superblock, inode bitmap 及

block bitmap 的資料是經常變動的,每次新增、移除、編輯時都可能會影響到這三個部分的資料,因

此才被稱為中介資料的啦。

磁碟與檔案系統管理

在硬碟上最小的儲存單位是扇區,能儲存512b的資料。柱面是分割槽時的最小單位,分割槽就是記錄了起始柱面和結束柱面。分割槽資訊記錄在mbr上,位於硬碟的第0個分割槽,是計算機首先讀取的位置。乙個10m的檔案需要讀取10 1024 1024 512次。為了提高磁頭的讀取效率引用了邏輯塊的概念,1個邏輯塊...

磁碟與檔案系統管理

掛載的時候要注意幾點,首先掛載的目錄一般是空的目錄,因為讀取掛載檔案系統內容是通過目錄進去的,如果掛載的目錄是非空目錄,那麼這個目錄下原有的檔案會被隱藏掉,直至解除安裝掉掛載 可以檢視mount命令的用法 掛載還可以通過檔案系統的標頭來實現。主要應用場景 系統不必知道檔案系統所在的介面和磁碟檔名。使...

磁碟與檔案系統管理

對於linux的檔案系統來說,它將乙個檔案的屬性存放到inode中,實際資料存放到data block中,整個檔案系統還有乙個super block。inode 記錄檔案的屬性 許可權 屬主屬組 大小 修改與訪問時間等 以及此檔案的資料所在的block號碼 block 記錄實際檔案的內容 每個檔案最...