磁盤結(jié)構(gòu)
扇區(qū),磁道,柱面和磁頭數(shù)
硬盤最基本的組成部分是由堅(jiān)硬金屬材料制成的涂以磁性介質(zhì)的盤片,不同容量硬盤的盤片數(shù)不等。每個(gè)盤片有兩面,都可記錄信息。每個(gè)磁道被分成許多扇形的區(qū)域,每個(gè)區(qū)域叫一個(gè)扇區(qū),每個(gè)扇區(qū)可存儲(chǔ)128×2的N次方(N=0.1.2.3)字節(jié)信息。在DOS中每扇區(qū)是128×2的2次方=512字節(jié),盤片表面上以盤片中心為圓心,不同半徑的同心圓稱為磁道。硬盤中,不同盤片相同半徑的磁道所組成的圓柱稱為柱面。磁道與柱面都是表示不同半徑的圓,在許多場(chǎng)合,磁?和柱面可以互換使用,我們知道,每個(gè)磁盤?兩個(gè)面,每個(gè)面都有一個(gè)磁頭,習(xí)慣用磁頭號(hào)來(lái)區(qū)分。扇區(qū),磁道(或柱面)和磁頭數(shù)構(gòu)成了硬盤結(jié)構(gòu)的基本參數(shù),幫這些 參數(shù)可以得到硬盤的容量,基計(jì)算公式為:
存儲(chǔ)容量=磁頭數(shù)×磁道(柱面)數(shù)×每道扇區(qū)數(shù)×每扇區(qū)字節(jié)數(shù)

其中整個(gè)磁盤的第一個(gè)扇區(qū)最重要(第一個(gè)扇區(qū)位于外圈。外圈周長(zhǎng)總大于內(nèi)圈周長(zhǎng),也即外圈存儲(chǔ)密度要小些,可靠性高些。),因?yàn)樗涗泝蓚€(gè)重要信息:
MBR?重要,因?yàn)橄到y(tǒng)開(kāi)機(jī)的時(shí)候會(huì)主動(dòng)去讀取這個(gè)區(qū)塊的內(nèi)容,這樣系統(tǒng)才知道如何開(kāi)機(jī),如果你安裝了多重引導(dǎo)的系統(tǒng),MBR都會(huì)有記錄。
分割表,一個(gè)磁盤只有先進(jìn)行分割,才能拿來(lái)被使用
磁盤分區(qū)表(分割表):
前面看到的開(kāi)始和結(jié)束磁柱,那是文件系統(tǒng)的最小單位,也就是分隔槽的最小單位。

