自己動(dòng)手寫Windows分區(qū)工具(一)

分區(qū)體系有DOS、Apple辙喂、BSD等,Windows分區(qū)使用的是DOS分區(qū)體系鸠珠,用的是MBR分區(qū)表巍耗,一般我們的硬盤用的都是這種方式。MBR分區(qū)表下渐排,LBA(Logical Block Address炬太,邏輯塊地址)地址最大為32位,按每扇區(qū)512Byte計(jì)算最大能描述2TB的空間大小驯耻,若硬盤容量超過2TB左右便無法全部描述亲族。除此之外,還有一種分區(qū)表叫作GPT(GUID Partition Table可缚,全局唯一標(biāo)識(shí)符分區(qū)表)霎迫,這種分區(qū)表用的尋址方式是64位,不受前者的限制帘靡。不過知给,以目前的情況,2TB硬盤雖然并不少見描姚,但是通常我們也不用到涩赢,何況現(xiàn)今固態(tài)硬盤(SSD)已成為主流,所以Win操作系統(tǒng)中MBR分區(qū)表仍然是大部分人的選擇轩勘,而Linux下用的則是GPT分區(qū)表筒扒。下面我們來談一下MBR分區(qū)表的結(jié)構(gòu),關(guān)于GPT分區(qū)表以后再談绊寻。

? ? 首先看硬盤花墩。我們都知道,硬盤上存在著所謂的柱面(Cylinder)榛斯、磁頭(Head)和扇區(qū)(Sector)观游,也就是所謂的CHS,通過CHS地址驮俗,我們可以定位到硬盤的唯一一個(gè)扇區(qū)懂缕。此外,還有種地址叫做LBA王凑,也就是硬盤邏輯地址搪柑,物理硬盤上每磁道一般有63個(gè)扇區(qū)聋丝,每扇區(qū)從1開始編號(hào),而邏輯地址下工碾,扇區(qū)從0編號(hào)弱睦,直到最大扇區(qū)號(hào),最大扇區(qū)號(hào)為硬盤扇區(qū)總數(shù)減1渊额。所以說况木,U盤等移動(dòng)存儲(chǔ)設(shè)備也是有“扇區(qū)”的,這里的扇區(qū)對(duì)應(yīng)的是U盤芯片里的數(shù)據(jù)塊(Block)旬迹。另外火惊,對(duì)物理硬盤,柱面和磁道差不多是一樣的概念奔垦,它們也就是一個(gè)個(gè)的同心圓屹耐,但從微觀角度看扇區(qū)是矩形而非扇形。硬盤下每扇區(qū)一般是512字節(jié)椿猎,這是一種約定俗成的標(biāo)準(zhǔn)(最新的SSD可能會(huì)有1024字節(jié))惶岭,磁頭是最少的,一般有幾個(gè)到十幾個(gè)不等犯眠,不過按灶,如果你用Diskgen軟件查看硬盤會(huì)發(fā)現(xiàn),可能會(huì)顯示255個(gè)磁頭阔逼,硬盤每盤片上一般有兩個(gè)磁頭兆衅,硬盤一般只有幾張盤片地沮,怎么可能有255個(gè)磁頭呢嗜浮?甚至連U盤也顯示255個(gè)磁頭,這是怎么回事呢摩疑?其實(shí)這里的磁頭是指邏輯磁頭數(shù)危融,而非硬盤物理磁頭數(shù),Windows操作系統(tǒng)會(huì)把硬盤分為每扇區(qū)字節(jié)數(shù)(512)雷袋,每磁道扇區(qū)數(shù)(63)吉殃,每柱面磁道數(shù)(255),以及柱面數(shù)(上萬個(gè))楷怒,這里少個(gè)磁頭數(shù)蛋勺,因?yàn)橐陨线@些都操作系統(tǒng)定義的邏輯數(shù)據(jù),而非硬盤真實(shí)的結(jié)構(gòu)鸠删,前面說了抱完,對(duì)物理硬盤而言柱面和磁道是等價(jià)的東西,而Diskgen顯示的磁頭數(shù)應(yīng)該是磁道數(shù)(估計(jì)連diskgen自己也不清楚刃泡,按照Windows的DISK_GEOMETRY結(jié)構(gòu)定義巧娱,成員TracksPerCylinder的意思確實(shí)是“每柱面磁道數(shù)”碉怔,看來Windows把柱面和磁道分開定義了。但請(qǐng)注意禁添,實(shí)際硬盤上撮胧,柱面就是磁道,磁道就是柱面老翘,兩者沒有區(qū)別)芹啥,如果用Everest軟件查看會(huì)發(fā)現(xiàn),硬盤的磁頭數(shù)僅為十幾個(gè)铺峭,而柱面數(shù)仍然為幾萬個(gè)叁征。

