封裝與部署研究論文

時間:2022-03-17 05:27:00

導(dǎo)語:封裝與部署研究論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

封裝與部署研究論文

前言:從Windows95到現(xiàn)在的WindowsVista,Windows優(yōu)秀的圖形界面和可操作性,贏得了目前廣泛的使用人群。雖然Windows各方面性能,特別是穩(wěn)定性方面,依然有所不及Unix、Linux這些高穩(wěn)定性的系統(tǒng),但是它仍然不可否認(rèn)的成為當(dāng)前使用范圍最廣的操作系統(tǒng)。

但是Windows發(fā)展了整整10于個年頭,雖然Windows的性能在不斷增強(qiáng)和完善,但是系統(tǒng)安裝的速度依然是十分緩慢且讓人頭疼。雖然2006年底推出的WindowsVista憑借微軟的新技術(shù)ImageX,可以在短短20分鐘內(nèi)安裝10幾G左右的文件,但是由于WindowsVista對計算機(jī)硬件要求較高,軟件兼容性尚不理想,所以未得到最好的普及,目前使用最廣泛的Windows操作系統(tǒng),依然是WindowsXP。

WindowsXP的安裝時間在約20~30分鐘左右,這還不算更新Windows安全補丁、系統(tǒng)優(yōu)化以及軟件安裝的時間,平均來算,要完全安裝一個可用的(包含常用補丁和軟件,以及必要的系統(tǒng)優(yōu)化)WindowsXP操作系統(tǒng),至少需要1個小時左右的時間。

對于做硬件維護(hù)的人們來講,系統(tǒng)的這個安裝和調(diào)試時間無論如何都是不能被很好接受的事實。即使硬件維護(hù)人員可以勉強(qiáng)接受這個安裝時間,很多情況下,要使用計算機(jī)來辦公的人員更難接受這個漫長而浪費時間的過程。這的確和高效率的社會結(jié)構(gòu)不符,和高節(jié)奏的社會工作生活更不相符。

一直在探尋一種方法,在于如何高效的進(jìn)行系統(tǒng)的維護(hù)乃至重新安裝,如何把原來近1小時才能完成的繁雜工作控制在15分鐘以內(nèi)完成。

為解決系統(tǒng)安裝過于繁雜耗時的問題,我首先考慮到的是利用微軟自己的所謂“封裝部署工具”(Sysprep)。

所謂封裝部署,是微軟為大企業(yè)用戶提供的一種結(jié)構(gòu)化的部署操作系統(tǒng)的工具。可以在一臺計算機(jī)上把已經(jīng)做好各種調(diào)試的系統(tǒng)進(jìn)行再封裝,封裝完畢的系統(tǒng),可以部署到其他計算機(jī)中,部署時間相當(dāng)?shù)亩?,大概僅僅5~6分鐘,極大的提高對計算機(jī)系統(tǒng)的維護(hù)效率。

但是封裝部署是有條件的,即僅適用于封裝的源計算機(jī)和用于部署的目標(biāo)計算機(jī)必須具有相同硬件抽象層(HAL),即不相同硬件配置的機(jī)器不能互相部署對方機(jī)器上封裝好的操作系統(tǒng),這樣就會對當(dāng)今繁雜的計算機(jī)硬件配置中進(jìn)行封裝和部署造成極大的障礙。

通過對微軟的操作系統(tǒng)Longhron各內(nèi)測版本進(jìn)行啟動過程的跟蹤,發(fā)現(xiàn)微軟在Longhron啟動參數(shù)中提供了/detecthal接口,依靠這個接口,我們可以讓計算機(jī)在啟動時自動檢測硬件抽象層(HAL),通過了這個檢測,封裝完的系統(tǒng)在部署到不同的計算機(jī)中時,就不會出現(xiàn)由于硬件抽象層(HAL)的不同而造成的系統(tǒng)在部署過程中由于對硬件的依賴而造成的種種非正常運行。

這個研究成功后,一個被調(diào)試好的系統(tǒng)(包括系統(tǒng)補丁追加、系統(tǒng)優(yōu)化、常用軟件安裝)可以在進(jìn)行封裝后,高效的部署到任何硬件配置的其他計算機(jī)上,極大的縮短進(jìn)行計算機(jī)維護(hù)的時間,極大的提高計算機(jī)維護(hù)的效率。

1.Base基本封裝與部署的實現(xiàn)

1.1系統(tǒng)的封裝與部署

系統(tǒng)的封裝與部署,這個概念出自Microsoft(微軟)。在Microsoft的Windows系列系統(tǒng)光盤中,包含企業(yè)部署工具(Deploy.cab),Deploy中包括了幾個可供管理員和IT專業(yè)人士用來將Windows部署到組織中多臺計算機(jī)上的工具。

Deploy.cab包括:Setupmgr.exe、Sysprep.exe、Cvtarea.exe、。

Setupmgr.exe,中文譯為:安裝管理器,為預(yù)安裝Microsoft操作系統(tǒng)和各種應(yīng)用程序自動創(chuàng)建和修改分布共享的向?qū)?。簡單來說,這個工具主要是用來自動創(chuàng)建安裝Windows操作系統(tǒng)的自動應(yīng)答文件,可以讓系統(tǒng)的安裝做到“無人職守”,即在系統(tǒng)的安裝過程中,無需任何人為的干預(yù)。

Sysprep.exe,中文譯為:系統(tǒng)準(zhǔn)備,準(zhǔn)備計算機(jī)硬盤,以便進(jìn)行磁盤復(fù)制、審核并交付客戶。在分發(fā)前必須運行Sysprep以重新封裝計算機(jī)。Sysprep包含下列組件:Sysprep.exe、Setupcl.exe、Factory.exe、Sysprep.inf和Winbom.ini。應(yīng)用程序文件(Sysprep.exe、Setupcl.exe和Factory.exe)是必需的,而且它們互相依存。簡單來說,這個工具用于重新封裝已經(jīng)在計算機(jī)上安裝好的系統(tǒng),封裝完畢的映像可以通過介質(zhì)復(fù)制到其他計算機(jī)上,當(dāng)獲取封裝好的映像的計算機(jī)啟動時,Sysprep.exe將調(diào)用%Windir%\System32\setup.exe在獲取映像的計算機(jī)中重新部署系統(tǒng)。這種部署類似于直接安裝系統(tǒng),但是速度要比正常安裝快許多倍。

