專利名稱:計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制技術(shù),特別涉及一種適用于計(jì)算機(jī)生產(chǎn)線的硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng)。
計(jì)算機(jī)硬盤復(fù)制技術(shù)可應(yīng)用于計(jì)算機(jī)生產(chǎn)線上,用以將特定的軟件程序快速地復(fù)制至生產(chǎn)線上的每一臺(tái)計(jì)算機(jī)的硬盤上,藉以提高生產(chǎn)效率。舉例而言,現(xiàn)今一般的個(gè)人計(jì)算機(jī)均預(yù)先灌錄有Windows 98操作系統(tǒng)及Office 97應(yīng)用軟件。若不采用計(jì)算機(jī)硬盤復(fù)制技術(shù),而采用標(biāo)準(zhǔn)的安裝程序(setup),則每一臺(tái)個(gè)人計(jì)算機(jī)上的硬盤要安裝上Windows 98和Office 97軟件,至少需數(shù)十分鐘的時(shí)間才能完成。對(duì)于計(jì)算機(jī)生產(chǎn)線上數(shù)千臺(tái)的個(gè)人計(jì)算機(jī)而言,此顯然為一不可行的方法。
公知的計(jì)算機(jī)硬盤復(fù)制技術(shù)是將Windows 98和Office 97軟件預(yù)先安裝于一硬盤上(此硬盤一般稱為“母盤”),并將此硬盤上的Windows 98和Office97軟件(以下稱為“原始數(shù)據(jù)”)中的所有文件壓縮成一個(gè)映像文件;在復(fù)制硬盤時(shí),再對(duì)此映像文件作解壓縮,并將解壓縮后的各個(gè)文件寫(xiě)入每一臺(tái)個(gè)人計(jì)算機(jī)的硬盤上(此硬盤一般稱為“子盤”)。
圖1顯示此公知的計(jì)算機(jī)硬盤復(fù)制方法的系統(tǒng)模塊示意圖。如圖所示,此公知的硬盤數(shù)據(jù)復(fù)制方法是用以將一母盤10上所預(yù)錄的一組原始數(shù)據(jù),例如為前述的Windows 98和Office97軟件,復(fù)制至一子盤20上。此公知的計(jì)算機(jī)硬盤復(fù)制方法首先利用一母盤讀取模塊11將母盤10上的各個(gè)文件FILE_1、FILE_2…、FILE_N讀取出來(lái)(讀取出來(lái)的文件以標(biāo)號(hào)為12的方塊表示);再接著利用一壓縮模塊13將所讀取出來(lái)各個(gè)文件FILE_1、FILE_2、…、FILE_N逐一作壓縮,并全部存儲(chǔ)至一映像文件14。在實(shí)際進(jìn)行硬盤復(fù)制時(shí),再利用一解壓縮模塊21對(duì)映像文件14作解壓縮;再接著利用一子盤讀寫(xiě)模塊22將解壓縮后的各個(gè)文件逐一寫(xiě)入至子盤20上。
利用上述的公知方法來(lái)復(fù)制1 GB(gigabyte)的原始數(shù)據(jù),其所需的時(shí)間約為10分26秒。
然而上述的硬盤數(shù)據(jù)復(fù)制方法的缺點(diǎn)在于速度較慢,且系統(tǒng)保護(hù)性亦差。這是由于此公知的硬盤數(shù)據(jù)復(fù)制方法是建立在文件系統(tǒng)(file system)的基礎(chǔ)上;即其是首先藉由查詢母盤上的文件分配表(File Allocation,Table,FAT)及文件目錄表(File Directory Table,FDT),來(lái)讀取母盤上所有文件。接著在復(fù)制過(guò)程中,首先需要根據(jù)子盤的總?cè)萘考胺謪^(qū)(partition)情形,來(lái)修改子盤上的文件目錄表FDT及文件分配表FAT;再接著將映像文件作解壓縮,以取得母盤的原始數(shù)據(jù)的各個(gè)文件;最后再將這些解壓縮后的文件逐一寫(xiě)入至子盤上。這些步驟使得公知的硬盤數(shù)據(jù)復(fù)制方法顯得較為復(fù)雜,因此復(fù)制速度仍不甚為理想。特別是在母盤與子盤的總?cè)萘坎煌那闆r下,復(fù)制速度將變得更慢,且不穩(wěn)定。
鑒于以上所述公知技術(shù)的缺點(diǎn),本發(fā)明的主要目的在于提供一種新穎的硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng),其可較公知方法更快速地將母盤數(shù)據(jù)復(fù)制至子盤上。
本發(fā)明的另一目的在于提供一種新穎的硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng),其在復(fù)制過(guò)程中,可不必修改子盤的文件目錄表FDT及文件分配表FAT,以確保子盤系統(tǒng)的安全性。
本發(fā)明的又一目的在于提供一種新穎的硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng),其可在母盤與子盤的總?cè)萘坎煌那闆r下,不能提供快速且安全性高的硬盤數(shù)據(jù)復(fù)制。
根據(jù)以上所述的目的,本發(fā)明提供了一種新穎的計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng)。所述方法包含以下步驟(1)執(zhí)行一初始程序,用以將母盤數(shù)據(jù)制成一映像文件,其包含文件頭和一壓縮數(shù)據(jù)區(qū);此初始程序包括以下子程序(1-1)執(zhí)行一母盤讀取程序,用以將存儲(chǔ)在母盤上的硬盤參數(shù)及原始數(shù)據(jù)讀取出來(lái);及(1-2)執(zhí)行一分塊壓縮程序,用以將從該母盤上讀取出來(lái)的原始數(shù)據(jù)以分塊壓縮方式壓縮成多個(gè)壓縮數(shù)據(jù)塊;(1-3)執(zhí)行一映像文件制作程序,用以將從母盤上讀取出來(lái)的硬盤參數(shù)存儲(chǔ)至映像文件中的文件頭,并將分塊壓縮程序所輸出的壓縮數(shù)據(jù)存儲(chǔ)至該映像文件中的壓縮數(shù)據(jù)區(qū);(2)執(zhí)行一復(fù)制子盤程序,其包括以下子程序(2-1)執(zhí)行一子盤監(jiān)視程序,用以監(jiān)視子盤的總?cè)萘浚?2-2)執(zhí)行一第一比較程序,用以將子盤的總?cè)萘颗c母盤上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度作一比較;若子盤的總?cè)萘啃∮谀副P上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度,則中止程序;(2-3)執(zhí)行一第二比較程序,用以將子盤的總?cè)萘颗c母盤的總?cè)萘孔饕槐容^;(2-4)對(duì)該子盤進(jìn)行一子盤分區(qū)程序;若子盤的總?cè)萘颗c母盤的總?cè)萘肯嗟?,則執(zhí)行一第一子盤動(dòng)態(tài)分區(qū)程序,其完全按照該母盤的分區(qū)方式對(duì)該子盤作分區(qū);若子盤的總?cè)萘啃∮谀副P的總?cè)萘?,則執(zhí)行一第二子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);若子盤的總?cè)萘看笥谀副P的總?cè)萘?,則執(zhí)行一第三子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);(2-5)執(zhí)行一解壓縮程序,用以將該映像文件中的壓縮數(shù)據(jù)區(qū)中所存儲(chǔ)的壓縮數(shù)據(jù)作解壓縮處理;以及(2-6)執(zhí)行一寫(xiě)入程序,用以將解壓縮程序所輸出的解壓縮數(shù)據(jù)按照其在母盤的原分區(qū)逐一寫(xiě)入子盤上的各個(gè)對(duì)應(yīng)的分區(qū)上。
所述系統(tǒng)用以將預(yù)先安裝于一母盤上的一組原始數(shù)據(jù)復(fù)制至一子盤上;此計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制系統(tǒng)包含(a)一母盤讀取模塊,用以將存儲(chǔ)在母盤上的硬盤參數(shù)及原始數(shù)據(jù)讀取出來(lái);(b)一分塊壓縮模塊,用以對(duì)從該母盤上讀取出來(lái)的原始數(shù)據(jù)進(jìn)行一分塊壓縮處理;(c)一映像文件制作模塊,用以制作一映像文件,其包含一文件頭及一壓縮數(shù)據(jù)區(qū);其中文件頭用以存儲(chǔ)從母盤上讀取出來(lái)的硬盤參數(shù),而壓縮數(shù)據(jù)區(qū)則用以存儲(chǔ)該分塊壓縮模塊所輸出的壓縮數(shù)據(jù);(d)一子盤讀寫(xiě)模塊,其可對(duì)子盤執(zhí)行讀寫(xiě)動(dòng)作;(e)一比較模塊,可執(zhí)行一第一比較程序,用以將子盤的總?cè)萘颗c母盤上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度作一比較;若子盤的總?cè)萘啃∮谀副P上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度,則中止程序;反之則執(zhí)行一第二比較程序,用以將子盤的總?cè)萘颗c母盤的總?cè)萘孔饕槐容^;以及(f)一解壓縮模塊,用以將該映像文件中的壓縮數(shù)據(jù)區(qū)中所存儲(chǔ)的壓縮數(shù)據(jù)作一解壓縮處理;其中該子盤讀寫(xiě)模塊可進(jìn)而對(duì)該子盤進(jìn)行一子盤分區(qū)程序;若子盤的總?cè)萘颗c母盤的總?cè)萘肯嗟?,則執(zhí)行一第一子盤動(dòng)態(tài)分區(qū)程序,其完全按照該母盤的分區(qū)方式對(duì)該子盤作分區(qū);若子盤的總?cè)萘啃∮谀副P的總?cè)萘?,則執(zhí)行一第二子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);若子盤的總?cè)萘看笥谀副P的總?cè)萘?,則執(zhí)行一第三子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);完成子盤分區(qū)后,接著進(jìn)而執(zhí)行一寫(xiě)入程序,用以將該解壓縮模塊所輸出的解壓縮數(shù)據(jù)按照其在母盤的原分區(qū)逐一寫(xiě)入子盤上的各個(gè)對(duì)應(yīng)的分區(qū)上。
此方法及系統(tǒng)與公知技術(shù)不同的一項(xiàng)特征在于,此方法及系統(tǒng)是采用數(shù)據(jù)復(fù)制方式,而非公知技術(shù)所采的文件復(fù)制方式,來(lái)將母盤上的原始數(shù)據(jù)復(fù)制至子盤上;因此其可較公知技術(shù)更快速地將母盤數(shù)據(jù)復(fù)制至子盤上,并于復(fù)制過(guò)程中,可不必修改子盤的文件目錄表及文件分配表,因而可確保子盤系統(tǒng)的安全性。
為讓本發(fā)明的上述和其它目的、特征、和優(yōu)點(diǎn)能更明確易懂,下文將舉一較佳實(shí)施例,并配合附圖,詳細(xì)說(shuō)明本發(fā)明的實(shí)施例。
圖1顯示一公知的計(jì)算機(jī)硬盤復(fù)制方法的系統(tǒng)模塊示意罰;圖2顯示本發(fā)明的計(jì)算機(jī)硬盤復(fù)制方法的系統(tǒng)模塊示意圖;圖3為一流程圖,其中顯示本發(fā)明的計(jì)算機(jī)硬盤復(fù)制方法中的各個(gè)主要程序;圖4為一流程圖,其中顯示本發(fā)明的計(jì)算機(jī)硬盤復(fù)制方法中所使用的子盤動(dòng)態(tài)分區(qū)程序的詳細(xì)步驟;圖5為一示意圖,其用以顯示本發(fā)明的計(jì)算機(jī)硬盤復(fù)制方法,于子盤總?cè)萘啃∮谀副P總?cè)萘康那闆r下,子盤對(duì)應(yīng)至母盤的分區(qū)方式。
圖2顯示本發(fā)明的計(jì)算機(jī)硬盤復(fù)制方法的系統(tǒng)模塊示意圖;而圖3則顯示本發(fā)明的計(jì)算機(jī)硬盤復(fù)制方法的操作流程圖。
如圖2所示,本發(fā)明的硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng)是用以將一母盤10上所預(yù)錄的一組數(shù)據(jù)(以下稱為“原始數(shù)據(jù)”)復(fù)制至一子盤20上。母盤10上所預(yù)錄的原始數(shù)據(jù)例如為前述的Windows 98和Office 97軟件,而子盤20則例如為一個(gè)人計(jì)算機(jī)上的主硬盤。
本發(fā)明的硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng)包含二個(gè)主程序(1)初始程序;及(2)復(fù)制子盤程序。初始程序是用以將母盤數(shù)據(jù)先制成一映像文件;而在復(fù)制子盤程序中,再恢復(fù)映像文件中的母盤數(shù)據(jù),并寫(xiě)入至子盤上。(1)初始程序參照?qǐng)D1和圖2,初始程序包含以下步驟(1-1)母盤讀取程序311;(1-2)分塊壓縮程序312;以及(1-3)映像文件制作程序313。(1-1)母盤讀取程序首先利用一母盤讀取模塊110來(lái)執(zhí)行一母盤讀取程序11,用以讀取母盤10的硬盤參數(shù)及原始數(shù)據(jù)(讀取出來(lái)的數(shù)據(jù)以標(biāo)號(hào)為120的方塊表示);其中硬盤參數(shù)包括母盤10的扇區(qū)總數(shù)TOTAL_SECTORS和分區(qū)數(shù)據(jù)PARTITION_INFO。扇區(qū)總數(shù)TOTAL SECTORS代表母盤10上所有存儲(chǔ)了原始數(shù)據(jù)的扇區(qū)的總數(shù),即代表母盤10上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度;而分區(qū)數(shù)據(jù)PARTITION_INFO則代表母盤10上的分區(qū)情形。
本發(fā)明與公知技術(shù)不同的一項(xiàng)特征在于,本發(fā)明是采用數(shù)據(jù)復(fù)制方式,而非公知技術(shù)所采用的文件復(fù)制方式,來(lái)將母盤10上的原始數(shù)據(jù)讀取出來(lái)及復(fù)制至子盤20上。母盤讀取模塊110在讀取母盤10上的原始數(shù)據(jù)時(shí),是僅讀取有數(shù)據(jù)存儲(chǔ)的扇區(qū)(used sectors),而不讀取無(wú)數(shù)據(jù)存儲(chǔ)的扇區(qū)(unusedsectors)。此作法可避免所制成的映像文件中含有無(wú)用的數(shù)據(jù),而無(wú)謂地增加映像文件的長(zhǎng)度。例如若母盤10的總?cè)萘繛?.5GB,且其上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度為1GB,則映像文件應(yīng)僅包含此1GB的數(shù)據(jù)。此步驟的具體作法為,首先藉由母盤10上的各個(gè)分區(qū)的文件分配表FAT來(lái)找出各個(gè)文件的存儲(chǔ)位置,亦即存儲(chǔ)各個(gè)文件的群集(cluster)號(hào)碼;再接著根據(jù)所得到的群集號(hào)碼計(jì)算出所有存儲(chǔ)了文件數(shù)據(jù)的扇區(qū)位置;再接著便將這些扇區(qū)中所存儲(chǔ)的數(shù)據(jù)讀取出來(lái)。
從母盤10上讀取出來(lái)的原始數(shù)據(jù),是按照一預(yù)設(shè)的區(qū)塊長(zhǎng)度,分成多個(gè)區(qū)塊(blocks),如圖所示的BLOCK_1、BLOCK_2、…、BLOCK_N。(1-2)分塊壓縮程序接著利用一分塊壓縮模塊130執(zhí)行一分塊壓縮程序12,用以將從母盤10上讀取出來(lái)的各個(gè)區(qū)塊數(shù)據(jù)BLOCK_1、BLOCK_2、…、BLOCK_N作非破壞性的壓縮處理。
此步驟中所采用的壓縮方法可為任何適用的公知壓縮方法。一般而言,1GB的母盤數(shù)據(jù)經(jīng)一般的非破壞性壓縮處理后,可得到大約為0.5GB的壓縮數(shù)據(jù)。(1-3)映像文件制作程序映像文件制作程序313是將程序(1-1)所讀取出來(lái)的扇區(qū)總數(shù)TOTAL_SECTORS和分區(qū)數(shù)據(jù)PARTITION_INFO直接存入至映像文件140的文件頭(Header)141,并將程序(1-2)所得的壓縮數(shù)據(jù)存入至映像文件140的壓縮數(shù)據(jù)區(qū)142。(2)復(fù)制子盤程序復(fù)制子盤程序包含以下主要步驟(2-1)子盤監(jiān)視程序321;(2-2)第一比較程序322;(2-3)第二比較程序323;(2-4)子盤分區(qū)程序3241、3242、3243;(2-5)解壓縮程序325以及(2-5)寫(xiě)入程序326。(2-1)子盤監(jiān)視程序?qū)嶋H進(jìn)行子盤復(fù)制時(shí),首先利用一子盤讀寫(xiě)模塊210來(lái)執(zhí)行一子盤監(jiān)視程序,用以監(jiān)視子盤20的總?cè)萘俊?2-2)第一比較程序接著利用一比較模塊220來(lái)執(zhí)行一第一比較程序322,用以將子盤20的總?cè)萘颗c母盤10上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度作一比較。
若子盤20的總?cè)萘啃∮谀副P10上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度,則表示子盤20的存儲(chǔ)空間不夠,程序因此將跳至步驟3221,中止復(fù)制程序的進(jìn)行,并顯示出一報(bào)錯(cuò)信號(hào);反之,則程序跳至下一步驟323,進(jìn)行第二比較程序。(2-3)第二比較程序第二比較程序323是用以比較子盤20的總?cè)萘颗c母盤10的總?cè)萘浚逡宰鳛樽颖P20作分區(qū)的依據(jù)。若為等于,則程序跳至步驟3241,執(zhí)行一第一子盤動(dòng)態(tài)分區(qū)程序;若為小于,則程序跳至步驟3242,執(zhí)行一第二子盤動(dòng)態(tài)分區(qū)程序;而若為大于,則程序跳至步驟3243,執(zhí)行一第三子盤動(dòng)態(tài)分區(qū)程序。(2-4)子盤動(dòng)態(tài)分區(qū)程序子盤分區(qū)程序依據(jù)子盤20的總?cè)萘颗c母盤10的總?cè)萘康拇笮£P(guān)系,而分別有略為不同的作法。以下假設(shè)n 代表母盤10的分區(qū)總數(shù);NS[n] 代表母盤10的第n個(gè)分區(qū)上所存儲(chǔ)的原始數(shù)據(jù)的數(shù)量;MS[n] 代表母盤10的最大分區(qū)扇區(qū)數(shù)量;RS0[n] 代表未分區(qū)前,子盤20的第n個(gè)分區(qū)的初始預(yù)設(shè)容量值;RS[n] 代表經(jīng)分區(qū)后,子盤20的第n個(gè)分區(qū)的容量。
子盤20的總?cè)萘颗c母盤10的總?cè)萘康谋容^結(jié)果,有下面三種不同的情形。(情況-1)若子盤總?cè)萘康扔谀副P總?cè)萘咳糇颖P20的總?cè)萘康扔谀副P10的總?cè)萘?,則執(zhí)行第一動(dòng)態(tài)分區(qū)程序3241,其完全按照母盤10的原分區(qū)方式對(duì)子盤20作分區(qū)。(情況-2)若子盤總?cè)萘啃∮谀副P總?cè)萘咳糇颖P20的總?cè)萘啃∮谀副P10的總?cè)萘浚瑒t執(zhí)行第二動(dòng)態(tài)分區(qū)程序3242,其詳細(xì)步驟如圖4所示。(步驟411)首先在步驟411中,執(zhí)行以下算式XS=[子盤的總?cè)萘縘-[母盤上的原始數(shù)據(jù)的總長(zhǎng)度]其中[母盤上的原始數(shù)據(jù)的總長(zhǎng)度]=∑NS[n](步驟412)接著在步驟412中,判別以下的不等式是否為真XS>RS[n]-NS[n]?若是,則程序跳至步驟413;反之若否,則程序跳至步驟414。(步驟413)在步驟413中,執(zhí)行以下算式XS=XS-(RS[n]-NS[n]);n=n-1接著跳回至步驟412。(步驟414)在步驟414中,執(zhí)行以下算式RS[n]=RS0[n]+XSXS=0接著結(jié)束程序。
舉例來(lái)說(shuō),如圖5所示,假設(shè)母盤的總?cè)萘繛?.5,且分割成3個(gè)分區(qū),其大小分別為400MB、600MB、800MB,且其中存儲(chǔ)的有用數(shù)據(jù)分別為100MB、200MB、300BM;而子盤的總?cè)萘績(jī)H為1GB。
由于母盤上的數(shù)據(jù)總長(zhǎng)度為100MB+200BM+300MB=600MB,其仍小于子盤的總?cè)萘浚虼四副P上的有用數(shù)據(jù)仍可全部復(fù)制至此子盤上。
假設(shè)NS[n],n=1,2,3代表母盤上各個(gè)分區(qū)所存儲(chǔ)的數(shù)據(jù)的長(zhǎng)度,則NS[1]=100MB+CNS[2]=200MBNS[3]=300MB其中C為一預(yù)設(shè)常數(shù),其值代表母盤的主分區(qū)(primary partition)上所存儲(chǔ)的啟動(dòng)系統(tǒng)程序與虛擬存儲(chǔ)器數(shù)據(jù)的總長(zhǎng)度。為方便計(jì)算,較佳的作法為將C值設(shè)為比此類數(shù)據(jù)的長(zhǎng)度大的整百倍數(shù),例如為100MB或200MB。
假設(shè)XS代表子盤的總?cè)萘颗c母盤數(shù)據(jù)的總長(zhǎng)度二者之間的差值,則在C=200MB的情況下,XS=1GB-(NS[1]+NS[2]+NS[3])=1GB-(300MB+200MB+300MB)=200MB假設(shè)RS[n],n=1,2,3代表子盤利用此動(dòng)態(tài)分區(qū)方法得到的各個(gè)分區(qū)的大小,則原則上RS[1]≥NS[1]RS[2]≥NS[2]RS[3]≥NS[3]本發(fā)明的較佳實(shí)施例中,是將剩余的存儲(chǔ)空間XS以逆向分配法優(yōu)先分配至最后一個(gè)分區(qū)(亦即為第三個(gè)分區(qū)RS[3])。但由于每一個(gè)分區(qū)的容量有最大的上限值,因此XS不一定能全部分配至第n個(gè)分區(qū)RS[n];在此情況下,則接著將XS的剩余量分配至第n-1個(gè)分區(qū)RS[n-1];依此類推,直至XS全部分配完為止。
在上例中,假設(shè)子盤的剩余存儲(chǔ)空間XS=200MB可全部分配至最后一個(gè)分區(qū)RS[3],因此而得RS[1]=300MBRS[2]=200MBRS[3]=500MB接著便依此方式對(duì)子盤20作分區(qū)。(情況-3)若子盤總?cè)萘看笥谀副P總?cè)萘咳糇颖P20的總?cè)萘看笥谀副P10的總?cè)萘?,則執(zhí)行第三動(dòng)態(tài)分區(qū)程序3243,其詳細(xì)步驟如圖4所示。(步驟421)首先在步驟421中,執(zhí)行以下算式XS=[子盤的總?cè)萘縘-[母盤的總?cè)萘縘(步驟422)接著在步驟422中,判別以下的不等式是否為真
XS>MS[n]-RS[n] 若是,則程序跳至步驟423;反之若否,則程序跳至步驟426。(步驟423)在步驟423中,執(zhí)行以下算式RS[n]=MS[n]XS=XS-(MS[n]-RS[n])n=n-1接著跳回至步驟424。(步驟424)接著在步驟424中,判別以下的不等式是否為真N=0?若是,則程序跳至步驟425;反之若否,則程序跳回至步驟422。(步驟425)在步驟425中,執(zhí)行一報(bào)錯(cuò)程序。(步驟426)在步驟426中,執(zhí)行以下算式RS[n]=RS0[n]+XS接著結(jié)束程序。(2-5)解壓縮程序接著利用一解壓縮模塊230來(lái)執(zhí)行一解壓縮程序325,以將映像文件140中的壓縮數(shù)據(jù)區(qū)142中所存儲(chǔ)的壓縮數(shù)據(jù)解壓縮。(2-6)寫(xiě)入程序最后再利用子盤讀寫(xiě)模塊210來(lái)執(zhí)行最后的寫(xiě)入程序326,用以前述的解壓縮程序325所輸出的解壓縮數(shù)據(jù),按其在母盤的原分區(qū)逐一寫(xiě)入子盤20上的各個(gè)對(duì)應(yīng)的分區(qū)上。此即完成子盤20的復(fù)制。
本發(fā)明的計(jì)算機(jī)硬盤復(fù)制方法及系統(tǒng)是采用數(shù)據(jù)復(fù)制方式,而非公知技術(shù)所采用的文件復(fù)制方式,來(lái)將母盤上的原始數(shù)據(jù)復(fù)制至子盤上;因此其可較公知技術(shù)更快速地將母盤數(shù)據(jù)復(fù)制至子盤上,并在復(fù)制過(guò)程中,可不必修改子盤的文件分配表,以確保子盤系統(tǒng)的安全性。由實(shí)驗(yàn)得知。利用本發(fā)明來(lái)復(fù)制1GB的原始數(shù)據(jù),其所需的時(shí)間約為8分20秒;比較公知方法所需的10分26秒,本發(fā)明顯然較公知方法更為快速。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用以限定本發(fā)明的范圍;凡其它未脫離本發(fā)明所揭示的精神下所完成的等效變更或修飾,均應(yīng)包含在以下權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制方法,其可將預(yù)先安裝于一母盤上的一組原始數(shù)據(jù)復(fù)制至一子盤上;該計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制方法包含以下步驟(1)執(zhí)行一初始程序,用以將母盤數(shù)據(jù)制成一映像文件,其包含文件頭和一壓縮數(shù)據(jù)區(qū);此初始程序包括以下子程序(1-1)執(zhí)行一母盤讀取程序,用以將存儲(chǔ)在母盤上的硬盤參數(shù)及原始數(shù)據(jù)讀取出來(lái);及(1-2)執(zhí)行一分塊壓縮程序,用以將從該母盤上讀取出來(lái)的原始數(shù)據(jù)以分塊壓縮方式壓縮成多個(gè)壓縮數(shù)據(jù)塊;(1-3)執(zhí)行一映像文件制作程序,用以將從母盤上讀取出來(lái)的硬盤參數(shù)存儲(chǔ)至映像文件中的文件頭,并將分塊壓縮程序所輸出的壓縮數(shù)據(jù)存儲(chǔ)至該映像文件中的壓縮數(shù)據(jù)區(qū);(2)執(zhí)行一復(fù)制子盤程序,其包括以下子程序(2-1)執(zhí)行一子盤監(jiān)視程序,用以監(jiān)視子盤的總?cè)萘浚?2-2)執(zhí)行一第一比較程序,用以將子盤的總?cè)萘颗c母盤上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度作一比較;若子盤的總?cè)萘啃∮谀副P上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度,則中止程序;(2-3)執(zhí)行一第二比較程序,用以將子盤的總?cè)萘颗c母盤的總?cè)萘孔饕槐容^;(2-4)對(duì)該子盤進(jìn)行一子盤分區(qū)程序;若子盤的總?cè)萘颗c母盤的總?cè)萘肯嗟?,則執(zhí)行一第一子盤動(dòng)態(tài)分區(qū)程序,其完全按照該母盤的分區(qū)方式對(duì)該子盤作分區(qū);若子盤的總?cè)萘啃∮谀副P的總?cè)萘?,則執(zhí)行一第二子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);若子盤的總?cè)萘看笥谀副P的總?cè)萘?,則執(zhí)行一第三子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);(2-5)執(zhí)行一解壓縮程序,用以將該映像文件中的壓縮數(shù)據(jù)區(qū)中所存儲(chǔ)的壓縮數(shù)據(jù)作解壓縮處理;以及(2-6)執(zhí)行一寫(xiě)入程序,用以將解壓縮程序所輸出的解壓縮數(shù)據(jù)按照其在母盤的原分區(qū)逐一寫(xiě)入子盤上的各個(gè)對(duì)應(yīng)的分區(qū)上。
2.如權(quán)利要求1所述的計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制方法,其中在所述步驟(1-1)中,將存儲(chǔ)在母盤上的原始數(shù)據(jù)讀取出來(lái)的程序包括以下步驟利用文件分配表找出母盤上存儲(chǔ)原始數(shù)據(jù)的所有群集;利用所得到的群集,求得母盤上所有存儲(chǔ)原始數(shù)據(jù)的扇區(qū);以及從這些扇區(qū)中,將母盤上的原始數(shù)據(jù)讀取出來(lái)。
3.如權(quán)利要求1所述的計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制方法,其中該第二子盤動(dòng)態(tài)分區(qū)程序是將子盤的剩余存儲(chǔ)空間以一逆向分配法優(yōu)先分配至最后一個(gè)分區(qū);未分配完則分配至前一個(gè)分區(qū);依此類推,直至剩余存儲(chǔ)空間全部分配完為止。
4.一種計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制系統(tǒng),用以將預(yù)先安裝于一母盤上的一組原始數(shù)據(jù)復(fù)制至一子盤上;此計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制系統(tǒng)包含(a)一母盤讀取模塊,用以將存儲(chǔ)在母盤上的硬盤參數(shù)及原始數(shù)據(jù)讀取出來(lái);(b)一分塊壓縮模塊,用以對(duì)從該母盤上讀取出來(lái)的原始數(shù)據(jù)進(jìn)行一分塊壓縮處理;(c)一映像文件制作模塊,用以制作一映像文件,其包含一文件頭及一壓縮數(shù)據(jù)區(qū);其中文件頭用以存儲(chǔ)從母盤上讀取出來(lái)的硬盤參數(shù),而壓縮數(shù)據(jù)區(qū)則用以存儲(chǔ)該分塊壓縮模塊所輸出的壓縮數(shù)據(jù);(d)一子盤讀寫(xiě)模塊,其可對(duì)子盤執(zhí)行讀寫(xiě)動(dòng)作;(e)一比較模塊,可執(zhí)行一第一比較程序,用以將子盤的總?cè)萘颗c母盤上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度作一比較;若子盤的總?cè)萘啃∮谀副P上所存儲(chǔ)的原始數(shù)據(jù)的總長(zhǎng)度,則中止程序;反之則執(zhí)行一第二比較程序,用以將子盤的總?cè)萘颗c母盤的總?cè)萘孔饕槐容^;以及(f)一解壓縮模塊,用以將該映像文件中的壓縮數(shù)據(jù)區(qū)中所存儲(chǔ)的壓縮數(shù)據(jù)作一解壓縮處理;其中該子盤讀寫(xiě)模塊可進(jìn)而對(duì)該子盤進(jìn)行一子盤分區(qū)程序;若子盤的總?cè)萘颗c母盤的總?cè)萘肯嗟龋瑒t執(zhí)行一第一子盤動(dòng)態(tài)分區(qū)程序,其完全按照該母盤的分區(qū)方式對(duì)該子盤作分區(qū);若子盤的總?cè)萘啃∮谀副P的總?cè)萘?,則執(zhí)行一第二子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);若子盤的總?cè)萘看笥谀副P的總?cè)萘浚瑒t執(zhí)行一第三子盤動(dòng)態(tài)分區(qū)程序,其將子盤的分區(qū)首先設(shè)定為與母盤的各個(gè)分區(qū)的數(shù)據(jù)量相等,再接著將子盤的剩余存儲(chǔ)空間分配至各個(gè)分區(qū);完成子盤分區(qū)后,接著進(jìn)而執(zhí)行一寫(xiě)入程序,用以將該解壓縮模塊所輸出的解壓縮數(shù)據(jù)按照其在母盤的原分區(qū)逐一寫(xiě)入子盤上的各個(gè)對(duì)應(yīng)的分區(qū)上。
5.如權(quán)利要求4所述的計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制系統(tǒng),其中該母盤讀取模塊將存儲(chǔ)于母盤上的原始數(shù)據(jù)讀取出來(lái)的程序包括以下步驟利用文件分配表找出母盤上存儲(chǔ)原始數(shù)據(jù)的所有群集。利用所得到的群集,求得母盤上所有存儲(chǔ)原始數(shù)據(jù)的扇區(qū);以及從這些扇區(qū)中,將母盤上的原始數(shù)據(jù)讀取出來(lái)。
6.如權(quán)利要求4所述的計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制系統(tǒng),其中該子盤讀寫(xiě)模塊所執(zhí)行的第二子盤動(dòng)態(tài)分區(qū)程序中是將子盤的剩余存儲(chǔ)空間以一逆向分配法優(yōu)先分配至最后一個(gè)分區(qū);未分配完則分配至前一個(gè)分區(qū);依此類推,直至剩余存儲(chǔ)空間全部分配完為止。
全文摘要
一種計(jì)算機(jī)硬盤數(shù)據(jù)復(fù)制方法及系統(tǒng),用于計(jì)算機(jī)生產(chǎn),將特定軟件程序快速?gòu)?fù)制至生產(chǎn)線上的每臺(tái)計(jì)算機(jī)的硬盤上;或用于一般硬盤數(shù)據(jù)備份,可在硬盤數(shù)據(jù)損毀時(shí),將原始數(shù)據(jù)恢復(fù)至硬盤上。此方法及系統(tǒng)與公知技術(shù)不同的一項(xiàng)特征在于,采用數(shù)據(jù)復(fù)制方式,而非公知技術(shù)所采用的文件復(fù)制方式,將母盤上的原始數(shù)據(jù)復(fù)制至子盤上;因此其比公知技術(shù)更快地將母盤數(shù)據(jù)復(fù)制至子盤上,并在復(fù)制過(guò)程中,不必修改子盤的文件目錄表及文件分配表,因而確保子盤系統(tǒng)的安全性。
文檔編號(hào)G06F12/00GK1310389SQ0010238
公開(kāi)日2001年8月29日 申請(qǐng)日期2000年2月21日 優(yōu)先權(quán)日2000年2月21日
發(fā)明者林光信, 陳玄同, 周洪喜, 史永軍 申請(qǐng)人:英業(yè)達(dá)股份有限公司