Ext2 文件系統(tǒng)的硬盤(pán)布局
更新時(shí)間:2006年10月24日 00:00:00 作者:
本文主要講述 Linux 上比較流行的 ext2 文件系統(tǒng)在硬盤(pán)分區(qū)上的詳細(xì)布局情況。Ext2 文件系統(tǒng)加上日志支持的下一個(gè)版本是 ext3 文件系統(tǒng),它和 ext2 文件系統(tǒng)在硬盤(pán)布局上是一樣的,其差別僅僅是 ext3 文件系統(tǒng)在硬盤(pán)上多出了一個(gè)特殊的 ino de(可以理解為一個(gè)特殊文件),用來(lái)記錄文件系統(tǒng)的日志,也即所謂的 journal。由于本文并不討論日志文件,所以本文的內(nèi)容對(duì)于 ext2 和 ext3 都是適用的。 1、前言 本文的資料來(lái)源是 Linux 內(nèi)核中 ext3 文件系統(tǒng)的源代碼。為了便于讀者查閱源代碼,本文中一些關(guān)鍵的技術(shù)詞匯都使用了內(nèi)核源代碼中所使用的英語(yǔ)單詞,而沒(méi)有使用相應(yīng)的中文翻譯。(這種方法是否恰當(dāng),還請(qǐng)讀者朋友們指教。) 2、粗略的描述 對(duì)于 ext2 文件系統(tǒng)來(lái)說(shuō),硬盤(pán)分區(qū)首先被劃分為一個(gè)個(gè)的 block,一個(gè) ext2 文件系統(tǒng)上的每個(gè) block 都是一樣大小的,但是對(duì)于不同的 ext2 文件系統(tǒng),block 的大小可以有區(qū)別。典型的 block 大小是 1024 bytes 或者 4096 bytes。這個(gè)大小在創(chuàng)建 ext2 文件系統(tǒng)的時(shí)候被決定,它可以由系統(tǒng)管理員指定,也可以由文件系統(tǒng)的創(chuàng)建程序根據(jù)硬盤(pán)分區(qū)的大小,自動(dòng)選擇一個(gè)較合理的值。這些 blocks 被聚在一起分成幾個(gè)大的 block group。每個(gè) block group 中有多少個(gè) block 是固定的。 每個(gè) block group 都相對(duì)應(yīng)一個(gè) group descriptor,這些 group descriptor 被聚在一起放在硬盤(pán)分區(qū)的開(kāi)頭部分,跟在 super block 的后面。所謂 super block,我們下面還要講到。在這個(gè) descriptor 當(dāng)中有幾個(gè)重要的 block 指針。我們這里所說(shuō)的 block 指針,就是指硬盤(pán)分區(qū)上的 block 號(hào)數(shù),比如,指針的值為 0,我們就說(shuō)它是指向硬盤(pán)分區(qū)上的 block 0;指針的值為 1023,我們就說(shuō)它是指向硬盤(pán)分區(qū)上的 block 1023。我們注意到,一個(gè)硬盤(pán)分區(qū)上的 block 計(jì)數(shù)是從 0 開(kāi)始的,并且這個(gè)計(jì)數(shù)對(duì)于這個(gè)硬盤(pán)分區(qū)來(lái)說(shuō)是全局性質(zhì)的。
相關(guān)文章
FreeBSD5.4Release X Windows 安裝筆記 (Freebsd5.4R+Gnome2.10.0)
FreeBSD5.4Release X Windows 安裝筆記 (Freebsd5.4R+Gnome2.10.0)...2007-05-05