Cvtarea.exe,一個用于在FAT32或FAT文件系統(tǒng)上創(chuàng)建文件并分析那些文件放置情況的靈活工具。使用Cvtarea工具,您可以創(chuàng)建連續(xù)的文件并將其放在磁盤上的特定位置。

,創(chuàng)建FAT32卷,該卷中的簇以某種優(yōu)化方法取整,以便在以后將其轉(zhuǎn)換為NTFS文件系統(tǒng)格式。

總體而言,隨著技術(shù)的發(fā)展,可以替代Cvtarea.exe和的工具出現(xiàn)了許多,Setupmgr.exe用于生成無人職守安裝應(yīng)答文件,Sysprep.exe是用于系統(tǒng)封裝的主要工具。

1.2Setupmgr

獲得封裝好的系統(tǒng)映像的計算機(jī),第一次啟動時,將會自行進(jìn)行系統(tǒng)部署,系統(tǒng)部署過程中,會提問用戶有關(guān)產(chǎn)品密鑰、時區(qū)、計算機(jī)名稱、管理員密碼等等,這個和普通的系統(tǒng)安裝的步驟一樣(當(dāng)然,比普通安裝快速的多),每次都去輸入這些,無非會降低工作效率。

利用Setupmgr.exe,可以為系統(tǒng)部署創(chuàng)建一份自動應(yīng)答文件,當(dāng)系統(tǒng)部署時碰到各種需要用戶來確認(rèn)的信息時,直接去這份自動應(yīng)答文件中尋找預(yù)先規(guī)定好的答案,而無需提示用戶輸入。

Setupmgr.ex的使用方法十分簡單,安裝提示一步步寫下去即可。

寫完后,即可單擊“完成”,這樣就可以完成所有有關(guān)無人職守安裝模式的設(shè)定了。設(shè)定完成后,系統(tǒng)會自動生成Sysprep.inf文件,這個文件中記錄了所有有關(guān)自動應(yīng)答的答案。

部署時,sysprep.inf置于%systemdrive%\Sysprep文件夾中,即可執(zhí)行無人職守的部署安裝。

1.3Sysprep

1.3.1系統(tǒng)封裝部署基本流程

一般流程為:

1>常規(guī)安裝Windows到被設(shè)置為啟動的硬盤的第一分區(qū)(一般為C盤);

2>對系統(tǒng)做應(yīng)有的系統(tǒng)補丁添加、驅(qū)動安裝、系統(tǒng)優(yōu)化調(diào)整、常用軟件安裝等;

3>在C盤根目錄下創(chuàng)建Sysprep文件夾,放入企業(yè)部署工具(Deploy.cab)中的相應(yīng)各文件;

4>使用Setupmgr.exe創(chuàng)建自動應(yīng)答文件;

5>運行Sysprep.exe來封裝當(dāng)前系統(tǒng)為系統(tǒng)映像;

6>關(guān)閉計算機(jī),利用第三方軟件復(fù)制下這個系統(tǒng)映像(C盤全部),一般使用GHOST;

7>利用網(wǎng)絡(luò)或其他介質(zhì)(光盤)復(fù)制該映像到其他計算機(jī)進(jìn)行部署。

1.3.2系統(tǒng)封裝

做完上節(jié)中步驟的前4步,就可以進(jìn)行對系統(tǒng)的封裝了,運行C盤根目錄下創(chuàng)建Sysprep文件夾中的Sysprep.exe,進(jìn)入一下界面:

這是一個很簡潔的界面,背后卻包含著很高的技術(shù)含量。

“不重置激活的寬限期”,將以當(dāng)前系統(tǒng)的激活剩余時間為主,做封裝的系統(tǒng)是如果是免激活的Windows,這一項應(yīng)選中。

“使用最小化安裝”,在XP以后的版本中,系統(tǒng)可以以“歡迎使用”方式安裝,也可以使用經(jīng)典的2000模式即“最小化安裝”模式進(jìn)行安裝,一般選中“使用最小化安裝”。

“不重新產(chǎn)生安全標(biāo)識符”,即不重新產(chǎn)生SID,以當(dāng)前系統(tǒng)的SID為準(zhǔn),這會一定程度的加快封裝部署速度,但是會令部署后的系統(tǒng)產(chǎn)生不穩(wěn)定,不建議選中。

“檢測非即插即用硬件”,這會令系統(tǒng)強(qiáng)行檢測非即插即用硬件,不建議選中。

“關(guān)機(jī)模式”,用來設(shè)定執(zhí)行完封裝以后要執(zhí)行什么,有“關(guān)機(jī)”、“重新啟動”和“退出”三種模式。

選擇完畢后,單擊“重新封裝”,Sysprep將當(dāng)前系統(tǒng)自動封裝為系統(tǒng)映像。

系統(tǒng)映像封裝完畢后,無論是自動還是手動,重啟計算機(jī)后,直接用帶GHOST工具的光盤由光盤直接啟動計算機(jī),使用GHOST備份當(dāng)前C盤系統(tǒng)磁盤映像。

備份完畢后,我們就得到了可以用來部署在其他計算機(jī)上的系統(tǒng)映像了。使用光盤或者網(wǎng)絡(luò)等介質(zhì),將這個磁盤映像再次使用GHOST恢復(fù)在其他計算機(jī)的C盤上,被恢復(fù)的計算機(jī)啟動時會自動開始部署系統(tǒng)。

1.4綜述

本章主要陳述了關(guān)于Windows操作系統(tǒng)的基本封裝與部署的實現(xiàn),微軟的企業(yè)部署工具的效率和自動化程度相當(dāng)高,封裝和部署過程都比較簡單。

但現(xiàn)在有一個很重要的問題,按照微軟企業(yè)部署工具中Deploy.chm中的簡述,企業(yè)部署工具對于源計算機(jī)和目標(biāo)計算機(jī)需要有相同HAL(硬件抽象層)。

