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