文件都是以“磁點點”的形式記錄在硬盤的盤片中,存儲或刪除都是在這些“磁點點”上做文章。但硬盤是如何組織操縱著“磁點點”、從而建立復雜的文件系統的,你不好奇、不困惑、不抓狂嗎?
這篇必須把硬盤內的“組織關系”扒光!
播放GIF
組織——主要成員
要是拿上面那張圖來講,你們肯定會覺得不如回去看教科書,索性就不看了可讓我如何是好?所以誠惶誠恐的Wendy找來下面這張圖??
從側面來看硬盤的結構比俯視圖更清晰,圖中所示的結構和相應名稱圖中標識很清楚,在這里就不多贅述了,想進一步探究各部分功能的可以自行查閱資料。
Wendy在這里要講的主要成員就是和文件存儲直接相關的「磁盤組」,千萬不能嫌枯燥,基礎要打牢哦。
▍「磁盤組」的結構
「盤片」是硬盤的核心,與CD不同,硬盤內的盤片可不止一個,盤片越多存儲容量就越大。
所有的盤片都固定在同一個軸上,而每張盤片雙面可寫,因此每張盤片都有兩個「讀寫頭」在各一側,如下圖。
| 記錄面號
「記錄面」就是硬盤內盤片能寫入數據的一面,每個盤片一般有兩個記錄面,將這些記錄面編上號可以方便磁頭定位,這就是記錄面號。
| 讀寫頭
「磁頭」是用線圈纏繞在磁芯上制成的。硬盤在工作時,磁頭通過感應旋轉的盤片上磁場的變化來讀取數據;或者通過改變盤片上的磁場來寫入數據。我們只要記住,磁頭并不智能,它只會讀取或寫入“0”和“1”。
第一波小重點來了,以下人為定義的名稱就是讓盤片成為“有效組織”的關鍵!為什么電腦能知道某文件存儲在盤片的哪個位置?為什么每個文件背后都有那么多不認識的數字?這就是原因。
磁盤組分解圖
我們進一步拆開圖解來看。
| 磁道
如分解圖中的(b)所示,「磁道」是盤片上的一組同心圓,也是磁頭讀寫操作的運動軌跡,信息就是沿著這樣的軌跡而一點一點存放在盤片上的。
硬盤的磁道密度很大,通常一面有成千上萬個磁道,因此我們給磁道的編址是從外向內依次編號的。最外的一個同心圓為 「0 磁道」,最里面的一個同心圓叫 「n 磁道」,n 磁道再往里面的圓面積并不用來記錄信息。
| 扇區
把磁道均分成若干個扇形區域,每個扇形區域內的磁道就是一個「扇區」。硬盤的讀寫以扇區為基本單位,稱為「簇」,這種以簇為最小分配單位的機制,使硬盤對數據的管理變得相對容易。
| 柱面
如分解圖中的(c)上下一串盤片中,相同半徑的磁道所組成的一個圓柱型的環壁,就稱為柱面。柱面其實是個“虛”的,物理上不存在。
有了這樣的規定以后,我們在寫入文件時,就會標記好文件是在 x 記錄面 n 磁道 m 扇區中。這樣在每次讀取時就能立刻根據這個“標記”找到實際磁盤上與文件對應的記錄區。
定位——職能劃分
談到記錄區,我們就要接著看硬盤是如何進行記錄的。下面的內容,我們將一步步地疊加復雜程度。
▍磁盤的信息分布
此時,我們可以把硬盤比做一本書,磁頭在讀取磁盤內容的時候,與我們翻閱書籍是一樣的:首先需要查找目錄,然后才能定位到相應頁數去找。
硬盤也有目錄,和書的目錄一樣,只有那么幾頁,占整體很小的一部分。
| MBR主引導扇區
磁盤中充當書中總目錄角色的,就是MBR,「主引導扇區」,它在硬盤上的三維地址為“ 0 柱面 0 磁道 1 扇區”,占512個字節。
每次計算機開機后,第一個訪問的一定是硬盤的這個「MBR扇區」!因為只有看了MBR硬盤才知道后面該往哪兒轉。
但是磁盤的目錄比書的目錄分得更細,這個我們待會兒講,現在先看「分區」。
| 分區
「分區」,就是把硬盤分成不同的塊來使用,就相當于每本書都會分章節,每個章節相互獨立,每個分區相互之間也不會影響。
你會發現,通常硬盤會分為主分區和一個擴展分區,而擴展分區就是我們可以自行繼續劃分的區域,就像一個章節下的幾小節。
我們把磁盤的圓形展開來看,其「分區」示意圖如下圖所示:
按照常理講,由于有了分區,那么MBR引導扇區內是不是還得有一個記錄分區的“子目錄”呢?所以我們回來再看MBR的目錄結構。
▍MBR主引導扇區的結構
1. 主引導記錄(MBR):446字節,記錄著硬盤本身的信息以及硬盤各個分區的大小和位置信息,是數據信息的重要入口。
2. 磁盤分區表(DPT):64字節,4個分區,每個分區16字節;
3. 55AA:2字節,結束標志,用來標識一個扇區的末端。
算一算,剛好512字節呢!這就是整個MBR了,你會發現原來硬盤的記錄和我們的文件夾相似,是個樹形結構,不斷層級往下延展讀取的。
▍EBR
與MBR相對,擴展分區中的每個小分區也需要自己的“章節”目錄,因此EBR就誕生了,即「擴展分區引導目錄」。
基礎知識夯實到了這里,相信下面這張圖你就能看懂了。
硬盤所有分區詳細示意圖
當整張盤被分割成這樣后,每一塊記錄什么內容都固定了,從而每一塊的職能也就固定了!磁盤各部分就此各司其職,開始發揮作用了。
運作——讀取流程
從現在起,展開你的空間想象力,你的大腦呈現出一個磁盤組,磁頭正準備讀區磁盤內容。
好的,我們已經選定了一個文件進行讀取,所以我們的任務是先找到這個文件,磁盤開始轉了……
1. 首先轉到MBR主引導扇區,讀取MBR主引導程序(446字節),了解了幾個分區的基本情況;
2. 接著讀取MBR主引導扇區的DPT主分區表(16字節),發現文件在第四個分區;
3. 于是,磁頭轉到了第四個分區上看,原來第四個分區是個擴展分區!
4. 那只能繼續翻目錄唄,就接著查一查擴展分區的分區表;
5. 擴展分區的分區表顯示,文件在 2號邏輯分區;
6. 行,那就再轉個十幾度到 2號邏輯分區繼續找。
7. 2號邏輯分區的引導記錄(EBR)顯示,文件在 n 磁道 m 扇區;
8. 這下定位成功了,磁頭到 2號邏輯分區內的數據區(DATA)就找到了文件。
9. 文件內容讀取中……
恭喜你,完成讀取任務!
是不是突然覺得,磁頭原來很笨,只會一個勁地按順序“查表”,直到找到文件位置!硬盤原來不過就是一個分類清楚、索引精細的文件存儲柜而已。
而寫入數據也是一樣的,當你在操作系統里選定將文件放入哪個分區后,硬盤不僅會把文件內容寫到磁盤相應的位置上,同時還會把這個位置信息一層層地從MBR到分區表(DPT)、從擴展分區再到EBR全都更新個遍!
你可能只是存進去點擊幾下,人家可是要跑個好幾圈!你說它忙不忙!
▍為什么數據恢復要學習這些?
你想啊,如果目錄沒了,上哪兒知道你要恢復的文件在哪個磁道哪個扇區呢?
假設主引導扇區(MBR)受到破壞,硬盤上的基本數據結構信息都將會丟失!需要用繁瑣的方式試探性的重建數據結構信息后才可能重新訪問原先的數據。
主引導扇區內的信息可以通過任何一種基于某種操作系統的分區工具軟件寫入,但你要是不懂的話,只能看著硬盤哭了。
參考文獻
白中英,戴志濤. 計算機組成原理[M]. 北京:科學出版社, 2013.