所謂HAL,是由硬件制造商提供的一種薄層軟件,為操作系統(tǒng)高層隱藏或抽象硬件差異。通過HAL提供的篩選器,不同類型的硬件看起來與操作系統(tǒng)其余的硬件很相似。這樣允許操作系統(tǒng)從一個硬件平臺移植到另一個硬件平臺。HAL還提供了允許單個設(shè)備驅(qū)動器在所有的平臺上支持同樣設(shè)備的例程。

封裝好的系統(tǒng)在部署到硬件配置差異較大的計算機(jī)中時,特別是跨平臺的計算機(jī)(IntelCPUIntel主板做的映像部署到AMDCPUnVIDIA主板上時),會由于HAL的差異而造成各種各樣的不穩(wěn)定乃至擋機(jī),這就和要運用封裝部署方式來快速安裝系統(tǒng)的初衷不一致了。如果不能有良好的兼容性,即使能快速安裝系統(tǒng)也完全是徒勞。

在隨后的一章里,將完美解決這個問題,讓對硬件平臺有依賴的系統(tǒng)封裝部署,變?yōu)橹粚τ布渲脹]有依賴的“萬能的”封裝部署。

2.Unlimited萬能封裝與部署的實現(xiàn)

2.1突破硬件限制的三個問題

2.1.1計算機(jī)電源管理模式

不同計算機(jī)的電源管理是不一樣的,共有Standard、ACPIUniprocessor、ACPIMultiprocessor、MPSUniprocessor、MPSMultiprocessor、CompaqSystemPro、ACPI這7種,這7種電源管理模式分別適用于7種類型的計算機(jī)。

截止WindowsServer2003的企業(yè)部署工具,運用SYSPREP有一個限制,就是僅適用于用于封裝的源計算機(jī)和進(jìn)行部署的目標(biāo)計算機(jī)必須具有相同硬件抽象層(HAL)。

沒有相同的HAL,會造成電源管理模式不能正確判斷。網(wǎng)絡(luò)中提出了不用的HAL檢測解決方案,如ACPI封包、死性不改的電源模式等等。但是這些都不能做到100%的電源判斷正確,而且檢測會需要額外的文件,并且可能多次重啟計算機(jī),耗費了時間。

問題1,怎么讓Sysprep突破不能自動檢測電源管理的限制?

2.1.2計算機(jī)硬盤

計算機(jī)硬盤的發(fā)展可謂迅速。容量的提升,個人計算機(jī)硬盤容量從97年以前的個位數(shù)容量,突破到2007年現(xiàn)在的三位數(shù)容量。硬盤接口也一直在改變,從IDE到SATA,再從SATA到SATAII,從前一直在服務(wù)器上使用的SCSI磁盤技術(shù)和RAID磁盤陣列技術(shù)也漸漸的被使用到個人計算機(jī)中。(IDE屬于并口硬盤,SATA和SCSI都屬于串口硬盤,RAID屬于硬盤陣列技術(shù))。

在部署過程中,由于磁盤類型不同,需要不同的硬盤驅(qū)動(一般都是關(guān)于串口磁盤和磁盤陣列的驅(qū)動)。如果部署過程中不能正確加載硬盤驅(qū)動,則會造成不能進(jìn)入系統(tǒng)甚至不能啟動。

問題2,如何突破S&R&S(SATA&RAID&SCSI)硬盤類型的限制?

2.1.3驅(qū)動殘留

進(jìn)行封裝的源計算機(jī)如果和進(jìn)行部署的目標(biāo)計算機(jī)硬件差異很大,例如AMDCPUnVIDIA主板的源計算機(jī)做的系統(tǒng)映像部署到IntelCPUIntel主板的機(jī)器上,在源計算機(jī)上裝載的驅(qū)動程序肯定是在目標(biāo)計算機(jī)上用不到了。即使目標(biāo)計算機(jī)和源計算機(jī)硬件差異不大,但硬件技術(shù)差異很大,例如IntelCPUIntel主板的源計算機(jī)做的系統(tǒng)映像部署到IntelCPUIntel主板的機(jī)器上,源計算機(jī)為Intel865主板,而目標(biāo)計算機(jī)為945主板,源計算機(jī)上的驅(qū)動也是鐵定用不到的。

這些驅(qū)動的殘留不僅僅是會留下系統(tǒng)垃圾的問題,如果源計算機(jī)上的驅(qū)動自動強(qiáng)行去識別目標(biāo)計算機(jī)上的硬件,很有可能會造成系統(tǒng)的不穩(wěn)定乃至藍(lán)屏崩潰。

問題3,如何突破不同硬件驅(qū)動沖突的限制?

2.2突破HAL限制

2.2.1Longhorn的啟示

WindowsServer2003之前,Sysprep受到“必須源計算機(jī)與目標(biāo)計算機(jī)有著相同的HAL”的限制,在HAL不相同的時候,不能正確判斷計算機(jī)電源管理模式。

從2003年WindowsServer2003到2006年底WindowsVista的中的3年中,微軟在研發(fā)Vista的時候,了以內(nèi)部研發(fā)編號命名的WindowsLonghorn測試版。

WindowsLonghorn與以往的Windows在啟動時有著一定的區(qū)別。

第一,NTLDR有一定區(qū)別,提供了“/detecthal”接口;

第二,BOOT.INI也支持“/detecthal”參數(shù),以實現(xiàn)與NTLDR的結(jié)合;

第三,INF文件夾中有了“dtecthal.inf”,提供各種HAL類型檢測的參數(shù)說明。

有了這三個文件,可以讓計算機(jī)在開機(jī)啟動時即自動檢測HAL,從而可以自動判斷電源管理選項。

2.2.2移植Longhorn的HAL判斷

現(xiàn)今大多數(shù)人還是以使用Windows2000/XP為主,所以,即使Longhorn的HAL判斷再怎么強(qiáng)悍,不能移植到2000/XP中,也就不能使用。

以下是在2000/XP總移植并使用Longhorn的HAL判斷的具體方法:

1>從系統(tǒng)中提取相應(yīng)的HAL文件包:(WIN2000在SP4.CAB、WINDOWSXPSP2在SP2.CAB中)

halacpi.dll

halapic.dll