? ? 下面看分區(qū)表。用WinHex打開物理硬盤逛薇,第0號(hào)扇區(qū)就是MBR(Master Boot Recorder捺疼,主引導(dǎo)記錄),前446字節(jié)為引導(dǎo)代碼永罚,第447字節(jié)也就是偏移0x1BE處開始就是主分區(qū)表啤呼,大小為64個(gè)字節(jié),最后兩字節(jié)是55AA標(biāo)志呢袱。分區(qū)表中共有4個(gè)分區(qū)表項(xiàng)官扣,每個(gè)項(xiàng)大小為16字節(jié),第1個(gè)字節(jié)為可引導(dǎo)標(biāo)志羞福,0表示不可引導(dǎo)惕蹄,0x80表示可引導(dǎo),之后3個(gè)字節(jié)是分區(qū)起始CHS地址治专,然后是分區(qū)標(biāo)志卖陵,占1字節(jié),例如0x0F或0x05代表擴(kuò)展分區(qū)张峰,0x17代表隱藏NTFS分區(qū)泪蔫,然后是分區(qū)結(jié)束CHS地址,也是3字節(jié)喘批,最后兩個(gè)是分區(qū)起始LBA和分區(qū)大小扇區(qū)數(shù)撩荣,各占4字節(jié)。這里的4個(gè)分區(qū)都叫做主分區(qū)饶深,如果是擴(kuò)展分區(qū)也可以叫主擴(kuò)展分區(qū)餐曹。主分區(qū)表中最多可建4個(gè)主分區(qū),但擴(kuò)展分區(qū)只能建1個(gè)敌厘。主分區(qū)一般描述C盤台猴,而主擴(kuò)展分區(qū)同樣描述了另一個(gè)空間,可以把這個(gè)空間當(dāng)作一個(gè)新的磁盤,在這個(gè)空間上可以建立若干邏輯分區(qū)(D卿吐、E旁舰、F)。主擴(kuò)展分區(qū)的起始處一個(gè)扇區(qū)為引導(dǎo)記錄(可以稱作EBR嗡官,擴(kuò)展引導(dǎo)記錄)箭窜,同樣的位置0x1BE處又描述了一張分區(qū)表,可稱之為擴(kuò)展分區(qū)表衍腥,這個(gè)表只能表示兩個(gè)分區(qū)表項(xiàng)磺樱,第1個(gè)表項(xiàng)為文件系統(tǒng)分區(qū)(一般為第二個(gè)邏輯盤),屬于二級(jí)文件系統(tǒng)分區(qū)婆咸,第2個(gè)表項(xiàng)為二級(jí)擴(kuò)展分區(qū)竹捉,然后二級(jí)擴(kuò)展分區(qū)的EBR中又能表示兩個(gè)分區(qū),第1個(gè)分區(qū)為三級(jí)文件系統(tǒng)分區(qū)尚骄,第2個(gè)分區(qū)為三級(jí)擴(kuò)展分區(qū)块差,所有擴(kuò)展分區(qū)的結(jié)束部分一般會(huì)到頭,也就是會(huì)占滿硬盤倔丈,否則會(huì)多出空閑空間憨闰。照這個(gè)方式類推,最終遍歷完所有分區(qū)的結(jié)構(gòu)需五。分區(qū)一般為主分區(qū)和邏輯分區(qū)鹉动,擴(kuò)展分區(qū)并不能算真正意義的分區(qū),而是屬于硬盤分區(qū)后的剩余空間宏邮,所以通常我們說到分區(qū)泽示,一般不包括擴(kuò)展分區(qū)。每個(gè)分區(qū)(不包括擴(kuò)展分區(qū))的開始一個(gè)扇區(qū)為DBR(DOS Boot Recorder蜜氨,DOS引導(dǎo)記錄)械筛,里面記錄著分區(qū)的信息,比如分區(qū)大小總扇區(qū)數(shù)记劝、每扇區(qū)字節(jié)數(shù)变姨、每簇扇區(qū)數(shù)族扰、保留扇區(qū)數(shù)厌丑、根目錄簇等文件系統(tǒng)信息。

