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