halmps.dll

halaacpi.dll

halmacpi.dll

hal.dll

ntkrnlmp.exe

ntkrnlpa.exe

ntkrpamp.exe

ntoskrnl.exe

提取完畢后將hal.dll更名為halstnd.dll,ntoskrnl.exe更名為ntkrnlup.exe;

2>將上述相應(yīng)的HAL文件包拷貝到準(zhǔn)備封裝的系統(tǒng)的%Windir%\SYSTEM32\下;

3>將Longhorn的“dtecthal.inf”拷貝到準(zhǔn)備封裝的系統(tǒng)的%Windir%\INF\下;

4>修改C:\BOOT.INI

在準(zhǔn)備封裝的系統(tǒng)后面加上/DETECTHAL參數(shù)如:

[bootloader]

timeout=0

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operatingsystems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="MicrosoftWindowsXPProfessional"/fastdetect/detecthal

5>將LONGHORN版本的NTLDR拷貝到從C:\,覆蓋原有的NTLDR;

6>刪除準(zhǔn)備封裝的系統(tǒng)的HAL信息,刪除注冊表中以下鍵值,如果提示權(quán)限不足不能刪除,則可用setacl.exe來修改權(quán)限再刪除。

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI_HAL

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\ACPI_HAL

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\ACPI_HAL

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\Root\ACPI_HAL

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\ACPI_HAL

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\Root\ACPI_HAL

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI_HAL

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL

至此,突破了HAL限制的系統(tǒng)就已經(jīng)準(zhǔn)備完畢。由于這個技術(shù)本身就出自微軟,所以對電源管理的判斷幾乎是100%。

突破HAL限制的系統(tǒng)可以部署在任何HAL環(huán)境的計算機(jī)上,不再有“源計算機(jī)和目標(biāo)計算機(jī)需有相同的HAL”的限制。

2.1.1節(jié)中提出的問題完美解決

2.3突破S&R&S硬盤限制

確定目標(biāo)計算機(jī)上可能用到的所有大量存儲控制器,對于可能存在于目標(biāo)計算機(jī)上的每個大量存儲控制器,創(chuàng)建其硬件ID的列表。

2.3.1對于在Windows產(chǎn)品CD中提供的大量存儲控制器

可以創(chuàng)建具有以下部分的Sysprep.inf文件:

[SysprepMassStorage]

hardware_id=path_to_device_inf

其中:

hardware_id

在設(shè)備的.inf文件中指定的即插即用ID。

path_to_device_inf

.inf文件的路徑,該文件中包含待安裝控制器的即插即用ID。

例如,要支持WindowsXP自帶的不同IDE控制器(PCI和Intel),該部分如下所示:

[SysprepMassStorage]

PCI\VEN_8086&DEV_1222="%WINDIR%\inf\mshdc.inf"

PCI\VEN_8086&DEV_1230="%WINDIR%\inf\mshdc.inf"

PCI\VEN_8086&DEV_7010="%WINDIR%\inf\mshdc.inf"

PCI\VEN_8086&DEV_7111="%WINDIR%\inf\mshdc.inf"

PCI\VEN_8086&DEV_2411="%WINDIR%\inf\mshdc.inf"

PCI\VEN_8086&DEV_2421="%WINDIR%\inf\mshdc.inf"

PCI\VEN_8086&DEV_7199="%WINDIR%\inf\mshdc.inf"

2.3.2對于Windows產(chǎn)品CD上沒有提供的大量存儲控制器

將目標(biāo)計算機(jī)上的大量存儲控制器的驅(qū)動程序文件復(fù)制到您計算機(jī)上的文件夾中–例如,復(fù)制到主計算機(jī)硬盤驅(qū)動器上的%SYSTEMDRIVE%\pnpdrvrs\storage中。

按以下格式向[SysprepMassStorage]部分中添加幾行內(nèi)容:

hardware_id=path_to_device_inf,disk_directory,disk_description,disk_tag

其中:

hardware_id

在設(shè)備的.inf文件中指定的即插即用ID。

path_to_device_inf

.inf文件的路徑,該文件中包含待安裝控制器的即插即用ID。

disk_directory

第三方提供的軟盤上的文件夾名稱,該文件夾中包含大量存儲驅(qū)動程序的副本。

disk_description

在第三方提供的Txtsetup.oem文件中指定的軟盤說明。

disk_tag

在第三方提供的Txtsetup.oem文件中指定的軟盤的磁盤標(biāo)記。

將驅(qū)動程序文件放置到由Sysprep.inf中[SysprepMassStorage]部分指定的位置。例如,要支持新的Qlogic驅(qū)動程序,如果將文件復(fù)制到C:\Drivers\Storage文件夾,則添加如下行:

[SysprepMassStorage]

PCI\VEN_1077&DEV_1080="C:\Drivers\Storage\qlogic\qlogic.inf","C:\Drivers\Storage\qlogic","QlogicSoftwareDisk","C:\Drivers\Storage\qlogic\qlogic2.3.3突破S&R&S實例

1>收集需要的srs驅(qū)動,方便期間,直接下載DPS提供的massstorage驅(qū)動:

/DriverPacks/download.php?pag=m

2>解壓驅(qū)動到c:\drivers。

3>編輯sysprep.ini加入以下內(nèi)容

InstallFilesPath=C:\sysprep\i386

然后在[SysprepMassStorage]段中添加需要的串口磁盤驅(qū)動,根據(jù)DPS驅(qū)動包的說明書,一般只集成Intel、nVIDIA、Uli、VIA、SiS、AMD的串口磁盤驅(qū)動即可,在對應(yīng)的驅(qū)動包中的inf文件中,可以獲得硬件的即插即用ID。

例如:

[SysprepMassStorage]

PCI\VEN_1022&DEV_7469=c:\drivers\m\am\AMDEIDE.inf

PCI\VEN_1002&DEV_4349=c:\drivers\m\at\atiide.inf

PCI\VEN_10B9&DEV_5215=c:\drivers\m\au\1\ALIIDE.INF

PCI\VEN_10B9&DEV_5219=c:\drivers\m\au\1\ALIIDE.INF

