萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux--Ext2 文件系統的硬盤布局在線閱讀

Linux--Ext2 文件系統的硬盤布局在線閱讀

 本文主要講述 Linux 上比較流行的 ext2 文件系統在硬盤分區上的詳細布局情況。Ext2 文件系統加上日志支持的下一個版本是 ext3 文件系統,它和 ext2 文件系統在硬盤布局上是一樣的,其差別僅僅是 ext3 文件系統在硬盤上多出了一個特殊的 ino de(可以理解為一個特殊文件),用來記錄文件系統的日志,也即所謂的 journal。由於本文並不討論日志文件,所以本文的內容對於 ext2 和 ext3 都是適用的。
  1 前言
  本文的資料來源是 Linux 內核中 ext3 文件系統的源代碼。為了便於讀者查閱源代碼,本文中一些關鍵的技術詞匯都使用了內核源代碼中所使用的英語單詞,而沒有使用相應的中文翻譯。(這種方法是否恰當,還請讀者朋友們指教。)
  2 粗略的描述
  對於 ext2 文件系統來說,硬盤分區首先被劃分為一個個的 block,一個 ext2 文件系統上的每個 block 都是一樣大小的,但是對於不同的 ext2 文件系統,block 的大小可以有區別。典型的 block 大小是 1024 bytes 或者 4096 bytes。這個大小在創建 ext2 文件系統的時候被決定,它可以由系統管理員指定,也可以由文件系統的創建程序根據硬盤分區的大小,自動選擇一個較合理的值。這些 blocks 被聚在一起分成幾個大的 block group。每個 block group 中有多少個 block 是固定的。
  每個 block group 都相對應一個 group descriptor,這些 group descriptor 被聚在一起放在硬盤分區的開頭部分,跟在 super block 的後面。所謂 super block,我們下面還要講到。在這個 descriptor 當中有幾個重要的 block 指針。我們這裡所說的 block 指針,就是指硬盤分區上的 block 號數,比如,指針的值為 0,我們就說它是指向硬盤分區上的 block 0;指針的值為 1023,我們就說它是指向硬盤分區上的 block 1023。我們注意到,一個硬盤分區上的 block 計數是從 0 開始的,並且這個計數對於這個硬盤分區來說是全局性質的。


copyright © 萬盛學電腦網 all rights reserved