專利名稱:計算機硬盤數(shù)據快速保護與恢復方法
技術領域:
本發(fā)明涉及一種硬盤數(shù)據快速保護與恢復方法,具體而言,系涉及一種可快速保護與恢復硬盤數(shù)據,并且是一種可實現(xiàn)即插即用不需要浪費硬盤空間的方法。
目前,隨著信息社會的發(fā)展,計算機應用日益普及,各種應用軟件甚至操作系統(tǒng)也日益復雜龐大,稍有不慎,或使用者對軟件不很熟悉,計算機經常死機或數(shù)據被破壞;同時,計算機病毒也層出不窮,各種“黑客”也迅速增多,對計算機的正常使用構成了很大的威脅。為了保護硬盤數(shù)據,傳統(tǒng)的做法大多使用如軟盤、活動硬盤、可插寫光驅、MO、磁帶機等存貯介質,對硬盤數(shù)據進行備份。但是由于數(shù)據量龐大,耗財耗力,使用非常麻煩。另一種方式是采用像“再生卡”、“還原卡”之類的硬件插卡,但是類似硬件大都采用“硬盤分區(qū)相互備份”的辦法,極大地浪費了硬盤空間。所以需要研制一種經濟實用、又能快速實現(xiàn)硬盤數(shù)據保護與恢復的產品(方法)。本發(fā)明為這種產品的問世提供了強有力的技術保障。
因此本發(fā)明的目的在于提供一種可迅速保存與恢復硬盤數(shù)據,又不浪費硬盤空間的方法,使用戶可以放心的、“隨心所欲”地使用計算機。
為了實現(xiàn)本發(fā)明之上述目的,本發(fā)明所提供的方法包括下列步驟(1)遍歷硬盤分區(qū)表,找出當前硬盤上所有已劃分的分區(qū),逐一將該分區(qū)的起始柱面數(shù)、磁頭、扇區(qū)以及總扇區(qū)數(shù)登記在數(shù)據結構PartitionDisk中,特別是對于FAT16和FAT32的分區(qū),留作后面計算使用。
(2)遍歷每一個FAT16和FAT32分區(qū)的FAT表(即文件分配表,記錄了每一個文件所占用的硬盤情況),如果FAT表項為“0”,表明該“簇”是自由空間,沒有存放任何數(shù)據;否則,表明該“簇”已經存放了數(shù)據。一個簇代表了硬盤上若干個扇區(qū),因此可以推算出整個硬盤的每個扇區(qū)是否已經存放了有用的數(shù)據,用一個標志位就可以記錄下這種情況Free→表示沒有有用的數(shù)據(即空余空間);Oldinfo→表示已經存在原有數(shù)據。
(3)根據第(2)步得到的標志位可以將整個硬盤虛擬為兩大部分,一部分是“原有數(shù)據區(qū)”,是所有Oldinfo的集合;一部分是“自由空間區(qū)”,是所有Free的集合。以下的各部分操作均有相應算法避免對“原有數(shù)據區(qū)”的刪改,因此自然而然就實現(xiàn)了對數(shù)據的保護。
(4)截獲原有的BIOS中斷向量INT13h,掛上以本方法改寫的新的INT13h中斷,對所有經過INT13h的讀寫盤操作進行新的“影射”處理。在沒有更換INT13h前,讀寫硬盤的影射關系是“一對一”的關系,即操作系統(tǒng)或應用程序試圖訪問某一扇區(qū),就驅動硬盤讀寫該扇區(qū),而本發(fā)明的獨到之處在于打破了此固定思維邏輯,影射關系是“一對X”的關系,X要經過本方法計算而出,即操作系統(tǒng)或應用程序試圖訪問某一扇區(qū),但并不一定直接讓它讀寫該扇區(qū),而是經過計算后,可能讓其訪問另一扇區(qū),這便是本發(fā)明之核心。下面第(5)步為說明其具體影射關系。
(5)如
圖1所示,經過以上步驟,硬盤被虛擬為“原有數(shù)據區(qū)”和“自由空間區(qū)”兩大部分。圖中的小方塊代表“原有數(shù)據區(qū)”中的某一個扇區(qū),現(xiàn)舉例描述本發(fā)明的實現(xiàn)步驟[示例1]圖1中,按順序依此做四步操作,分別代表操作系統(tǒng)或應用軟件對硬盤“原有數(shù)據”的訪問第1步讀某一扇區(qū)(位于“原有數(shù)據區(qū)”),將該扇區(qū)標記為X;第2步寫X;第3步再次讀X;第4步再次寫X;本發(fā)明利用截獲的INT13h中斷,以上四步對硬盤的訪問將依次被影射為第1步讀X,→則直接讀X即可;第2步寫X;→則①在“自由空間”中動態(tài)分配一個扇區(qū)Y;②將Y登記為Otheralloc;③將X的標志指向Y,將X登記為Y;④寫數(shù)據到Y(注意并非X);第3步再次讀X;→則讀Y(注意并非X);第4步再次寫X;→則寫Y(注意并非X);從以上四步可以看出,本發(fā)明打破了“一對一”的影射邏輯,通過動態(tài)分配,實現(xiàn)“一對X”的特殊影射,這就是本發(fā)明的獨到之處。乘示例1已知Y=Otheralloc,按順序依次做四步操作,代表操作系統(tǒng)或應用軟件對硬盤的訪問(請參照圖2)。
第5步讀Y;第6步寫Y;
第7步再次讀Y;第8步再次寫Y;本發(fā)明利用截獲的INT13h中斷,以上四步對硬盤的訪問將依次被影射為第5步讀Y;→則直接讀Y即可;第6步寫Y;→則①在“自由空間”中動態(tài)分配一個扇區(qū)Z=Free;②將Z登記為Otheralloc,即Z=Otheralloc;③將Y的標志指向Z,即Y=Z;④寫數(shù)據到Z(注意并非Y);第7步再次讀Y;→則讀Z(注意并非Y);第8步再次寫Y;→則寫Z(注意并非Y);從以上四步可以看出,對于Otheralloc的影射關系類似于Oldinfo。乘示例1、示例2已知A=Free,按順序依次做四步操作,代表操作系統(tǒng)或應用軟件對硬盤的訪問(請參照圖3)。
第9步讀A;第10步寫A;第11步再次讀A;第12步再次寫A;本發(fā)明利用截獲的INT13h中斷,以上四步對硬盤的訪問將依次被影射為第9步讀A;→則直接讀A即可;第10步寫A;→則①將A登記為Selfalloc,即A=Selfalloc;②寫數(shù)據到A(直接寫A);第11步再次讀A;→則直接讀A;第12步再次寫A;→則直接寫A;從以上四步可以看出,對于Free的訪問是“一對一”的關系,僅僅是登記A=Selfalloc以防止被示例1、示例2動態(tài)分配。
⑥綜合⑤所描述的情況,整理成下表所描述的規(guī)則
上表所描述的規(guī)則是本發(fā)明的實施核心。
⑦當需要恢復原有數(shù)據時,由于本方法不曾刪改原有數(shù)據區(qū)的任何數(shù)據,故而使得恢復原有數(shù)據成為可能。即只需重新清空標志位(只剩下Oldinfo和Free),其它狀態(tài)皆消失,立即就實現(xiàn)了數(shù)據的快速恢復。即使曾經對硬盤做過極復雜的操作,也會因為標志位的清空而于瞬間還原。
⑧當需要保護原有數(shù)據時,由于某一扇區(qū)的標志位被改為X,則只需將X的數(shù)據搬移回原處即可。然后進入①,重新計算所有標志位。這樣便實現(xiàn)了硬盤數(shù)據的快速保護。
⑨由于本方法是采用動態(tài)分配“自由空間區(qū)”來實現(xiàn)規(guī)則⑥的,對于應用程序而言,此規(guī)則是透明的。即應用程序并不知道有“自由空間”已經被分配占用,因而用戶不能察覺空間的變化,對用戶而言,并沒有浪費(占用)硬盤空間。這便是本發(fā)明的重大優(yōu)點之一。另外,由于本方法采用的是掃描硬盤分區(qū)表的方法,只要是FAT文件結構就能實現(xiàn)即插即用,不需要重新劃分硬盤(重分區(qū)),亦即并不破壞硬盤本來數(shù)據。
本專利之實施實體本發(fā)明可以應用于“電腦保護卡”或“電腦保護軟件”上,卡或軟件是本發(fā)明的實施實體,通過截獲INT13h具體實現(xiàn),而⑥所述之規(guī)則則是本發(fā)明的核心。實施流程見圖4(本方法之實施流程圖)。
權利要求
一種計算機硬盤數(shù)據快速保護與恢復方法,該方法包括以下步驟(1)遍歷硬盤分區(qū)表;(2)遍歷每一個FAT16和FAT32分區(qū)的FAT表,生成標志位數(shù)據集;(3)根據標志位將整個硬盤虛擬為“原有數(shù)據區(qū)”(所有Oldinfo的集合)和“自由空間區(qū)”(所有Free的集合)兩大部分;(4)截獲原有的BIOS中斷向量INT13h,掛接新的INT13h中斷,對所有經過INT13h的讀寫盤操作進行新的“映射”處理,然后交給原來的BIOS中斷向量INT13h進行數(shù)據讀寫,以避免“原有數(shù)據區(qū)”被破壞;(5)如果要恢復原有數(shù)據,只需重新初始化標志集;(6)如果要保存當前數(shù)據,只需根據標志位的改變將被搬移(經“映射”處理過)的扇區(qū)中的數(shù)據拷貝回原處即可;在步驟(1)中,找出當前硬盤上的所有分區(qū),逐一將各分區(qū)的起始柱面數(shù)、磁頭、扇區(qū)及總扇區(qū)數(shù)登記在數(shù)據結構PartitionDisk中;在步驟(2)中,如果FAT表項為“0”,在標志集中用Free標記;否則,用Oldinfo標記。
全文摘要
本發(fā)明系一種計算機硬盤數(shù)據保護與恢復方法:遍歷硬盤上所有分區(qū)表,對于FAT16和FAT32分區(qū),逐一檢驗每個簇是否已經記錄有有效數(shù)據,并將之登記在數(shù)據結構中,然后將所有空閑簇虛擬為一整塊空余的磁道空間,截獲INT13中斷向量,將所有操作系統(tǒng)及應用軟件對硬盤的訪問進行適當轉換,及時予以動態(tài)分配虛擬硬盤空間,使所有操作不會破壞原有數(shù)據,從而實現(xiàn)了對數(shù)據的保護;當恢復時,只要初始化轉換對應關系,便能立即恢復原有數(shù)據。因此,本方法能迅速有效地保護和恢復硬盤數(shù)據,并且不浪費硬盤空間。
文檔編號G06F12/16GK1225476SQ9911570
公開日1999年8月11日 申請日期1999年1月12日 優(yōu)先權日1999年1月12日
發(fā)明者李增勝 申請人:李增勝