PCI\VEN_10B9&DEV_5229=c:\drivers\m\au\1\ALIIDE.INF

PCI\VEN_10B9&DEV_5228=c:\drivers\m\au\2\m5228.INF

PCI\VEN_10B9&DEV_5281=c:\drivers\m\au\2\m5281.inf

PCI\VEN_10B9&DEV_5287=c:\drivers\m\au\3\ulisata.inf

PCI\VEN_10B9&DEV_5288=c:\drivers\m\au\4\ULISATA.INF

PCI\VEN_10B9&DEV_5289=c:\drivers\m\au\5\ULISATA.INF

PCI\VEN_8086&DEV_2652&CC_0104=c:\drivers\m\in\1\iastor.inf

PCI\VEN_8086&DEV_27C3&CC_0104=c:\drivers\m\in\1\iastor.inf

PCI\VEN_8086&DEV_2682&CC_0104=c:\drivers\m\in\1\iastor.inf

PCI\VEN_8086&DEV_27C6&CC_0104=c:\drivers\m\in\1\iastor.inf

PCI\VEN_8086&DEV_2822&CC_0104=c:\drivers\m\in\1\iastor.inf

PCI\VEN_8086&DEV_2652&CC_0106=c:\drivers\m\in\1\iaahci.inf

PCI\VEN_8086&DEV_2653&CC_0106=c:\drivers\m\in\1\iaahci.inf

PCI\VEN_8086&DEV_27C1&CC_0106=c:\drivers\m\in\1\iaahci.inf

PCI\VEN_8086&DEV_27C5&CC_0106=c:\drivers\m\in\1\iaahci.inf

PCI\VEN_8086&DEV_2681&CC_0106=c:\drivers\m\in\1\iaahci.inf

PCI\VEN_8086&DEV_2821&CC_0106=c:\drivers\m\in\1\iaahci.inf

PCI\VEN_8086&DEV_24DF&CC_0104=c:\drivers\m\in\1\O\iastor.inf

PCI\VEN_8086&DEV_25B0&CC_0104=c:\drivers\m\in\1\O\iastor.inf

PCI\VEN_10DE&DEV_008E=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_00D5=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_00EE=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_00E3=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_0036=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_003E=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_0054=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_0055=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_0266=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_0267=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_036F=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_037E=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_037F=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_03F6=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_03F7=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_10DE&DEV_03E7=c:\drivers\m\N\TM\nvatabus.inf

PCI\VEN_1039&DEV_0181=c:\drivers\M\SI\1\SISRaid1.INF

PCI\VEN_1039&DEV_0180=c:\drivers\M\SI\2\SISRaid.INF

PCI\VEN_1039&DEV_0182=c:\drivers\M\SI\3\SISRaid2.INF

PCI\VEN_1106&DEV_3349&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_6287&CC_0106=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_0591&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_3249&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_3149&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_3164&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_0581&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_7372&CC_0104=c:\drivers\M\V\1\VIAMRAID.INF

PCI\VEN_1106&DEV_4149=c:\drivers\M\V\2\viapide.inf

PCI\VEN_1106&DEV_0571=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_3149&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_0591&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_5337&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_3349&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_5287&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_3164&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_0581&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_1106&DEV_5324&CC_0101=c:\drivers\M\V\3\vminiide.inf

PCI\VEN_104B&DEV_1040=c:\drivers\M\VM\vmscsi.inf

4>在c:\sysprep目錄下建立i386\$oem$目錄,在c:\sysprep\i386\$oem$中建立cmdlines.txt文件,在文件中加入

[Commands]

"c:\sysprep\sysprep-clean"

這樣就會在最小化安裝的過程中禁用所有因為在目標(biāo)計算機(jī)上不存在而未安裝的大量存儲控制器。

至此,一個突破了S&R&S限制的系統(tǒng)映像準(zhǔn)備完畢。

執(zhí)行sysprep進(jìn)行封裝,在封裝的過程中,系統(tǒng)會自動安裝srs驅(qū)動。在最小化安裝的時候會刪除多余的驅(qū)動。

2.1.2節(jié)中的問題,這里也就已經(jīng)解決了。

2.4多余驅(qū)動的卸載

做封裝所用的計算機(jī)中所使用的驅(qū)動程序,在被部署的計算機(jī)上大多數(shù)不再有用(除非都被部署在相同硬件配置的計算機(jī)上)。所以,我們要一一刪除源計算機(jī)中的這些驅(qū)動,以免殘留的驅(qū)動造成部署的不正常。

卸載驅(qū)動,在“設(shè)備管理器”(我的電腦,屬性,硬件,設(shè)備管理器)中列出所有設(shè)備,然后一一卸載。

在設(shè)備管理器中,可以看到當(dāng)前正在使用的所有硬件設(shè)備。

1>常規(guī)驅(qū)動的卸載

除“IDEATA/ATAPI控制器”和“計算機(jī)”以外的其他設(shè)備,一一展開,然后卸載即可。

2>更改IDE模式

由于不同計算機(jī)的IDE控制器差異比較大,如果出現(xiàn)錯誤的識別,將會出現(xiàn)不能開機(jī)的情況,所以,這里預(yù)先將IDE控制器設(shè)置為“標(biāo)準(zhǔn)雙通道”,在部署時,安裝程序?qū)⒆詣訉ふ液推鹌ヅ涞腎DE控制器驅(qū)動程序。

3>計算機(jī)電源管理

計算機(jī)電源管理分為許多種,可以適用于不同類別的計算機(jī)。如果電源管理判斷不正確,將會造成計算機(jī)的不正常。在計算機(jī)識別電源管理之前,需要將電源管理設(shè)為標(biāo)準(zhǔn)模式以基本適用于所有的計算機(jī),這種標(biāo)準(zhǔn)模式僅僅可以保證計算機(jī)正常啟動,但是不能保證最高效的運行。

將計算機(jī)的電源管理模式設(shè)置為StandardPC以后,在部署時,由于我們適用了Longhorn的HAL自動判斷,計算機(jī)將會在啟動時自動修改StandardPC為被部署計算機(jī)的電源管理模式。

至此,突破了硬件限制的系統(tǒng)映像也被修改了出來,系統(tǒng)映像可以被部署到不同硬件配置的機(jī)器中了。

