備份與還原Windows操作系統(tǒng)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及Windows操作系統(tǒng)的備份與還原技術(shù),特別涉及一種利用FreeBSD技術(shù)備份與還原Windows操作系統(tǒng)的方法。
【背景技術(shù)】
[0002](一)Windows操作系統(tǒng)的備份與還原
常見的Windows操作系統(tǒng)的備份與還原技術(shù)主要有兩種:一種是Windows操作系統(tǒng)自帶的“系統(tǒng)還原”技術(shù),另一種是基于Ghost的各種“一鍵Ghost”技術(shù)。
[0003]Windows自帶的“系統(tǒng)還原”技術(shù)有嚴重的先天缺陷。因為使用“系統(tǒng)還原”的前提是能夠正常啟動Windows系統(tǒng),所以一旦Windows系統(tǒng)自身無法正常啟動(例如某些關(guān)鍵文件被破壞),這項技術(shù)也就失效了。
[0004]所有的“一鍵Ghost”在本質(zhì)上都由如下三個部分組成:
1.一個虛擬光盤鏡像(iso文件)或虛擬軟盤鏡像(img文件)。其中包含了獨立的Windows或DOS環(huán)境以及Ghost工具。
[0005]2."GRUB4D0S"弓丨導(dǎo)管理器。由于"GRUB4D0S"弓丨導(dǎo)管理器支持一種獨特的〃磁盤仿真〃功能,可以將iso文件或img文件作為虛擬光盤或虛擬軟盤啟動,從而為“一鍵Ghost”提供了至關(guān)重要的獨立Windows或DOS環(huán)境,而其他引導(dǎo)管理器都不具備〃磁盤仿真〃功能,因此所有的“一鍵Ghost”都無一例外的使用了 "GRUB4D0S"引導(dǎo)管理器。
[0006]3.一個用來保存?zhèn)浞菸募腘TFS或FAT文件系統(tǒng)。通常是C盤之外的其他磁盤分區(qū)(一般默認D盤)。
[0007]“一鍵Ghost”通過在一個獨立的Windows或DOS環(huán)境中運行Ghost程序,不再依賴于電腦上原有的Windows系統(tǒng),巧妙的避開了“系統(tǒng)還原”技術(shù)的先天性缺陷。因此,“一鍵Ghost”在實踐中得到了廣泛的應(yīng)用。但是這種技術(shù)仍然存在一些無法克服的缺點:
1.安全性不佳。一方面,由于“一鍵Ghost”必須在Windows環(huán)境中安裝,所以其自身(iso或img文件)只能安裝在NTFS或FAT文件系統(tǒng)上(一般默認C盤),另一方面,由于Ghost程序也需要在Windows或DOS環(huán)境中運行,所以備份文件也只能存儲在NTFS或FAT文件系統(tǒng)上(一般默認D盤)。因此在Windows正常使用的過程中,“一鍵Ghost”自身(iso或img文件)與備份文件(gho文件)都有可能被誤刪除或者被惡意程序破壞。雖然在實踐中,各種“一鍵Ghost ”都會將這些文件加上隱藏屬性,但是依然不能從根本上杜絕這種風(fēng)險。從根本上說,所有基于Windows或DOS系統(tǒng)的備份與還原技術(shù),都存在這個缺點。
[0008]2.數(shù)據(jù)壓縮技術(shù)不理想。Ghost在備份時使用了 1993年發(fā)明的deflate壓縮算法,這種壓縮算法重在節(jié)約CPU資源,但是壓縮效果比較差。隨著CPU性能的突飛猛進,應(yīng)該使用一種壓縮率更高、更能充分利用現(xiàn)今強大CPU性能的壓縮算法。同時由于Ghost僅使用單線程壓縮,因此也不能充分利用現(xiàn)今多核CPU的并行計算能力。
[0009]3.智能化程度低,不適合大規(guī)模場景下的使用?!耙绘IGhost”是面向個人用戶設(shè)計的產(chǎn)品,并未考慮規(guī)模較大的企業(yè)環(huán)境,主要問題在于備份文件與目標機器之間的匹配問題。假設(shè)某公司有1000臺電腦,維護人員在給這1000臺電腦進行Ghost備份時必須明確的區(qū)分每臺電腦的備份文件(通常是使用不同的文件名)。而在還原時又要根據(jù)每臺電腦的標識(例如資產(chǎn)編號),找到與這臺電腦匹配的備份文件,然后將它們還原到對應(yīng)的電腦上。由于數(shù)量巨大,靠人工手動匹配,是很容易出錯的,所以缺乏自動化的匹配機制使得維護人員的工作量與錯誤率大大增加。
[0010]4.不支持最新的UEFI技術(shù)規(guī)范。這個問題的根源并不在Ghost本身,而是在于各種“一鍵Ghost”所使用的〃GRUB4D0S〃引導(dǎo)管理器。由于〃GRUB4D0S〃引導(dǎo)管理器自身并不支持UEFI技術(shù)規(guī)范,所以無法在UEFI平臺上啟動,而各種“一鍵Ghost”又必須依賴于"GRUB4D0S"所獨有的〃磁盤仿真〃功能,從而間接造成了各種“一鍵Ghost”在事實上無法在純UEFI平臺上工作的冏境。進一步深入來說,"GRUB4D0S"所獨有的〃磁盤仿真〃功能其實依賴的是16位x86實模式B1S所提供的直接中斷調(diào)用功能,而UEFI規(guī)范并不支持古老的16位x86實模式,所以自然也就不支持直接中斷調(diào)用功能。因此"GRUB4D0S"所獨有的〃磁盤仿真〃功能從根本上說,是不可能移植到UEFI平臺的。由于B1S正逐漸被UEFI取代,并且很多最新的主板已經(jīng)不再兼容傳統(tǒng)的B1S模式,所以各種“一鍵Ghost”的適應(yīng)性正在不斷降低。
[0011]5.Ghost原生英文界面,對中文用戶不友好。
[0012](二)FreeBSD操作系統(tǒng)的中f顯示
首先簡要介紹一下FreeBSD內(nèi)核在控制臺上顯示字符的原理。
[0013]FreeBSD控制臺有兩種:文本模式控制臺與圖形模式控制臺。
[0014]文本模式控制臺只能顯示VGA顯卡內(nèi)嵌的256個字符,且屏幕大小固定為80x25個字符。當內(nèi)核想要顯示一個字符的時候,只需將字符的代碼(1字節(jié))和屬性(1字節(jié))寫入字符緩沖區(qū)的相應(yīng)地址即可。換句話說,在文本模式下,F(xiàn)reeBSD內(nèi)核只能告訴顯卡〃以XX屬性(例如黑底白字)顯示代碼為XX的字符(例如’A’)",而不能決定字符在屏幕上的形狀(例如是Fixed字體還是Courier字體),更不能顯示VGA顯卡內(nèi)嵌的256個字符以外的其他字符。
[0015]圖形模式控制臺在FreeBSD內(nèi)核中是通過幀緩沖模塊實現(xiàn)的。通過幀緩沖模塊,F(xiàn)reeBSD內(nèi)核可以直接操作幀緩沖設(shè)備(也就是屏幕的抽象),進而在屏幕上顯示任意形狀的圖像。換句話說,在圖形模式下,屏幕被抽象為一段內(nèi)存(幀緩沖區(qū)),F(xiàn)reeBSD內(nèi)核通過控制幀緩沖區(qū)的內(nèi)容,即可精確的控制屏幕上的每一個像素。因此,為了在圖形模式控制臺上顯示字符,F(xiàn)reeBSD內(nèi)核需要首先將字符轉(zhuǎn)換為位圖,然后再將位圖寫入幀緩沖區(qū),即可將字符(位圖)呈現(xiàn)于屏幕。
[0016]為了將字符轉(zhuǎn)化為位圖,F(xiàn)reeBSD內(nèi)核內(nèi)嵌了點陣字體,而字體實際上是一個二維點陣的數(shù)組。具體說來,每個字符都是一個8x16像素的二維點陣,有筆畫的像素對應(yīng)的bit為〃1〃,無筆畫的像素對應(yīng)的bit為〃0〃,這樣就將字符(也就是位圖)數(shù)字化了。
[0017]顯然,想要顯示復(fù)雜的中文,只能使用圖形模式控制臺。
[0018]然而由于FreeBSD內(nèi)核的圖形模式控制臺存在設(shè)計上的缺陷(在【具體實施方式】部分有詳細的說明),現(xiàn)實的實際情況是,F(xiàn)reeBSD操作系統(tǒng)的內(nèi)核并不支持直接在控制臺上顯示中文。如果想要在控制臺上顯示中文,必須額外使用中文外掛程序,例如zhcon或fbterm。但使用外掛程序有如下缺點: 1.需要額外的用戶空間程序,且依賴關(guān)系復(fù)雜,不適合用于嵌入式系統(tǒng)。嵌入式系統(tǒng)希望軟件結(jié)構(gòu)越簡單越好,最好是除操作系統(tǒng)內(nèi)核外,再外加一個用戶空間程序即可。但是為了顯示中文,不但需要額外加上中文外掛程序,還需要加上許多外掛程序運行時所需要的函數(shù)庫以及中文字體。這顯然增加了系統(tǒng)的復(fù)雜性。
[0019]2.可能會與其他用戶空間程序沖突,兼容性不佳。因為中文外掛程序需要占用幀緩沖設(shè)備,因此會與同樣使用幀緩沖設(shè)備的其他程序(例如w3m)發(fā)生沖突,從而造成兼容性故障。
[0020]要想從根本上解決上述兩個缺點,必須將中文的顯示支持移入到內(nèi)核空間中。
【發(fā)明內(nèi)容】
[0021]針對上述技術(shù)中存在的不足之處,本發(fā)明提供一種結(jié)構(gòu)簡單、操作方便的備份與還原Windows操作系統(tǒng)的方法。
[0022]為了達到上述目的,本發(fā)明一種備份與還原Windows操作系統(tǒng)的方法,包括以下控制步驟:
S1、FreeBSD內(nèi)核中文化:向FreeBSD內(nèi)核中添加中文字體,并修改FreeBSD內(nèi)核中的字體獲取函數(shù),以實現(xiàn)內(nèi)核級的中文顯示支持;
其中,S1的FreeBSD內(nèi)核中文化處理具體包括以下步驟:
511、嵌入中文字體:向內(nèi)核中添加中文點陣字體,將一個漢字劈為左右兩個8X16像素的二維點陣,從而讓每半個漢字等價于一個西文字符;
512、分配雙倍內(nèi)存:保持內(nèi)核中原有的所有數(shù)據(jù)結(jié)構(gòu)與變量定義不變,特別是用于保