同時(shí)可以看出第一個(gè)扇區(qū)是在分區(qū)之外的
假設(shè)上面的硬盤裝置文件名為/dev/hda,那么這四個(gè)分隔槽?Linux系統(tǒng)中如下
P1 /dev/hda1
P2 /dev/hda2
P3 /dev/hda3
P4 /dev/hda4
當(dāng)操作系統(tǒng)是window,代號(hào)就分別是C,D,E,F
由于分隔表只有64字節(jié),而每個(gè)分區(qū)需要16字節(jié)來(lái)表示,所以最多只能容納四個(gè)分割,這四個(gè)分割叫做主分區(qū)或者擴(kuò)展分區(qū)
其實(shí)所謂的『分割』叧是針對(duì)那個(gè) 64 bytes 的分割表進(jìn)行設(shè)定而已
硬盤默訃的分割表僅能寫入四組分割信息
這四組分割信息我們稱為主要(Primary)或者擴(kuò)展分區(qū)(Extended)分割槽
分割槽的最小單位為磁柱(cylinder)
當(dāng)系統(tǒng)要寫入磁盤時(shí),一定會(huì)參考磁盤分區(qū)表,才能針對(duì)某個(gè)分割槽進(jìn)行數(shù)據(jù)癿處理
為什么要分割:
1. 數(shù)據(jù)的安全性:
因?yàn)槊總€(gè)分割槽的數(shù)據(jù)是分開(kāi)的!所以,當(dāng)你需要將某個(gè)分割槽的數(shù)據(jù)重整時(shí),例如你要將計(jì)算機(jī)中 Windows 癿 C 槽重新安裝一次系統(tǒng)時(shí), 可以將其他重要數(shù)據(jù)移動(dòng)到其他分割槽,例如將郵件、桌面數(shù)據(jù)移勱到 D 槽去,那舉 C 槽重灌系統(tǒng)幵丌會(huì)影響到 D 槽! 所以善用分割槽,可以數(shù)據(jù)更安全。
2. 系統(tǒng)的效能考慮:
由二分割槽將數(shù)據(jù)集中在某個(gè)磁柱的區(qū)段,例如上圖當(dāng)中第一個(gè)分割槽位二磁柱號(hào)碼 1~100號(hào),如此一來(lái)當(dāng)有數(shù)據(jù)要讀取自該分割槽時(shí), 磁盤叧會(huì)搜尋前面 1~100 的磁柱范圍,由二數(shù)據(jù)集中了,將有助于數(shù)據(jù)讀取癿速度效能!所以說(shuō),分割是很重?癿!
邏輯分區(qū)
既然分割表叧有記錄四組數(shù)據(jù)的空間,那舉是否代表我一顆硬盤最多只能分割出四個(gè)分割槽?當(dāng)然不是啦!一顆硬盤分割成十個(gè)以上的分割槽的!那又是如何達(dá)到呢?在Windows/Linux 系統(tǒng)?, 我們是透過(guò)剛剛談到的延伸(擴(kuò)展)分割(Extended)的方式來(lái)處理癿啦!擴(kuò)展分割的想法是:既然第一個(gè)分區(qū)所在的分割表只能記錄四個(gè)數(shù)據(jù), 那我可否利用額外癿分區(qū)來(lái)記錄更多的分割信息?實(shí)際上圖示有點(diǎn)像底下這樣:

