1. 簡單介紹
使用Window每次非正常退出系統都會招來scandisk的一頓狂掃;Linux也不例外,只不過它調用的是fsck程序來檢查文件系統。作為一名系統管理員,當你發現文件系統發生故障時,你會怎麼做?當然是手動地執行fsck來檢查文件系統。所以本文就是教大家如何正確地使用並且使用好fsck工具的。
2. 文件系統2.1. 超級數據塊(Superblock) 一個文件系統總是由它的superblock來定義的,所以創建文件系統的同時superblock也被創建。它包含了文件系統的一些基本參數,例如文件系統中的數據塊(data blocks)數和最大文件數等等。因為superblock包含了一些臨界數據,以便於進行災難性的恢復。缺省的superblock總是固定地位於文件系統所在磁盤分區的開始處。Superblock還有一個備份叫做冗余superblock,就像DOS中的文件分配表的副本。冗余superblock和缺省的superblock不一樣,它被分散地保存在磁盤分區上。 一個特定的文件被看成是目錄或包含了指向它的內容的指針。每一個文件都有一個和文件節點(inode)相關聯的描述符。一個文件節點包含了文件的屬性,例如文件的所有者、最後修改時間、最後訪問時間和指向此文件數據塊的指針等等。假設一個文件的前12個數據塊被文件節點結構中的變量直接指向,那麼文件節點結構可能還包含著指向間接文件數據塊的指針以便將來擴充文件的內容。其實文件節點結構中包含了3個級別的數據塊指針,一個文件有4096個字節的數據塊,則第一級間接數據塊包含了1024個字節,第二級間接數據塊也包含了1024個字節,並且被第一級間接數據塊指向;同理,第二級間接數據塊也指向第三級大小為1024字節的間接數據塊。其實在實際應用中第三級間接數據塊很少被使用,因為一般沒有那麼大的文件。文件系統的數據塊大小保存在superblock中,這就使在同一系統中同時訪問不同數據塊大小的文件系統成為可能。 最後再說明一下,文件數據塊的大小是在創建文件系統時給定的,並且在以後的使用中無法被改變。
2.2. 概要信息(Summary information) 概要信息和superblock相關聯,並且是唯一關聯;當文件系統被改變時,它就隨之記錄這種改變,記錄文件系統中的數據塊數目、碎片數目、文件節點和目錄等信息。
2.3. 柱面組群(Cylinder groups) 文件系統將磁盤分為一個或多個被稱為"柱面組群"的區域,它包含了一個和多個連續的磁盤柱面。每個柱面組群指示了文件的節點槽,一個數據塊映象(block map)描述了在柱面組群中所有可用的數據塊,並且概要信息描述了在柱面組群中數據塊的使用情況。當文件系統生成時,柱面組群中的文件節點數就被確定了下來。目前一般的規則是在磁盤上每2048個字節被分配入一個文件節點。在每個柱面組群的開始處都記錄有組群信息,一旦磁盤發生錯誤時將組群信息丟失。 更多內容請看Linux安全應用寶典 Linux防火牆 Linux服務器專題,或