本發(fā)明涉及磁盤分區(qū)領(lǐng)域,特別涉及一種硬盤分區(qū)方法及系統(tǒng)。
背景技術(shù):
隨著科技的進(jìn)步,單系統(tǒng)計(jì)算機(jī)有時(shí)難以滿足人們的需求,雙系統(tǒng)甚至多系統(tǒng)的使用逐漸變?yōu)槌B(tài)。多系統(tǒng)的安裝將會(huì)用到主引導(dǎo)記錄的使用,以便于對(duì)硬盤進(jìn)行分區(qū),以使多系統(tǒng)能夠安裝到硬盤中。
硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導(dǎo)記錄,主引導(dǎo)記錄由三個(gè)部分組成,主引導(dǎo)程序、硬盤分區(qū)表和分區(qū)有效標(biāo)志,在總共512字節(jié)的主引導(dǎo)扇區(qū)里主引導(dǎo)程序占446個(gè)字節(jié),第二部分是硬盤分區(qū)表,占64個(gè)字節(jié),硬盤中分區(qū)有多少以及每一分區(qū)的大小都記在其中,第三部分是幻數(shù),占2個(gè)字節(jié),固定為0xAA55或0x55AA。
現(xiàn)有技術(shù)中,有很多操作系統(tǒng),比如Windows系列:XP,Vista,Win7,Win8,Win10,這些Windows系列的操作系統(tǒng)一般都會(huì)至少占用一個(gè)主分區(qū),有的還會(huì)占2~4個(gè)主分區(qū),比如系統(tǒng)恢復(fù)分區(qū)等等;使用Grub安裝的任何Linux操作系統(tǒng),也至少需要一個(gè)主分區(qū);FreeBSD也至少需要一個(gè)主分區(qū),而主引導(dǎo)記錄只能分配4個(gè)分區(qū),由此可以看出受限于主引導(dǎo)記錄的分區(qū)限制當(dāng)安裝多操作系統(tǒng)的時(shí)候,會(huì)發(fā)現(xiàn)主分區(qū)不夠的情況,進(jìn)而難以安裝新的操作系統(tǒng),難以在保留現(xiàn)有數(shù)據(jù)的情況下增加主分區(qū),十分不便。
因此,如何在保留現(xiàn)有數(shù)據(jù)的情況下增加主分區(qū),成為需要突破的難題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種硬盤分區(qū)方法及系統(tǒng),以在不對(duì)以保存數(shù)據(jù)濟(jì)寧改動(dòng)的情況下,增加主分區(qū)。其具體方案如下:
一種硬盤分區(qū)方法,包括:
利用原主引導(dǎo)記錄,讀取硬盤的分區(qū)結(jié)構(gòu),查找到空閑塊;
生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用所述新主引導(dǎo)記錄所述空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)。
優(yōu)選的,所述生成新主引導(dǎo)記錄的過程,包括:
判斷所述空閑塊大小是否大于預(yù)設(shè)閾值;
如果判定所述空閑塊大小大于所述閾值,則生成所述新主引導(dǎo)記錄。
優(yōu)選的,所述生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用所述新主引導(dǎo)記錄所述空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)前,還包括:
將所述原主引導(dǎo)記錄以磁盤塊的形式保存到所述空閑塊中。
優(yōu)選的,所述生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用所述新主引導(dǎo)記錄所述空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)前,還包括:
將所述原主引導(dǎo)記錄以磁盤塊的形式保存到所述空閑塊中。
優(yōu)選的,所述利用所述新主引導(dǎo)記錄對(duì)所述空閑塊進(jìn)行分區(qū)后,還包括:
利用所述新主引導(dǎo)記錄中保存的所述原主引導(dǎo)記錄的位置信息,將所述原主引導(dǎo)記錄備份覆蓋所述新主引導(dǎo)記錄,以恢復(fù)原主引導(dǎo)記錄的分區(qū)結(jié)構(gòu)。
本發(fā)明還公開了一種硬盤分區(qū)系統(tǒng),包括:
查找模塊,用于利用原主引導(dǎo)記錄,讀取硬盤的分區(qū)結(jié)構(gòu),查找到空閑塊;
分區(qū)模塊,用于生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用所述新主引導(dǎo)記錄所述空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)。
優(yōu)選的,所述分區(qū)模塊,包括:
判斷單元,用于判斷所述空閑塊大小是否大于預(yù)設(shè)閾值;
分區(qū)單元,用于如果判定所述空閑塊大小大于所述閾值,則生成所述新主引導(dǎo)記錄。
優(yōu)選的,還包括:
備份模塊,用于將所述原主引導(dǎo)記錄以磁盤塊的形式保存到所述空閑塊中。
優(yōu)選的,所述備份模塊,具體用于將所述原主引導(dǎo)記錄以磁盤塊的形式保存到所述空閑塊的起始位置中。
優(yōu)選的,還包括:
復(fù)原模塊,用于利用所述新主引導(dǎo)記錄中保存的所述原主引導(dǎo)記錄的位置信息,將所述原主引導(dǎo)記錄備份覆蓋所述新主引導(dǎo)記錄,以恢復(fù)原主引導(dǎo)記錄的分區(qū)結(jié)構(gòu)。
本發(fā)明中,硬盤分區(qū)方法,包括:利用原主引導(dǎo)記錄,讀取硬盤的分區(qū)結(jié)構(gòu),查找到空閑塊;生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用新主引導(dǎo)記錄記錄空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)??梢?,本發(fā)明利用原主引導(dǎo)記錄,查找到硬盤的空閑塊,并生成新主引導(dǎo)記錄,并將新主引導(dǎo)記錄覆蓋原主引導(dǎo)記錄,使得硬盤分區(qū)結(jié)構(gòu)變?yōu)樾轮饕龑?dǎo)記錄記錄的空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu),綜上所述,利用空閑塊進(jìn)行分區(qū)不會(huì)影響到原有數(shù)據(jù),生成新主引導(dǎo)記錄,可以重新建立4個(gè)分區(qū)的索引關(guān)系,從而增加了主分區(qū)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例公開的一種硬盤分區(qū)方法流程示意圖;
圖2為本發(fā)明實(shí)施例公開的另一種硬盤分區(qū)方法流程示意圖;
圖3為本發(fā)明實(shí)施例公開的一種硬盤分區(qū)系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例公開了一種硬盤分區(qū)方法,參見圖1所示,該方法包括:
步驟S11:利用原主引導(dǎo)記錄,讀取硬盤的分區(qū)結(jié)構(gòu),查找到空閑塊;
可以理解的是,原主引導(dǎo)記錄是位于磁盤最前邊的一段引導(dǎo)代碼,負(fù)責(zé)磁盤操作系統(tǒng)對(duì)磁盤進(jìn)行讀寫時(shí)分區(qū)合法性的判別、分區(qū)引導(dǎo)信息的定位,它由磁盤操作系統(tǒng)在對(duì)硬盤進(jìn)行初始化時(shí)產(chǎn)生的,由三個(gè)部分組成,主引導(dǎo)程序、硬盤分區(qū)表和分區(qū)有效標(biāo)志,在總共512字節(jié)的主引導(dǎo)扇區(qū)里主引導(dǎo)程序占446個(gè)字節(jié),第二部分是硬盤分區(qū)表,占64個(gè)字節(jié),硬盤中分區(qū)有多少以及每一分區(qū)的大小都記在其中,第三部分是幻數(shù),占2個(gè)字節(jié),固定為0xAA55或0x55AA。
具體的,原主引導(dǎo)記錄中記錄著當(dāng)前硬盤分區(qū)結(jié)構(gòu),利用原主引導(dǎo)記錄中的硬盤分區(qū)表和主引導(dǎo)程序,可以查找到當(dāng)前硬盤中的空閑塊,即未被分區(qū)的硬盤塊。
步驟S12:生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用新主引導(dǎo)記錄空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)。
具體的,當(dāng)找到空閑塊后,根據(jù)實(shí)際應(yīng)用需求對(duì)空閑塊進(jìn)行分區(qū),例如,將空閑塊劃分為三個(gè)主分區(qū)一個(gè)擴(kuò)展區(qū),或劃分為兩個(gè)主分區(qū)兩個(gè)擴(kuò)展區(qū),并生成與操作系統(tǒng)相對(duì)應(yīng)的新主引導(dǎo)記錄,將新主引導(dǎo)記錄以磁盤塊的形式保存到硬盤的起始?jí)K,即覆蓋原主引導(dǎo)記錄,新主引導(dǎo)記錄中將記錄空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu),重生成立分區(qū)的索引關(guān)系。
可以理解的是,原主引導(dǎo)記錄中記載的已分區(qū)部分,在新主引導(dǎo)記錄中不進(jìn)行記錄和分區(qū),這樣原分區(qū)就不會(huì)占用新主引導(dǎo)記錄的分區(qū)名額,且新分區(qū)也不會(huì)影響原分區(qū)中的數(shù)據(jù)。
需要說明的是,可以先生成主引導(dǎo)記錄,再對(duì)空閑塊進(jìn)行分區(qū),生成主引導(dǎo)記錄將隨著空閑塊的分區(qū)進(jìn)行更新,保證索引關(guān)系的確立;也可以先對(duì)空閑塊進(jìn)行分區(qū),利用分區(qū)后的分區(qū)結(jié)構(gòu),生成新主引導(dǎo)記錄。
可見,本發(fā)明利用原主引導(dǎo)記錄,查找到硬盤的空閑塊,并生成新主引導(dǎo)記錄,并將新主引導(dǎo)記錄覆蓋原主引導(dǎo)記錄,使得硬盤分區(qū)結(jié)構(gòu)變?yōu)樾轮饕龑?dǎo)記錄記錄的空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu),綜上所述,利用空閑塊進(jìn)行分區(qū)不會(huì)影響到原有數(shù)據(jù),生成新主引導(dǎo)記錄,可以重新建立4個(gè)分區(qū)的索引關(guān)系,從而增加了主分區(qū)。
本發(fā)明實(shí)施例公開了一種具體的硬盤分區(qū)方法,相對(duì)于上一實(shí)施例,本實(shí)施例對(duì)技術(shù)方案作了進(jìn)一步的說明和優(yōu)化。參見圖2所示,具體的:
步驟S21:利用原主引導(dǎo)記錄,讀取硬盤的分區(qū)結(jié)構(gòu),查找到空閑塊。
步驟S22:判斷空閑塊大小是否大于預(yù)設(shè)閾值。
可以理解的是,在實(shí)際應(yīng)用中,硬盤的空閑塊大小,不一定能滿足用戶分區(qū)后的使用需求,例如,用戶分區(qū)后需要安裝操作系統(tǒng),過小的空閑塊,難以安裝操作系統(tǒng),因此,為了避免用戶重新進(jìn)行分區(qū)后,發(fā)現(xiàn)空間難以滿足需求的問題,可以在分區(qū)前判斷空閑大小是否滿足需求。
具體的,用戶可以根據(jù)實(shí)際應(yīng)用需求,預(yù)先設(shè)定閾值,用于判斷空閑塊大小是否滿足需求,當(dāng)空閑塊大小超過閾值,則說明空閑塊大小滿足需求,當(dāng)空閑塊大小小于閾值,則說明空閑塊大小不滿足需求。例如,閾值可以設(shè)定為10G。
步驟S23:如果判定空閑塊大小大于閾值,則生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用新主引導(dǎo)記錄空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)。
步驟S24:如果判定空閑塊大小小于閾值,則不進(jìn)行分區(qū)。
需要說明的是,由于新主引導(dǎo)記錄會(huì)覆蓋原主引導(dǎo)記錄,因此,使用新主引導(dǎo)記錄將無法訪問原主引導(dǎo)記錄對(duì)應(yīng)的分區(qū)中的數(shù)據(jù),而原主引導(dǎo)記錄丟失后,將無法重新進(jìn)行訪問,為此,在生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用新主引導(dǎo)記錄空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu),即分區(qū)前,將原主引導(dǎo)記錄以磁盤塊的形式保存到空閑塊中,這樣即使分區(qū)后,原主引導(dǎo)記錄仍保存在硬盤中可以被查找到。
可以理解的是,在備份原主引導(dǎo)記錄后,可以利用新主引導(dǎo)記錄中保存的原主引導(dǎo)記錄的位置信息,將原主引導(dǎo)記錄備份覆蓋新主引導(dǎo)記錄,以恢復(fù)原主引導(dǎo)記錄的分區(qū)結(jié)構(gòu)。
具體的,分區(qū)后,用戶可能只是臨時(shí)構(gòu)建主分區(qū)用于測(cè)試操作系統(tǒng),當(dāng)用戶測(cè)試完畢后,需要將分區(qū)結(jié)構(gòu)恢復(fù)為測(cè)試前的結(jié)構(gòu),因此可以利用新主引導(dǎo)記錄中保存的原主引導(dǎo)記錄在硬盤中保存的位置信息,查找到原主引導(dǎo)記錄,并將原主引導(dǎo)記錄備份覆蓋新主引導(dǎo)記錄,從而恢復(fù)原分區(qū)結(jié)構(gòu)。
其中,新主引導(dǎo)記錄在創(chuàng)建時(shí),便保存了預(yù)先保存在空閑塊的原主引導(dǎo)記錄;同時(shí),為了便于查找將原主引導(dǎo)記錄保存到空閑塊中的起始位置,也保證了在安裝新操作系統(tǒng)是不會(huì)被輕易覆蓋掉。
相應(yīng)的,本發(fā)明實(shí)施例還提供了一種硬盤分區(qū)系統(tǒng),參見圖3所示,該系統(tǒng)包括:
查找模塊11,用于利用原主引導(dǎo)記錄,讀取硬盤的分區(qū)結(jié)構(gòu),查找到空閑塊;
分區(qū)模塊12,用于生成新主引導(dǎo)記錄,并覆蓋原主引導(dǎo)記錄,利用新主引導(dǎo)記錄空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu)。
可見,本發(fā)明利用原主引導(dǎo)記錄,查找到硬盤的空閑塊,并生成新主引導(dǎo)記錄,并將新主引導(dǎo)記錄覆蓋原主引導(dǎo)記錄,使得硬盤分區(qū)結(jié)構(gòu)變?yōu)樾轮饕龑?dǎo)記錄記錄的空閑塊進(jìn)行分區(qū)后的分區(qū)結(jié)構(gòu),綜上所述,利用空閑塊進(jìn)行分區(qū)不會(huì)影響到原有數(shù)據(jù),生成新主引導(dǎo)記錄,可以重新建立4個(gè)分區(qū)的索引關(guān)系,從而增加了主分區(qū)。
具體的,上述分區(qū)模塊12,包括判斷單元和分區(qū)單元;其中,
判斷單元,用于判斷空閑塊大小是否大于預(yù)設(shè)閾值;
分區(qū)單元,用于如果判定空閑塊大小大于閾值,則生成新主引導(dǎo)記錄。
進(jìn)一步的,本發(fā)明實(shí)施例中,還可以包括:
備份模塊,用于將原主引導(dǎo)記錄以磁盤塊的形式保存到空閑塊中。
復(fù)原模塊,用于利用新主引導(dǎo)記錄中保存的原主引導(dǎo)記錄的位置信息,將原主引導(dǎo)記錄備份覆蓋新主引導(dǎo)記錄,以恢復(fù)原主引導(dǎo)記錄的分區(qū)結(jié)構(gòu)。
其中,上述備份模塊,具體用于將原主引導(dǎo)記錄以磁盤塊的形式保存到空閑塊的起始位置中。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明所提供的一種硬盤分區(qū)方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。