? ? 知道了以上這些要素渔呵,我們可以動(dòng)手寫一個(gè)自己的分區(qū)工具了怒竿。下面的這個(gè)分區(qū)程序只是個(gè)測(cè)試,功能比較簡單扩氢,大概的功能有快速分區(qū)并格式化耕驰、調(diào)整分區(qū)信息、刪除分區(qū)录豺、隱藏分區(qū)朦肘、設(shè)置活動(dòng)分區(qū)饭弓、重建MBR等。由于代碼太長媒抠,所以只例舉了部分最核心的代碼弟断。


下載:http://pan.baidu.com/s/1nuGe7rV

下載:http://pan.baidu.com/s/1nuGe7rV

代碼:https://blog.csdn.net/zzmzzff/article/details/88872495

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市趴生,隨后出現(xiàn)的幾起案子阀趴,更是在濱河造成了極大的恐慌,老刑警劉巖苍匆,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刘急,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡浸踩,警方通過查閱死者的電腦和手機(jī)叔汁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來检碗,“玉大人攻柠,你說我怎么就攤上這事『舐悖” “怎么了瑰钮?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長微驶。 經(jīng)常有香客問我浪谴,道長,這世上最難降的妖魔是什么因苹? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任苟耻,我火速辦了婚禮,結(jié)果婚禮上扶檐,老公的妹妹穿的比我還像新娘凶杖。我一直安慰自己,他們只是感情好款筑,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布智蝠。 她就那樣靜靜地躺著,像睡著了一般奈梳。 火紅的嫁衣襯著肌膚如雪杈湾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天攘须,我揣著相機(jī)與錄音漆撞,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛浮驳,可吹牛的內(nèi)容都是我干的悍汛。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼至会,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼员凝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奋献,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤健霹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后瓶蚂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體糖埋,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年窃这,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瞳别。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杭攻,死狀恐怖祟敛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情兆解,我是刑警寧澤馆铁,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站锅睛,受9級(jí)特大地震影響埠巨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜现拒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一辣垒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧印蔬,春花似錦勋桶、人聲如沸汁尺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽闸拿。三九已至,卻和暖如春辉词,著一層夾襖步出監(jiān)牢的瞬間硫椰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國打工铜邮, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓松蒜,卻偏偏與公主長得像扔茅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秸苗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 導(dǎo)讀目錄 硬盤的組成 硬盤的物理結(jié)構(gòu)主要針對(duì)的是機(jī)械硬盤及其內(nèi)部的結(jié)構(gòu)加以介紹召娜,以下內(nèi)容可能不是硬盤內(nèi)部全部的部件...
    香吉矢閱讀 4,085評(píng)論 0 12
  • 幾個(gè)學(xué)習(xí)鏈接:https://www.cnblogs.com/LexMoon/p/How_to_Make_a_Co...
    少女白潔閱讀 749評(píng)論 0 0
  • 原文 https://zhuanlan.zhihu.com/p/26098509 對(duì)很多PC的使用者來說,UEFI...
    ditt0閱讀 1,100評(píng)論 0 2
  • 男女之間惊楼,最難的不是情愛的發(fā)生玖瘸,而是將這烈火隱忍成清明的星光,照耀各自一生或繁華或寂寥的長夜
    饗客閱讀 153評(píng)論 0 0
  • 92017.10.14 最近我比較努力檀咙,于是賺錢了雅倒。尋思著要做好事,想捐款弧可。想著就來了蔑匣,恰有項(xiàng)目需要捐款。 我問負(fù)...
    潘語閱讀 262評(píng)論 3 4