在上圖當(dāng)中,我們知道硬盤的四個(gè)分割記錄區(qū)僅使用到兩個(gè),P1 為主要分割,而 P2 則為擴(kuò)展分割。請(qǐng)注意, 擴(kuò)展目的是使用額外的分區(qū)來(lái)記錄分割信息,擴(kuò)展分割本身并不能被拿來(lái)格式化。 然后我們可以透過(guò)擴(kuò)展分割所指向的那個(gè)區(qū)塊繼續(xù)作分割的記錄。
如上圖右下方那個(gè)區(qū)塊有繼續(xù)分割出五個(gè)分割槽, 這五個(gè)由擴(kuò)展分割繼續(xù)切出來(lái)的分割槽,就被稱為邏輯分割槽(logical partition)。 同時(shí)注意一下,由于邏輯分割槽是由擴(kuò)展分割繼續(xù)分割出來(lái)的,所以他可以使用的磁柱范圍就是擴(kuò)展分割所設(shè)定的范圍喔! 也就是圖中的 101~400 啦!
同樣癿,上述的分割槽在 Linux 系統(tǒng)中癿裝置文件名分別如下:
P1:/dev/hda1
P2:/dev/hda2
L1:/dev/hda5
L2:/dev/hda6
L3/dev/hda7
L4:/dev/hda8
L5:/dev/hda9
怎么么有裝置文件名沒(méi)有/dev/hda3 不/dev/hda4 呢?因?yàn)榍懊嫠膫€(gè)號(hào)碼都是保留給 主分區(qū)和擴(kuò)展分區(qū)嘛! 所以邏輯分割槽的裝置名稱號(hào)碼就由 5 號(hào)開(kāi)始了!這是個(gè)很?要癿特性!
window下C盤是主分區(qū),DEFGH等等都是擴(kuò)展分區(qū)下的一個(gè)邏輯分區(qū)(能格式化,能直接拿來(lái)使用的要么是主?區(qū),要么是邏輯分區(qū))
主要分割、擴(kuò)展分割,與邏輯分割的特性我們作個(gè)簡(jiǎn)單的定義:
主要分割不延伸分割最多可以有四筆(硬盤的限制)
擴(kuò)展分割最多只能能有一個(gè)(操作系統(tǒng)的限制)
邏輯分割是由擴(kuò)展分割持續(xù)切割出來(lái)的分割槽;
能夠被格式化后,作為數(shù)據(jù)存取的分割槽為主要分割和邏輯分割。擴(kuò)展分割無(wú)法格式化;
邏輯分割的數(shù)量依操作系統(tǒng)而不同,在 Linux ?統(tǒng)中,IDE 硬盤最多有 59 個(gè)邏輯分割(5 號(hào)到63 號(hào)), SATA 硬盤則有 11 個(gè)邏輯分割(5 號(hào)到 15 號(hào))
分割是個(gè)很麻煩的東西,因?yàn)樗?span style="box-sizing: border-box; color: rgb(0, 0, 255);">以磁柱為單位的『連續(xù)』磁盤空間, 擴(kuò)展分割又是個(gè)類似獨(dú)立?磁盤空間,所以在分割的時(shí)候得要特別注意。
如果擴(kuò)展分區(qū)被破壞,那么它所有的邏輯分區(qū)將被刪除,因?yàn)檫壿嫹指钍怯涗浽跀U(kuò)展分區(qū)里的。
? 所以總的來(lái)說(shuō),如果一個(gè)磁盤的第一個(gè)扇區(qū)物理實(shí)體壞掉了,那么這個(gè)磁盤也就木有用處了。 因?yàn)橄到y(tǒng)如果找不到分割表,怎知道如何讀取磁柱區(qū)間呢
舉個(gè)栗子:
假如我的PC 有兩顆 SATA 硬盤,我想在第二顆硬盤分割出 6 個(gè)可用的分割槽(可以存取數(shù)據(jù)), 那每個(gè)分割槽在 Linux 系統(tǒng)下癿裝置文件名為何?且分割類型各為何?至少寫出兩種不同的分割方式。
答:
由于P(primary)+E(extended)最多只能有四個(gè),其中 E 最多只能有一個(gè)?,F(xiàn)在題目要求 6個(gè)可用分割槽,因此不可能分出四個(gè) P。 底下我們假設(shè)兩種環(huán)境,一種是將前四號(hào)全部用完,一種是僅花費(fèi)一個(gè) P 及一個(gè) E 的情況(window經(jīng)典分割方式):
? P+P+P+E 環(huán)境:

P+E:

開(kāi)機(jī)程序
操作系統(tǒng)也是軟件,那開(kāi)機(jī)的時(shí)候我的計(jì)算機(jī)是如何認(rèn)識(shí)這個(gè)操作系統(tǒng)軟件并執(zhí)行他的? 明明開(kāi)機(jī)時(shí)我的計(jì)算機(jī)還沒(méi)有任何軟件系統(tǒng),那他要如何讀取硬盤內(nèi)的操作系統(tǒng)檔案呢
這個(gè) BIOS 就是在開(kāi)機(jī)的時(shí)候,計(jì)算機(jī)系統(tǒng)會(huì)主動(dòng)執(zhí)行癿第一個(gè)程序了!
接下來(lái) BIOS 會(huì)去分析計(jì)算機(jī)里面有哪些儲(chǔ)存設(shè)備,我們以硬盤為例,BIOS 會(huì)依據(jù)使用者的設(shè)定去取得能夠開(kāi)機(jī)的硬盤(或者U盤,磁盤。BIOS可以設(shè)定開(kāi)機(jī)順序), 并且到該硬盤里面去讀取第一個(gè)扇區(qū)的MBR 位置。 MBR 這個(gè)僅有 446 bytes 的硬盤容量里面會(huì)放置最基本的開(kāi)機(jī)管理程序, 此時(shí) BIOS 就功成園滿,而接下來(lái)就是 MBR 內(nèi)的開(kāi)機(jī)管理程序的工作了。
這個(gè)開(kāi)機(jī)管理程序的目的是在加載(load)核心檔案, 開(kāi)機(jī)管理程序是操作系統(tǒng)在安裝的時(shí)候所提供,所以他會(huì)認(rèn)識(shí)硬盤內(nèi)的文件系統(tǒng)格式,因此就能夠讀取核心檔案, 然后接下來(lái)就是核心檔案的工作,開(kāi)機(jī)管理程序也功成園滿,然后就是大家所知道的操作系統(tǒng)的任務(wù)啦!
1. BIOS:開(kāi)機(jī)主動(dòng)執(zhí)行的韌體,會(huì)認(rèn)識(shí)第一個(gè)可開(kāi)機(jī)的裝置
2. MBR:第一個(gè)可開(kāi)機(jī)裝置的第一個(gè)扇區(qū)內(nèi)癿?要啟動(dòng)記錄區(qū)塊,內(nèi)含開(kāi)機(jī)管理程序
3. 開(kāi)機(jī)管理程序(boot loader):一支可讀取核心檔案來(lái)執(zhí)行的軟件
4. 核心檔案:開(kāi)始操作系統(tǒng)的功能
這個(gè) boot loader 癿主要任務(wù)有底下這些項(xiàng)目:
提供選單:用戶可以選擇不同的開(kāi)機(jī)項(xiàng)目,這也是多重引導(dǎo)的重要功能!
載入核心檔案:直接指向可開(kāi)機(jī)的程序區(qū)段來(lái)開(kāi)始操作系統(tǒng);
轉(zhuǎn)交其他 loader:將開(kāi)機(jī)管理功能轉(zhuǎn)交給其他 loader 負(fù)責(zé)。
第三點(diǎn)不好理解,其實(shí)同時(shí)還有一點(diǎn)狠狠重要
其實(shí)可以理解的是一個(gè)磁盤不知?個(gè)MBR功能區(qū),只不過(guò)MBR是第一個(gè)扇區(qū)的主要啟動(dòng)記錄區(qū)塊,內(nèi)含開(kāi)機(jī)啟動(dòng)程序,但是其他分割槽還有各別的啟動(dòng)扇區(qū)!這個(gè)特色就能造就多重引導(dǎo)的功能??!
假設(shè)個(gè)人計(jì)算機(jī)只有一個(gè)硬盤,里面切成四個(gè)分割槽,其中第一、二分割槽分別安裝了 Windows 及 Linux, 你要如何在開(kāi)機(jī)的時(shí)候選擇用 Windows 還是 Linux 開(kāi)機(jī)呢?假設(shè)MBR 內(nèi)安裝的是可同時(shí)認(rèn)識(shí) Windows/Linux 操作系統(tǒng)的開(kāi)機(jī)管理程序, 那舉整個(gè)流程可以圖標(biāo)如下:

圖中藍(lán)色小方塊是各個(gè)分區(qū)的啟動(dòng)扇區(qū)(內(nèi)可能含開(kāi)機(jī)啟動(dòng)程序),橙色小方塊是各個(gè)分區(qū)的核心檔案。
MBR內(nèi)含開(kāi)機(jī)啟動(dòng)程?,可以直接指向某個(gè)分區(qū)的核心檔案,也可以指向某個(gè)分區(qū)的啟動(dòng)扇區(qū)
Linux的開(kāi)?啟動(dòng)程序一般就是Grub軟件
在上圖中我們可以看出,MBR 的開(kāi)機(jī)管理程序提供兩個(gè)選單,選單一(M1)可以直接加載 Windows 的核心檔案來(lái)開(kāi)機(jī); 選單二(M2)則是將開(kāi)機(jī)管理工作交給第二個(gè)分割槽的啟動(dòng)扇區(qū)(boot sector)。當(dāng)使用者在開(kāi)機(jī)時(shí)候選擇選單二時(shí), 那舉整個(gè)開(kāi)?管理工作就會(huì)交給第二分割槽的開(kāi)機(jī)管理程序了。 當(dāng)?shù)诙€(gè)開(kāi)機(jī)管理程序啟動(dòng)后,該開(kāi)機(jī)管理程序內(nèi)(上圖中)僅有一個(gè)開(kāi)機(jī)選單,因此就能夠使用 Linux 的核心檔案來(lái)開(kāi)機(jī)。 這就是多重引導(dǎo)的工作情況啦!我們將上圖作個(gè)總結(jié):
每個(gè)分割槽都擁有自己的啟動(dòng)扇區(qū)(boot sector)
圖中的系統(tǒng)槽為第一及第二分割槽,
實(shí)際可開(kāi)機(jī)的核心檔案是放置到各分割槽內(nèi)的!
loader 只會(huì)認(rèn)識(shí)自己的系統(tǒng)槽內(nèi)的可開(kāi)機(jī)核心檔案,以及其他 loader 而已;
loader 可直接指向或者是間接將管理權(quán)轉(zhuǎn)交給另一個(gè)管理程序。
如果要安裝多重引導(dǎo), 最好先安裝 Windows 再安裝Linux呢?這是因?yàn)椋?/span>
Linux 在安裝的時(shí)候,你可以選擇將開(kāi)機(jī)管理程序安裝在 MBR 或者其他分割槽的啟動(dòng)扇區(qū), 而且Linux 癿 loader 可以手動(dòng)設(shè)定選單(就是上圖的M1, M2...),所以你可以在 Linux 癿 boot loader(開(kāi)機(jī)啟動(dòng)程序) 里面加入 Windows 開(kāi)機(jī)的選項(xiàng)
? Windows 在安裝的時(shí)候,他的安裝程序會(huì)主動(dòng)的蓋掉 MBR 以及自己所在分割槽癿啟動(dòng)扇區(qū),你沒(méi)有選擇的機(jī)會(huì), 而他沒(méi)有譏我們自己選擇選單癿功能。
因此,如果先安裝 Linux 再安裝 Windows 癿話,那 MBR 的開(kāi)機(jī)管理?序就只會(huì)有 Windows 的項(xiàng)目,而不會(huì)有 Linux 癿項(xiàng)目 (因?yàn)樵驹?MBR 內(nèi)的 Linux 癿開(kāi)機(jī)管理程序就會(huì)被覆蓋掉)。 那需要重新安裝 Linux 一次嗎?當(dāng)然不需要,你叧要用盡各種方法來(lái)處理 MBR 癿內(nèi)容即可。 例如利用全中文癿spfdisk(http://www.tjdsmy.cn/)軟件來(lái)安裝訃認(rèn)識(shí)Windows/Linux 癿管理程序, 也能夠利用Linux 癿救援來(lái)挽救 MBR 即可。
先裝了window再裝Linux,你的 Linux 不可以隨便的刪除! 因?yàn)?grub 會(huì)去讀取 Linux 根目錄下的/boot/目錄內(nèi)容,如果你將 Linux 移除了,你的 Windows 也就無(wú)法開(kāi)機(jī)了! 因?yàn)檎麄€(gè)開(kāi)機(jī)選單都會(huì)不見(jiàn)!
總結(jié)
磁盤的第一個(gè)扇區(qū)主要記錄了兩個(gè)重要信息,分別是: (1)主要啟動(dòng)記錄區(qū)(Master Boot Record, MBR):內(nèi)含開(kāi)機(jī)管理程序,有 446 bytes (2)分割表(partition table):記錄整個(gè)硬盤分割狀態(tài),有 64 bytes;
第一個(gè)扇區(qū)是不加入分區(qū)的
磁盤癿主要不延伸分割最多可以有四個(gè),逡輯分割癿裝置文件名號(hào)碼,一定由 5 號(hào)開(kāi)始;
開(kāi)機(jī)的流程由:BIOS-->MBR-->-->boot loader(開(kāi)機(jī)啟動(dòng)程序)-->核心檔案;
boot loader 癿功能主要有:提供選單、加載核心、轉(zhuǎn)交控制權(quán)給其他 loader
boot loader 可以安裝癿地點(diǎn)有兩個(gè),分別是 MBR 不 boot sector(啟動(dòng)扇區(qū),在每一個(gè)分區(qū)中)