浅尝硬盘分区表
【0】README
0.1) text description from orange’s implemention of a os;
0.2) there are a number of analysis and attention proves to be essence of this page, I think;
0.3)Conclusion about hd partition table
C1)存在一個(gè)硬盤的情況下:
- C1.1) 1~4這4個(gè)數(shù)字 為 主引導(dǎo)扇區(qū) 中的分區(qū)表項(xiàng)所用(主引導(dǎo)扇區(qū)分區(qū)表可以儲(chǔ)存最多1個(gè)擴(kuò)展分區(qū) 和 不大于4個(gè) 的主分區(qū),總數(shù)量==4), 從5 開始依次表示邏輯分區(qū);(主引導(dǎo)扇區(qū)是硬盤的第一個(gè)扇區(qū),而其他引導(dǎo)扇區(qū)是各個(gè)分區(qū)的第一個(gè)扇區(qū))
- C1.2)主設(shè)備號(hào)告訴os 應(yīng)該用哪個(gè)驅(qū)動(dòng)程序來(lái)處理,次設(shè)備號(hào)告訴driver 這是具體哪個(gè)設(shè)備(分區(qū));
C2)存在兩塊硬盤的情況:
- C2.1)主盤是hd0,次設(shè)備號(hào)是0,它的主引導(dǎo)扇區(qū)分區(qū)表對(duì)應(yīng)的四個(gè)分區(qū)分別是 hd1、hd2、hd3、hd4;
- C2.2)每個(gè)擴(kuò)展分區(qū)中最多有16 個(gè)邏輯分區(qū),邏輯分區(qū)的次設(shè)備號(hào)以hd1a 為基準(zhǔn)遞增的;
- C2.3)這種編號(hào)的好處是, 給定一個(gè)次設(shè)備號(hào)可以很容易計(jì)算出它是主分區(qū)還是擴(kuò)展分區(qū),或者是哪個(gè)擴(kuò)展分區(qū)的哪個(gè)邏輯分區(qū);
C3)百度總結(jié):
- C3.1) 一個(gè)硬盤主分區(qū)至少有1個(gè),最多4個(gè),擴(kuò)展分區(qū)可以沒(méi)有,最多1個(gè)。且主分區(qū)+擴(kuò)展分區(qū)總共不能超過(guò)4個(gè)。邏輯分區(qū)可以有若干個(gè);
- C3.2) MBR(主引導(dǎo)記錄)的分區(qū)表(主分區(qū)表)只能存放4個(gè)分區(qū),如果要分更多的分區(qū)的話就要一個(gè)擴(kuò)展分區(qū)表(EBR),擴(kuò)展分區(qū)表放在一個(gè)系統(tǒng)ID為0x05的主分區(qū)上,這個(gè)主分區(qū)就是擴(kuò)展分區(qū),擴(kuò)展分區(qū)能可以分若干個(gè)分區(qū),每個(gè)分區(qū)都是個(gè)邏輯分區(qū);
【1】intro to hard disk partioning tab
- 1.1) 硬盤分區(qū)表其實(shí)就是一個(gè)數(shù)據(jù)結(jié)構(gòu),數(shù)組的每個(gè)成員是一個(gè) 16字節(jié)的結(jié)構(gòu)體;這個(gè)結(jié)構(gòu)體數(shù)組位于引導(dǎo)扇區(qū)的1BEh處,共有四個(gè)成員——因?yàn)镮BM 當(dāng)時(shí)覺得一臺(tái)PC最多會(huì)裝四個(gè)os;
1.2) 現(xiàn)在我們的計(jì)算機(jī)中 每塊硬盤經(jīng)常劃分為不止四個(gè)分區(qū), 這是因?yàn)?每個(gè)主分區(qū)可以進(jìn)一步分成多個(gè)邏輯分區(qū);
1.3) 對(duì)硬盤進(jìn)行分區(qū)操作,如何創(chuàng)建虛擬硬盤,參見http://blog.csdn.net/PacosonSWJTU/article/details/48846887
如上圖所示,我們把一個(gè)80M 的硬盤映像分成了一個(gè)主分區(qū)和一個(gè)擴(kuò)展分區(qū),然后擴(kuò)展分區(qū)又分成了 五個(gè)邏輯分區(qū);我們的orange’s os 安裝在 第一個(gè)邏輯分區(qū)上(標(biāo)有 ‘*’ 號(hào));
【2】我們實(shí)際看一下分區(qū)表是什么樣子,用二進(jìn)制查看器看一下引導(dǎo)扇區(qū):
Alert):
- A1)要知道,分區(qū)表就是個(gè)結(jié)構(gòu)體數(shù)組, 共有四個(gè)成員,每個(gè)成員16個(gè)字節(jié),那分區(qū)表結(jié)構(gòu)體數(shù)組共占64字節(jié),也即是除外引導(dǎo)扇區(qū)標(biāo)志 0xAA55 后 的 最后64字節(jié)了;
A2)這個(gè)分區(qū)表結(jié)構(gòu)體數(shù)組 存在于 引導(dǎo)扇區(qū)中除開 0xAA55 后的最后64個(gè)字節(jié);
第一個(gè)分區(qū):00 ,01 ,01 ,00 ,83 ,0F ,3F ,13 ,3F 00 00 00 ,81 4E 00 00 第二個(gè)分區(qū):00 ,00 ,01 ,14 ,05 ,0F ,3F ,A1 ,C0 4E 00 00 ,20 2F 02 00
【3】利用引導(dǎo)扇區(qū)中記錄的擴(kuò)展分區(qū)的起始字節(jié)(0x4EC0 * 512 = 0x9D8000),我們來(lái)查看擴(kuò)展分區(qū)的信息:
Attention):擴(kuò)展分區(qū)的起始字節(jié),也即是擴(kuò)展分區(qū)的第一個(gè)邏輯分區(qū)的起始字節(jié);
3.1)對(duì)上表的分析-Analysis:
- A1)當(dāng)前擴(kuò)展分區(qū)的第一個(gè)分區(qū)的起始扇區(qū)LBA 是0x3F,這個(gè)是相對(duì)于擴(kuò)展分區(qū)基地址的LBA,它的真正LBA 是 4EC0h + 3Fh = 4EFFh;
- A2)當(dāng)前擴(kuò)展分區(qū)的第二個(gè)分區(qū)的分區(qū)類型是 0x05,可知它又是一個(gè)擴(kuò)展分區(qū),起始扇區(qū)LBA 為 4EC0h + 9D80h = EC40h,字節(jié)偏移為 EC40h * 512 = 1D88000h,我們轉(zhuǎn)到該起始字節(jié);
3.2)利用上述擴(kuò)展分區(qū)的第一個(gè)邏輯分區(qū)的分區(qū)表數(shù)據(jù)結(jié)構(gòu) 記錄的嵌套擴(kuò)展分區(qū)的起始字節(jié)(EC40h * 512 = 1D88000h),我們來(lái)查看嵌套擴(kuò)展分區(qū)的信息:
(因?yàn)?#xff0c;擴(kuò)展分區(qū)中的第一個(gè)邏輯分區(qū)的分區(qū)表記錄著 另一個(gè)擴(kuò)展分區(qū)的起始扇區(qū),所以我們把這種擴(kuò)展分區(qū) 叫做 嵌套擴(kuò)展分區(qū))
3.3)對(duì)上表的分析-Analysis:
- A1)從分區(qū)類型值可以看出(0x05),在這個(gè)分區(qū)中, 又包含了一個(gè)普通分區(qū)和一個(gè)擴(kuò)展分區(qū),你可能一下子明白了,多個(gè)邏輯分區(qū)是由嵌套來(lái)實(shí)現(xiàn)的;
- A2)一個(gè)擴(kuò)展分區(qū)包含一個(gè)普通分區(qū)的同時(shí), 又可以嵌套一個(gè)擴(kuò)展分區(qū);
- A3)當(dāng)前擴(kuò)展分區(qū)的第一個(gè)分區(qū)的起始扇區(qū)LBA 是0x3F,這個(gè)是相對(duì)于擴(kuò)展分區(qū)基地址的LBA,它的真正LBA 是 EC40h + 3Fh = EC7Fh;
- A4)當(dāng)前擴(kuò)展分區(qū)的第二個(gè)分區(qū)的分區(qū)類型是 0x05,可知它又是一個(gè)擴(kuò)展分區(qū),起始扇區(qū)LBA 為 4EC0h + 0x113A0h = 16260h,字節(jié)偏移為 16260h * 51與2 = 2C4C000h,我們轉(zhuǎn)到該起始字節(jié);
Attention)為什么 第一個(gè)分區(qū)的 起始扇區(qū)LBA 最后要加上 EC40h, 而第二個(gè)分區(qū)的 起始扇區(qū)LBA 最后要加上 4EC0h 呢?
- A1)這里需要留意一點(diǎn), 前一個(gè)表項(xiàng)(當(dāng)前擴(kuò)展分區(qū)的第一個(gè)分區(qū))中的 起始扇區(qū)LBA 是相對(duì)于當(dāng)前擴(kuò)展分區(qū)的,而后一個(gè)表項(xiàng)(當(dāng)前擴(kuò)展分區(qū)的第二個(gè)分區(qū))中的起始扇區(qū)——也就是下一個(gè)擴(kuò)展分區(qū)的起始扇區(qū)——是相對(duì)于硬盤主引導(dǎo)扇區(qū)所指明的擴(kuò)展分區(qū)的起始扇區(qū)的;
- A2)很顯然,當(dāng)前擴(kuò)展分區(qū)的第一個(gè)分區(qū)(前一個(gè)表項(xiàng))的起始扇區(qū)LBA是相對(duì)于 當(dāng)前擴(kuò)展分區(qū),而當(dāng)前擴(kuò)展分區(qū)的基扇區(qū)號(hào)為 EC40,當(dāng)然其要 加上 EC40了;
- A3)還有,當(dāng)前擴(kuò)展分區(qū)的第二個(gè)分區(qū)(后一個(gè)表項(xiàng))的起始扇區(qū)LBA是相對(duì)于 硬盤主引導(dǎo)扇區(qū)所指明的擴(kuò)展分區(qū)的起始扇區(qū)而不是 當(dāng)前擴(kuò)展分區(qū)基扇區(qū)號(hào),而引導(dǎo)扇區(qū)記錄的擴(kuò)展分區(qū)起始扇區(qū)為 4EC0,當(dāng)然其要 加上 4EC0了(表a所示);
- A4)還有一個(gè)重要問(wèn)題就是,為什么第二個(gè)分區(qū)表示的是擴(kuò)展分區(qū),因?yàn)槲覀兺ㄟ^(guò)它的分區(qū)類型 為 0x05,看出來(lái)的;
- A5)就這樣,擴(kuò)展分區(qū)的分區(qū)表信息就像一個(gè)鏈表一樣,我們可以一步一步地遍歷所有分區(qū);
總結(jié)
- 上一篇: 苏门四学士分别是谁(哪四个人被并称为苏门
- 下一篇: 华为造电脑CPU(华为电脑工厂)