2.1.3節(jié)中的問題被解決。

2.5綜述

在不同硬件配置的機(jī)器中適用系統(tǒng)部署受到種種制約,本章分為3塊解決了映像系統(tǒng)萬能部署的3條限制。

Longhron的自動HAL判斷,解決了源計算機(jī)與目標(biāo)計算機(jī)在不同HAL模式時不能進(jìn)行部署的問題。

S&R&S驅(qū)動的集成,解決了系統(tǒng)部署在不同硬盤模式的情況下進(jìn)行部署的問題。

驅(qū)動的卸載,解決了系統(tǒng)部署在不同硬件配置的計算機(jī)下進(jìn)行的問題。

這3條限制被突破以后,系統(tǒng)部署時,不必再遵循源計算機(jī)和目標(biāo)計算機(jī)必須相同配置的原則,真正可以實現(xiàn)無限制的“萬能部署”。3.Auto自動封裝與部署的實現(xiàn)

3.1自動封裝與部署的意義和理論實現(xiàn)

3.1.1自動封裝的意義

1>封裝測試需要很多次的重復(fù)

封裝一個可以部署的系統(tǒng)映象并不難,但是封裝一個比較完美的可以滿足各項要求的系統(tǒng)映象卻是一個特別花費時間和精力的工作,需要很多次的重復(fù)制作。僅上一章中所提到的各種限制的突破,如果每次測試都時候都做一次,也會消耗很多的時間。

能不能讓這些手工的機(jī)械化的操作變成自動的?

2>頻繁的手工操作容易造成錯誤

即使是一個對封裝十分了解的人,在多次的執(zhí)行封裝中,也難免會出現(xiàn)遺漏和失誤,畢竟封裝的步驟一環(huán)扣一環(huán),雖然不繁瑣也難免會造成錯誤。

怎么讓封裝的流程變的自動而無需人手工參與?

3>封裝的普及

很多IT工作者并不十分了解封裝與部署,卻一樣想做出自己的系統(tǒng)映象用來部署,由于工作等原因?qū)嵲跊]有時間去系統(tǒng)的學(xué)習(xí),難道封裝只能掌握在少數(shù)人手中?

怎么讓封裝更為普及化,讓沒有太多封裝知識和經(jīng)驗的人也能迅速的進(jìn)行系統(tǒng)封裝?

3.1.2系統(tǒng)封裝和部署的詳細(xì)流程

1>系統(tǒng)安裝、補丁、軟件等;

[封裝]:

2>在系統(tǒng)光盤上找到Deploy.cab,解壓到%system%\Sysprep;

3>運行Setupmgr.exe創(chuàng)建無人職守部署應(yīng)答文件Sysprep.inf;

4>突破HAL限制,把于HAL相關(guān)的文件都放置在%windir%下相應(yīng)位置,提取Longhorn的ntldr1,修改boot.ini;

5>突破S&R&S限制,把所有串口磁盤和磁盤陣列驅(qū)動都放置在%systemdrive%\Drivers下,在Sysprep.inf中的[SysprepMassStorage]段下添加磁盤驅(qū)動位置等信息;

6>卸載各種驅(qū)動,修改IDE控制器為標(biāo)準(zhǔn)雙通道,修改計算機(jī)電源管理為StandardPC;

7>運行Sysprep.exe進(jìn)行系統(tǒng)封裝;

8>關(guān)閉封裝源計算機(jī);

9>DOS模式啟動封裝源計算機(jī),使用GHOST備份下封裝完的系統(tǒng)映象;

[部署]:

10>使用GHOST恢復(fù)系統(tǒng)映象到部署目標(biāo)計算機(jī);

11>部署目標(biāo)計算機(jī),系統(tǒng)運行%windir%\system32\setup.exe來部署計算機(jī)映象。

3.1.3自動封裝的理論實現(xiàn)

縱觀流程,封裝過程基本上可以分為相關(guān)文件的復(fù)制、對文件的調(diào)整、相關(guān)軟件的運行、對系統(tǒng)的調(diào)整四部分。

相關(guān)文件的復(fù)制,簡單說,就是把應(yīng)該放在哪兒的文件放在哪兒,這些文件都是特定的,進(jìn)行封裝必然要用到這些文件,所以,可以預(yù)先把這些文件提取出來放置在一個另外的文件夾中,然后用WinRAR壓縮為自解壓文件并設(shè)定解壓位置,這樣到用這些文件的時候直接雙擊自解壓包,這些要用到的文件就會各自解壓到自己應(yīng)該在的位置上。

對文件的調(diào)整,主要是替換Longhorn的ntldr,以及修改boot.ini,這個我們可以用命令行修改系統(tǒng)自身的ntldr為ntldr.bak,修改系統(tǒng)自身的boot.ini為boot.ini.bak,然后把Longhorn的ntldr和修改好的boot.ini復(fù)制到原系統(tǒng)ntldr和boot.ini的位置。當(dāng)系統(tǒng)部署完畢后再把原始的ntldr和boot.ini替換回來,雖然替換回原有的不是必須的,但是個人認(rèn)為,保持原系統(tǒng)的原始性一定程度上有利于系統(tǒng)的穩(wěn)定性。

相關(guān)軟件的運行,這個主要是Sysprep,如果每次要為Sysprep設(shè)置相同的執(zhí)行方式,那么Sysprep提供很多的運行參數(shù),添加參數(shù)運行Sysprep,就免去了每次都要去點擊封裝選項的問題。

對系統(tǒng)的調(diào)整,主要是卸載驅(qū)動以及調(diào)整計算機(jī)電源管理和IDE控制器。雖然這個可以使用自動化實現(xiàn),但是個人認(rèn)為這個手工還是比較保險。

3.2實現(xiàn)自動封裝與部署

3.2.1文件的自動復(fù)制

建立如下目錄,以D:\ES文件夾為例:

D:\ES\Sysprep\cvtarea.exe

D:\ES\Sysprep\

D:\ES\Sysprep\Setupcl.exe

D:\ES\Sysprep\Sysprep.exe

D:\ES\Sysprep\Sysprep.inf

D:\ES\Sysprep\SetACL.exe

D:\ES\Sysprep\AutoSysprep.cmd

D:\ES\Sysprep\cmdline.reg

D:\ES\WINDOWS\inf\dtecthal.inf

D:\ES\WINDOWS\system32

D:\ES\WINDOWS\system32\halaacpi.dll

D:\ES\WINDOWS\system32\halacpi.dll

D:\ES\WINDOWS\system32\halapic.dll

D:\ES\WINDOWS\system32\halmacpi.dll

D:\ES\WINDOWS\system32\halmps.dll

D:\ES\WINDOWS\system32\halstnd.dll

D:\ES\WINDOWS\system32\mscomctl.ocx

D:\ES\WINDOWS\system32\ntkrnlmp.exe

D:\ES\WINDOWS\system32\ntkrnlpa.exe

D:\ES\WINDOWS\system32\ntkrnlup.exe

D:\ES\WINDOWS\system32\ntkrpamp.exe

D:\ES\WINDOWS\AllUsrRun.cmd

D:\ES\Drivers

D:\ES\bootL.ini

D:\ES\ntldrL

說明:

1>ES文件夾模擬C盤根目錄,所有文件排布和此后要復(fù)制到C盤中的排布是一樣的;

2>Sysprep中的所有文件在第一章中介紹過,Sysprep文件夾將在系統(tǒng)部署最小化安裝時自動刪除,SetACL.exe是提升權(quán)限以修改注冊表的工具,AutoSysprep.cmd是自動進(jìn)行封裝所用的批處理,cmdline.reg將在3.2.3中詳細(xì)說明;

3>inf和system32文件夾中的各文件在第二章中介紹過,用于Longhorn的自動HAL判斷;

4>AllUsrRun的用處后面詳細(xì)介紹;

5>bootL.ini是為HAL自動判斷所寫好的boot.ini文件,內(nèi)容為:

[bootloader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operatingsystems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="MicrosoftWindowsXPProfessional"/fastdetect/detecthal

6>ntldrL是Longhorn的系統(tǒng)引導(dǎo)文件,同樣用于自動HAL判斷。

7>Drivers中放置串口磁盤和磁盤陣列驅(qū)動

文件打包:

選擇最常用的壓縮工具WinRAR來進(jìn)行打包ES文件夾中的所有文件,設(shè)定默認(rèn)解壓縮路徑為C:\并且設(shè)置解壓模式為“隱藏啟動對話框”和“覆蓋所有文件”,這幾個選項的設(shè)定可以保證文件不會復(fù)制到錯誤的位置。

3.2.2自動封裝的實現(xiàn)

AutoSysprep.cmd的內(nèi)容如下(以封裝XP系統(tǒng)為例):

rem自動封裝,靜默模式、最小化、不重置激活事件、清空事件查看器日志、不重啟計算機(jī)

start/waitc:\sysprep\sysprep.exe-quiet-mini-activated-reseal-noreboot

rem導(dǎo)入cmdline.reg鍵值(3.2.3中介紹)

start/waitregedit.exe/sc:\Sysprep\cmdline.reg

rem取消XP的ntldr權(quán)限,改名為ntldrXP,再恢復(fù)其權(quán)限

attribc:\ntldr-h-s-r

renc:\ntldrntldrxp

attribc:\ntldrxphsr

rem取消Longhron的ntldrL的權(quán)限,改名為ntldr,再恢復(fù)其權(quán)限

attribc:\ntldr1-h-s-r

renc:\ntldr1ntldr

attribc:\ntldrhsr

rem取消XP的boot.ini權(quán)限,改名為bootXP.ini,再恢復(fù)其權(quán)限

attribc:\boot.ini-h-s-r

renc:\boot.inibootxp.ini

attribc:\bootxp.inihsr

rem取消Longhron的bootL.ini的權(quán)限,改名為boot.ini,再恢復(fù)其權(quán)限

attribc:\boot1.ini-h-s-r

renc:\boot1.iniboot.ini

attribc:\boot.inihsr

rem進(jìn)入Sysprep文件夾內(nèi)

cd\

cd\sysprep

rem使用SetACL來取消有關(guān)源計算機(jī)HAL的注冊表信息的權(quán)限,以便隨后的修改

setaclMACHINE\SYSTEM\ControlSet001\Enum\ACPI_HAL/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet001\Enum\Root\ACPI_HAL/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet002\Enum\ACPI_HAL/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet002\Enum\Root\ACPI_HAL/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet003\Enum\ACPI_HAL/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet003\Enum\Root\ACPI_HAL/registry/granteveryone/full

setaclMACHINE\SYSTEM\CurrentControlSet\Enum\ACPI_HAL/registry/granteveryone/full

setaclMACHINE\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL/registry/granteveryone/full

rem刪除源計算機(jī)的HAL注冊表信息

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\ACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\ACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\ACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum\Root\ACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\ACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\ControlSet003\Enum\Root\ACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\ACPI_HAL/f

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ACPI_HAL/f

rem以下用于IntelCPUIntel主板的源計算機(jī),Intel的這兩組鍵值容易造成部署到非Intel硬件計算機(jī)中的藍(lán)屏事故

rem使用SetACL來取消有關(guān)當(dāng)前Intel主板的注冊表信息的權(quán)限,以便隨后的修改

setaclMACHINE\SYSTEM\ControlSet001\Services\IntelIde/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet002\Services\IntelIde/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet003\Services\IntelIde/registry/granteveryone/full

setaclMACHINE\SYSTEM\CurrentControlSet\Services\IntelIde/registry/granteveryone/full

rem使用SetACL來取消有關(guān)當(dāng)前IntelCPU的注冊表信息的權(quán)限,以便隨后的修改

setaclMACHINE\SYSTEM\ControlSet001\Services\intelppm/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet002\Services\intelppm/registry/granteveryone/full

setaclMACHINE\SYSTEM\ControlSet003\Services\intelppm/registry/granteveryone/full

setaclMACHINE\SYSTEM\CurrentControlSet\Services\intelppm/registry/granteveryone/full

rem刪除有關(guān)Intel主板的注冊表信息

regdeleteMACHINE\SYSTEM\ControlSet001\Services\IntelIde/f

regdeleteMACHINE\SYSTEM\ControlSet002\Services\IntelIde/f

regdeleteMACHINE\SYSTEM\ControlSet003\Services\IntelIde/f

regdeleteMACHINE\SYSTEM\CurrentControlSet\Services\IntelIde/f

rem刪除有關(guān)IntelCPU的注冊表信息

regdeleteMACHINE\SYSTEM\ControlSet001\Services\intelppm/f

regdeleteMACHINE\SYSTEM\ControlSet002\Services\intelppm/f

regdeleteMACHINE\SYSTEM\ControlSet003\Services\intelppm/f

regdeleteMACHINE\SYSTEM\CurrentControlSet\Services\intelppm/f

3.2.3部署過程的調(diào)整

部署過程,其實就是系統(tǒng)映象恢復(fù)到目標(biāo)計算機(jī)上,目標(biāo)計算機(jī)啟動,系統(tǒng)會自動運行%windir%\system32\Setup.exe來部署系統(tǒng)。

如果我們想在Setup.exe前或者后運行點什么,該怎么辦?例如,我們要在Setup.exe運行后將原來系統(tǒng)的ntldr和boot.ini恢復(fù)回來,而不是使用Longhorn的,怎么辦?

經(jīng)過對比封裝前和封裝后的注冊表,發(fā)現(xiàn)目標(biāo)計算機(jī)啟動后,將要進(jìn)行部署時并非是一定要運行%windir%\system32\Setup.exe,而是運行系統(tǒng)注冊表中“HKEY_LOCAL_MACHINE\SYSTEM\Setup”分支下的“CmdLine”鍵值所指定的應(yīng)用程序。在系統(tǒng)封裝完成時,“HKEY_LOCAL_MACHINE\SYSTEM\Setup”分支下“CmdLine”鍵值被修改為“setup.exe”,這就是為什么目標(biāo)計算機(jī)啟動后會運行setup.exe來部署系統(tǒng)的原因。

我們自己寫一個批處理,批處理的內(nèi)容包括運行setup.exe和恢復(fù)原有ntldr、boot.ini,把這個批處理的名字定名為“AllUsrRun.cmd”,并且把“HKEY_LOCAL_MACHINE\SYSTEM\Setup”分支下“CmdLine”的鍵值由“setup.exe”修改為“AllUsrRun.cmd”。這樣源計算機(jī)啟動的時候并非運行setup.exe來部署系統(tǒng),而是運行AllUsrRun.cmd。

AllUsrRun.cmd的內(nèi)容如下:

rem把我們修改的CmdLine鍵值重新置空

regdeleteHKEY_LOCAL_MACHINE\SYSTEM\setup/vcmdline/f

rem部署系統(tǒng),全新安裝、最小化執(zhí)行

setup.exe-newsetup–mini

rem修改Longhorn的ntldr權(quán)限,并刪除

attribc:\ntldr-h-s-r

delc:\ntldr

rem修改先前備份的XP的ntldrXP權(quán)限,改名回ntldr,恢復(fù)權(quán)限

attribc:\ntldrXP-h-s-r

renc:\ntldrXPntldr

attribc:\ntldrhsr

rem修改Longhorn的boot.ini權(quán)限,并刪除

attribc:\boot.ini-h-s-r

delc:\boot.ini

rem修改先前備份的XP的bootXP.ini權(quán)限,改名回boot.ini,恢復(fù)權(quán)限

attribc:\bootXP.ini-h-s-r

renc:\bootXP.iniboot.ini

attribc:\boot.inihsr

rem修改多啟動菜單等待時間為5秒

bootcfg/timeout5

這樣部署過程就被我們調(diào)整的如我們所愿了。

3.3綜述

經(jīng)過3.2節(jié)中的幾步,自動封裝和部署基本被我們實現(xiàn)。

3.1.2中[封裝]段的步驟被簡化為:

1>運行自動解壓縮,把文件解壓到相應(yīng)位置;

2>卸載驅(qū)動,手動修改IDE控制器和計算機(jī)電源管理;

3>運行%systemdrive%\Sysprep文件夾中的AutoSysprep.cmd封裝系統(tǒng);

4>重啟計算機(jī),使用GHOST備份系統(tǒng)映象。

3.1.2中[部署]段的步驟變?yōu)椋?/p>

1>恢復(fù)系統(tǒng)映象到目標(biāo)計算機(jī);

2>目標(biāo)計算機(jī)啟動,自動運行AllUsrRun.cmd部署系統(tǒng)并還原系統(tǒng)原始的ntldr和boot.ini。

如此以來,系統(tǒng)封裝將變的十分簡單,不僅給多次測試封裝系統(tǒng)帶來很大的方便,還能讓沒有太多封裝經(jīng)驗的人迅速封裝系統(tǒng)。

系統(tǒng)自動化封裝和部署完美實現(xiàn)。

結(jié)論

全文分3章講述了封裝部署方法快速安裝和部署操作系統(tǒng)的方法。

從第一章的基本實現(xiàn)到第二章的萬能實現(xiàn),再到第三章自動實現(xiàn),一步步實現(xiàn)了從最基本封裝部署到全自動封裝部署。

從覆蓋面上講,從最原始的微軟所規(guī)定的“源計算機(jī)與目標(biāo)計算機(jī)必須有相同的HAL”到最終的任意HAL源計算機(jī)部署到任意HAL目標(biāo)計算機(jī),覆蓋面被有效的提高。理論上講,部署方法,可以適用于任何計算機(jī)。

從易用性上講,從最早的手工復(fù)制文件、手工修改注冊表、手工修改各種配置文件,到最終的“EasySysprep”只需在圖形界面設(shè)置好然后單擊一下“開始封裝”即可封裝系統(tǒng),不可說不是個比較大的進(jìn)步和跨越。

經(jīng)過本文中3章的研究工作,封裝部署已經(jīng)變的擁有更大的適用性并擁有更簡單的可用性,系統(tǒng)封裝部署這種可以有效的提高計算機(jī)維護(hù)人員工作效率的方法,必將得到最廣泛的認(rèn)可與應(yīng)用作者:roar版權(quán)所有