版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Word-34-封裝與部署研究論文企業(yè)決策研究論文前言:從Windows95到現(xiàn)在的WindowsVista,Windows優(yōu)秀的圖形界面和可操作性,贏得了目前廣泛的使用人群。雖然Windows各方面性能,特殊是穩(wěn)定性方面,依舊有所不及Unix、Linux這些高穩(wěn)定性的系統(tǒng),但是它仍舊不行否認的成為當前使用范圍最廣的操作系統(tǒng)。
但是Windows進展了整整10于個年頭,雖然Windows的性能在不斷增加和完善,但是系統(tǒng)安裝的速度依舊是非常緩慢且讓人頭疼。雖然2022年底推出的WindowsVista憑借微軟的新技術(shù)ImageX,可以在短短20分鐘內(nèi)安裝10幾G左右的文件,但是由于WindowsVista對計算機硬件要求較高,軟件兼容性尚不抱負,所以未得到最好的普及,目前使用最廣泛的Windows操作系統(tǒng),依舊是WindowsXP。
WindowsXP的安裝時間在約20~30分鐘左右,這還不算更新Windows平安補丁、系統(tǒng)優(yōu)化以及軟件安裝的時間,平均來算,要完全安裝一個可用的(包含常用補丁和軟件,以及必要的系統(tǒng)優(yōu)化)WindowsXP操作系統(tǒng),至少需要1個小時左右的時間。
對于做硬件維護的人們來講,系統(tǒng)的這個安裝和調(diào)試時間無論如何都是不能被很好接受的事實。即使硬件維護人員可以牽強接受這個安裝時間,許多狀況下,要使用計算機來辦公的人員更難接受這個漫長而鋪張時間的過程。這的確和高效率的社會結(jié)構(gòu)不符,和高節(jié)奏的社會工作生活更不相符。
始終在探尋一種方法,在于如何高效的進行系統(tǒng)的維護乃至重新安裝,如何把原來近1小時才能完成的繁雜工作掌握在15分鐘以內(nèi)完成。
為解決系統(tǒng)安裝過于繁雜耗時的問題,我首先考慮到的是利用微軟自己的所謂“封裝部署工具”(Sysprep)。
所謂封裝部署,是微軟為大企業(yè)用戶供應(yīng)的一種結(jié)構(gòu)化的部署操作系統(tǒng)的工具。可以在一臺計算機上把已經(jīng)做好各種調(diào)試的系統(tǒng)進行再封裝,封裝完畢的系統(tǒng),可以部署到其他計算機中,部署時間相當?shù)亩蹋苍S僅僅5~6分鐘,極大的提高對計算機系統(tǒng)的維護效率。
但是封裝部署是有條件的,即僅適用于封裝的源計算機和用于部署的目標計算機必需具有相同硬件抽象層(HAL),即不相同硬件配置的機器不能相互部署對方機器上封裝好的操作系統(tǒng),這樣就會對當今繁雜的計算機硬件配置中進行封裝和部署造成極大的障礙。
通過對微軟的操作系統(tǒng)Longhron各內(nèi)測版本進行啟動過程的跟蹤,發(fā)覺微軟在Longhron啟動參數(shù)中供應(yīng)了/detecthal接口,依靠這個接口,我們可以讓計算機在啟動時自動檢測硬件抽象層(HAL),通過了這個檢測,封裝完的系統(tǒng)在部署到不同的計算機中時,就不會消失由于硬件抽象層(HAL)的不同而造成的系統(tǒng)在部署過程中由于對硬件的依靠而造成的種種非正常運行。
這個討論勝利后,一個被調(diào)試好的系統(tǒng)(包括系統(tǒng)補丁追加、系統(tǒng)優(yōu)化、常用軟件安裝)可以在進行封裝后,高效的部署到任何硬件配置的其他計算機上,極大的縮短進行計算機維護的時間,極大的提高計算機維護的效率。
1.Base基本封裝與部署的實現(xiàn)
1.1系統(tǒng)的封裝與部署
系統(tǒng)的封裝與部署,這個概念出自Microsoft(微軟)。在Microsoft的Windows系列系統(tǒng)光盤中,包含企業(yè)部署工具(Deploy.cab),Deploy中包括了幾個可供管理員和IT專業(yè)人士用來將Windows部署到組織中多臺計算機上的工具。
Deploy.cab包括:Setupmgr.exe、Sysprep.exe、Cvtarea.exe、O。
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)預(yù)備,預(yù)備計算機硬盤,以便進行磁盤復(fù)制、審核并交付客戶。在分發(fā)前必需運行Sysprep以重新封裝計算機。Sysprep包含下列組件:Sysprep.exe、Setupcl.exe、Factory.exe、Sysprep.inf和Winbom.ini。應(yīng)用程序文件(Sysprep.exe、Setupcl.exe和Factory.exe)是必需的,而且它們相互依存。簡潔來說,這個工具用于重新封裝已經(jīng)在計算機上安裝好的系統(tǒng),封裝完畢的映像可以通過介質(zhì)復(fù)制到其他計算機上,當獵取封裝好的映像的計算機啟動時,Sysprep.exe將調(diào)用%Windir%System32setup.exe在獵取映像的計算機中重新部署系統(tǒng)。這種部署類似于直接安裝系統(tǒng),但是速度要比正常安裝快很多倍。
Cvtarea.exe,一個用于在FAT32或FAT文件系統(tǒng)上創(chuàng)建文件并分析那些文件放置狀況的敏捷工具。使用Cvtarea工具,您可以創(chuàng)建連續(xù)的文件并將其放在磁盤上的特定位置。
O,創(chuàng)建FAT32卷,該卷中的簇以某種優(yōu)化方法取整,以便在以后將其轉(zhuǎn)換為NTFS文件系統(tǒng)格式。
總體而言,隨著技術(shù)的進展,可以替代Cvtarea.exe和O的工具消失了很多,Setupmgr.exe用于生成無人職守安裝應(yīng)答文件,Sysprep.exe是用于系統(tǒng)封裝的主要工具。
1.2Setupmgr
獲得封裝好的系統(tǒng)映像的計算機,第一次啟動時,將會自行進行系統(tǒng)部署,系統(tǒng)部署過程中,會提問用戶有關(guān)產(chǎn)品密鑰、時區(qū)、計算機名稱、管理員密碼等等,這個和一般的系統(tǒng)安裝的步驟一樣(當然,比一般安裝快速的多),每次都去輸入這些,無非會降低工作效率。
利用Setupmgr.exe,可以為系統(tǒng)部署創(chuàng)建一份自動應(yīng)答文件,當系統(tǒng)部署時遇到各種需要用戶來確認的信息時,直接去這份自動應(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來封裝當前系統(tǒng)為系統(tǒng)映像;
6關(guān)閉計算機,利用第三方軟件復(fù)制下這個系統(tǒng)映像(C盤全部),一般使用GHOST;
7利用網(wǎng)絡(luò)或其他介質(zhì)(光盤)復(fù)制該映像到其他計算機進行部署。
1.3.2系統(tǒng)封裝
做完上節(jié)中步驟的前4步,就可以進行對系統(tǒng)的封裝了,運行C盤根名目下創(chuàng)建Sysprep文件夾中的Sysprep.exe,進入一下界面:
這是一個很簡潔的界面,背后卻包含著很高的技術(shù)含量。
“不重置激活的寬限期”,將以當前系統(tǒng)的激活剩余時間為主,做封裝的系統(tǒng)是假如是免激活的Windows,這一項應(yīng)選中。
“使用最小化安裝”,在XP以后的版本中,系統(tǒng)可以以“歡迎使用”方式安裝,也可以使用經(jīng)典的2000模式即“最小化安裝”模式進行安裝,一般選中“使用最小化安裝”。
“不重新產(chǎn)生平安標識符”,即不重新產(chǎn)生SID,以當前系統(tǒng)的SID為準,這會肯定程度的加快封裝部署速度,但是會令部署后的系統(tǒng)產(chǎn)生不穩(wěn)定,不建議選中。
“檢測非即插即用硬件”,這會令系統(tǒng)強行檢測非即插即用硬件,不建議選中。
“關(guān)機模式”,用來設(shè)定執(zhí)行完封裝以后要執(zhí)行什么,有“關(guān)機”、“重新啟動”和“退出”三種模式。
選擇完畢后,單擊“重新封裝”,Sysprep將當前系統(tǒng)自動封裝為系統(tǒng)映像。
系統(tǒng)映像封裝完畢后,無論是自動還是手動,重啟計算機后,直接用帶GHOST工具的光盤由光盤直接啟動計算機,使用GHOST備份當前C盤系統(tǒng)磁盤映像。
備份完畢后,我們就得到了可以用來部署在其他計算機上的系統(tǒng)映像了。使用光盤或者網(wǎng)絡(luò)等介質(zhì),將這個磁盤映像再次使用GHOST恢復(fù)在其他計算機的C盤上,被恢復(fù)的計算機啟動時會自動開頭部署系統(tǒng)。
1.4綜述
本章主要陳述了關(guān)于Windows操作系統(tǒng)的基本封裝與部署的實現(xiàn),微軟的企業(yè)部署工具的效率和自動化程度相當高,封裝和部署過程都比較簡潔。
但現(xiàn)在有一個很重要的問題,根據(jù)微軟企業(yè)部署工具中Deploy.chm中的簡述,企業(yè)部署工具對于源計算機和目標計算機需要有相同HAL(硬件抽象層)。
所謂HAL,是由硬件制造商供應(yīng)的一種薄層軟件,為操作系統(tǒng)高層隱蔽或抽象硬件差異。通過HAL供應(yīng)的篩選器,不同類型的硬件看起來與操作系統(tǒng)其余的硬件很相像。這樣允許操作系統(tǒng)從一個硬件平臺移植到另一個硬件平臺。HAL還供應(yīng)了允許單個設(shè)備驅(qū)動器在全部的平臺上支持同樣設(shè)備的例程。
封裝好的系統(tǒng)在部署到硬件配置差異較大的計算機中時,特殊是跨平臺的計算機(IntelCPUIntel主板做的映像部署到AMDCPUnVIDIA主板上時),會由于HAL的差異而造成各種各樣的不穩(wěn)定乃至擋機,這就和要運用封裝部署方式來快速安裝系統(tǒng)的初衷不全都了。假如不能有良好的兼容性,即使能快速安裝系統(tǒng)也完全是徒勞。
在隨后的一章里,將完善解決這個問題,讓對硬件平臺有依靠的系統(tǒng)封裝部署,變?yōu)橹粚τ布渲脹]有依靠的“萬能的”封裝部署。
2.Unlimited萬能封裝與部署的實現(xiàn)
2.1突破硬件限制的三個問題
2.1.1計算機電源管理模式
不同計算機的電源管理是不一樣的,共有Standard、ACPIUniprocessor、ACPIMultiprocessor、MPSUniprocessor、MPSMultiprocessor、CompaqSystemPro、ACPI這7種,這7種電源管理模式分別適用于7種類型的計算機。
截止WindowsServer2022的企業(yè)部署工具,運用SYSPREP有一個限制,就是僅適用于用于封裝的源計算機和進行部署的目標計算機必需具有相同硬件抽象層(HAL)。
沒有相同的HAL,會造成電源管理模式不能正確推斷。網(wǎng)絡(luò)中提出了不用的HAL檢測解決方案,如ACPI封包、死性不改的電源模式等等。但是這些都不能做到100%的電源推斷正確,而且檢測會需要額外的文件,并且可能多次重啟計算機,耗費了時間。
問題1,怎么讓Sysprep突破不能自動檢測電源管理的限制?
2.1.2計算機硬盤
計算機硬盤的進展可謂快速。容量的提升,個人計算機硬盤容量從97年以前的個位數(shù)容量,突破到2022年現(xiàn)在的三位數(shù)容量。硬盤接口也始終在轉(zhuǎn)變,從IDE到SATA,再從SATA到SATAII,從前始終在服務(wù)器上使用的SCSI磁盤技術(shù)和RAID磁盤陣列技術(shù)也慢慢的被使用到個人計算機中。(IDE屬于并口硬盤,SATA和SCSI都屬于串口硬盤,RAID屬于硬盤陣列技術(shù))。
在部署過程中,由于磁盤類型不同,需要不同的硬盤驅(qū)動(一般都是關(guān)于串口磁盤和磁盤陣列的驅(qū)動)。假如部署過程中不能正確加載硬盤驅(qū)動,則會造成不能進入系統(tǒng)甚至不能啟動。
問題2,如何突破SRS(SATARAIDSCSI)硬盤類型的限制?
2.1.3驅(qū)動殘留
進行封裝的源計算機假如和進行部署的目標計算機硬件差異很大,例如AMDCPUnVIDIA主板的源計算機做的系統(tǒng)映像部署到IntelCPUIntel主板的機器上,在源計算機上裝載的驅(qū)動程序確定是在目標計算機上用不到了。即使目標計算機和源計算機硬件差異不大,但硬件技術(shù)差異很大,例如IntelCPUIntel主板的源計算機做的系統(tǒng)映像部署到IntelCPUIntel主板的機器上,源計算機為Intel865主板,而目標計算機為945主板,源計算機上的驅(qū)動也是鐵定用不到的。
這些驅(qū)動的殘留不僅僅是會留下系統(tǒng)垃圾的問題,假如源計算機上的驅(qū)動自動強行去識別目標計算機上的硬件,很有可能會造成系統(tǒng)的不穩(wěn)定乃至藍屏崩潰。
問題3,如何突破不同硬件驅(qū)動沖突的限制?
2.2突破HAL限制
2.2.1Longhorn的啟示
WindowsServer2022之前,Sysprep受到“必需源計算機與目標計算機有著相同的HAL”的限制,在HAL不相同的時候,不能正確推斷計算機電源管理模式。
從2022年WindowsServer2022發(fā)布到2022年底WindowsVista的發(fā)布中的3年中,微軟在研發(fā)Vista的時候,發(fā)布了以內(nèi)部研發(fā)編號命名的WindowsLonghorn測試版。
WindowsLonghorn與以往的Windows在啟動時有著肯定的區(qū)分。
第一,NTLDR有肯定區(qū)分,供應(yīng)了“/detecthal”接口;
其次,BOOT.INI也支持“/detecthal”參數(shù),以實現(xiàn)與NTLDR的結(jié)合;
第三,INF文件夾中有了“dtecthal.inf”,供應(yīng)各種HAL類型檢測的參數(shù)說明。
有了這三個文件,可以讓計算機在開機啟動時即自動檢測HAL,從而可以自動推斷電源管理選項。
2.2.2移植Longhorn的HAL推斷
現(xiàn)今大多數(shù)人還是以使用Windows2000/XP為主,所以,即使Longhorn的HAL推斷再怎么強悍,不能移植到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文件包拷貝到預(yù)備封裝的系統(tǒng)的%Windir%SYSTEM32下;
3將Longhorn的“dtecthal.inf”拷貝到預(yù)備封裝的系統(tǒng)的%Windir%INF下;
4修改C:BOOT.INI
在預(yù)備封裝的系統(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刪除預(yù)備封裝的系統(tǒng)的HAL信息,刪除注冊表中以下鍵值,假如提示權(quán)限不足不能刪除,則可用setacl.exe來修改權(quán)限再刪除。
HKEY_LOCAL_MACHINESYSTEMControlSet001EnumACPI_HAL
HKEY_LOCAL_MACHINESYSTEMControlSet001EnumRootACPI_HAL
HKEY_LOCAL_MACHINESYSTEMControlSet002EnumACPI_HAL
HKEY_LOCAL_MACHINESYSTEMControlSet002EnumRootACPI_HAL
HKEY_LOCAL_MACHINESYSTEMControlSet003EnumACPI_HAL
HKEY_LOCAL_MACHINESYSTEMControlSet003EnumRootACPI_HAL
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumACPI_HAL
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRootACPI_HAL
至此,突破了HAL限制的系統(tǒng)就已經(jīng)預(yù)備完畢。由于這個技術(shù)本身就出自微軟,所以對電源管理的推斷幾乎是100%。
突破HAL限制的系統(tǒng)可以部署在任何HAL環(huán)境的計算機上,不再有“源計算機和目標計算機需有相同的HAL”的限制。
2.1.1節(jié)中提出的問題完善解決
2.3突破SRS硬盤限制
確定目標計算機上可能用到的全部大量存儲掌握器,對于可能存在于目標計算機上的每個大量存儲掌握器,創(chuàng)建其硬件ID的列表。
2.3.1對于在Windows產(chǎn)品CD中供應(yīng)的大量存儲掌握器
可以創(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]
PCIVEN_8086DEV_1222="%WINDIR%infmshdc.inf"
PCIVEN_8086DEV_1230="%WINDIR%infmshdc.inf"
PCIVEN_8086DEV_7010="%WINDIR%infmshdc.inf"
PCIVEN_8086DEV_7111="%WINDIR%infmshdc.inf"
PCIVEN_8086DEV_2411="%WINDIR%infmshdc.inf"
PCIVEN_8086DEV_2421="%WINDIR%infmshdc.inf"
PCIVEN_8086DEV_7199="%WINDIR%infmshdc.inf"
2.3.2對于Windows產(chǎn)品CD上沒有供應(yīng)的大量存儲掌握器
將目標計算機上的大量存儲掌握器的驅(qū)動程序文件復(fù)制到您計算機上的文件夾中–例如,復(fù)制到主計算機硬盤驅(qū)動器上的%SYSTEMDRIVE%pnpdrvrsstorage中。
按以下格式向[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
第三方供應(yīng)的軟盤上的文件夾名稱,該文件夾中包含大量存儲驅(qū)動程序的副本。
disk_description
在第三方供應(yīng)的Txtsetup.oem文件中指定的軟盤說明。
disk_tag
在第三方供應(yīng)的Txtsetup.oem文件中指定的軟盤的磁盤標記。
將驅(qū)動程序文件放置到由Sysprep.inf中[SysprepMassStorage]部分指定的位置。例如,要支持新的Qlogic驅(qū)動程序,假如將文件復(fù)制到C:DriversStorage文件夾,則添加如下行:
[SysprepMassStorage]
PCIVEN_1077DEV_1080="C:DriversStorageqlogicqlogic.inf","C:DriversStorageqlogic","QlogicSoftwareDisk","C:DriversStorageqlogicqlogic2.3.3突破SRS實例
1收集需要的srs驅(qū)動,便利期間,直接下載DPS供應(yīng)的massstorage驅(qū)動:
http://./DriverPacks/download.php?pag=m
2解壓驅(qū)動到c:drivers。
3編輯sysprep.ini加入以下內(nèi)容
InstallFilesPath=C:sysprepi386
然后在[SysprepMassStorage]段中添加需要的串口磁盤驅(qū)動,依據(jù)DPS驅(qū)動包的說明書,一般只集成Intel、nVIDIA、Uli、VIA、SiS、AMD的串口磁盤驅(qū)動即可,在對應(yīng)的驅(qū)動包中的inf文件中,可以獲得硬件的即插即用ID。
例如:
[SysprepMassStorage]
PCIVEN_1022DEV_7469=c:driversmamAMDEIDE.inf
PCIVEN_1002DEV_4349=c:driversmatatiide.inf
PCIVEN_10B9DEV_5215=c:driversmau1ALIIDE.INF
PCIVEN_10B9DEV_5219=c:driversmau1ALIIDE.INF
PCIVEN_10B9DEV_5229=c:driversmau1ALIIDE.INF
PCIVEN_10B9DEV_5228=c:driversmau2m5228.INF
PCIVEN_10B9DEV_5281=c:driversmau2m5281.inf
PCIVEN_10B9DEV_5287=c:driversmau3ulisata.inf
PCIVEN_10B9DEV_5288=c:driversmau4ULISATA.INF
PCIVEN_10B9DEV_5289=c:driversmau5ULISATA.INF
PCIVEN_8086DEV_2652CC_0104=c:driversmin1iastor.inf
PCIVEN_8086DEV_27C3CC_0104=c:driversmin1iastor.inf
PCIVEN_8086DEV_2682CC_0104=c:driversmin1iastor.inf
PCIVEN_8086DEV_27C6CC_0104=c:driversmin1iastor.inf
PCIVEN_8086DEV_2822CC_0104=c:driversmin1iastor.inf
PCIVEN_8086DEV_2652CC_0106=c:driversmin1iaahci.inf
PCIVEN_8086DEV_2653CC_0106=c:driversmin1iaahci.inf
PCIVEN_8086DEV_27C1CC_0106=c:driversmin1iaahci.inf
PCIVEN_8086DEV_27C5CC_0106=c:driversmin1iaahci.inf
PCIVEN_8086DEV_2681CC_0106=c:driversmin1iaahci.inf
PCIVEN_8086DEV_2821CC_0106=c:driversmin1iaahci.inf
PCIVEN_8086DEV_24DFCC_0104=c:driversmin1Oiastor.inf
PCIVEN_8086DEV_25B0CC_0104=c:driversmin1Oiastor.inf
PCIVEN_10DEDEV_008E=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_00D5=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_00EE=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_00E3=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_0036=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_003E=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_0054=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_0055=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_0266=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_0267=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_036F=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_037E=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_037F=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_03F6=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_03F7=c:driversmNTMnvatabus.inf
PCIVEN_10DEDEV_03E7=c:driversmNTMnvatabus.inf
PCIVEN_1039DEV_0181=c:driversMSI1SISRaid1.INF
PCIVEN_1039DEV_0180=c:driversMSI2SISRaid.INF
PCIVEN_1039DEV_0182=c:driversMSI3SISRaid2.INF
PCIVEN_1106DEV_3349CC_0104=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_6287CC_0106=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_0591CC_0104=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_3249CC_0104=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_3149CC_0104=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_3164CC_0104=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_0581CC_0104=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_7372CC_0104=c:driversMV1VIAMRAID.INF
PCIVEN_1106DEV_4149=c:driversMV2viapide.inf
PCIVEN_1106DEV_0571=c:driversMV3vminiide.inf
PCIVEN_1106DEV_3149CC_0101=c:driversMV3vminiide.inf
PCIVEN_1106DEV_0591CC_0101=c:driversMV3vminiide.inf
PCIVEN_1106DEV_5337CC_0101=c:driversMV3vminiide.inf
PCIVEN_1106DEV_3349CC_0101=c:driversMV3vminiide.inf
PCIVEN_1106DEV_5287CC_0101=c:driversMV3vminiide.inf
PCIVEN_1106DEV_3164CC_0101=c:driversMV3vminiide.inf
PCIVEN_1106DEV_0581CC_0101=c:driversMV3vminiide.inf
PCIVEN_1106DEV_5324CC_0101=c:driversMV3vminiide.inf
PCIVEN_104BDEV_1040=c:driversMVMvmscsi.inf
4在c:sysprep名目下建立i386$oem$名目,在c:sysprepi386$oem$中建立cmdlines.txt文件,在文件中加入
[Commands]
"c:sysprepsysprep-clean"
這樣就會在最小化安裝的過程中禁用全部由于在目標計算機上不存在而未安裝的大量存儲掌握器。
至此,一個突破了SRS限制的系統(tǒng)映像預(yù)備完畢。
執(zhí)行sysprep進行封裝,在封裝的過程中,系統(tǒng)會自動安裝srs驅(qū)動。在最小化安裝的時候會刪除多余的驅(qū)動。
2.1.2節(jié)中的問題,這里也就已經(jīng)解決了。
2.4多余驅(qū)動的卸載
做封裝所用的計算機中所使用的驅(qū)動程序,在被部署的計算機上大多數(shù)不再有用(除非都被部署在相同硬件配置的計算機上)。所以,我們要一一刪除源計算機中的這些驅(qū)動,以免殘留的驅(qū)動造成部署的不正常。
卸載驅(qū)動,在“設(shè)備管理器”(我的電腦,屬性,硬件,設(shè)備管理器)中列出全部設(shè)備,然后一一卸載。
在設(shè)備管理器中,可以看到當前正在使用的全部硬件設(shè)備。
1常規(guī)驅(qū)動的卸載
除“IDEATA/ATAPI掌握器”和“計算機”以外的其他設(shè)備,一一綻開,然后卸載即可。
2更改IDE模式
由于不同計算機的IDE掌握器差異比較大,假如消失錯誤的識別,將會消失不能開機的狀況,所以,這里預(yù)先將IDE掌握器設(shè)置為“標準雙通道”,在部署時,安裝程序?qū)⒆詣硬檎液推鹌ヅ涞腎DE掌握器驅(qū)動程序。
3計算機電源管理
計算機電源管理分為很多種,可以適用于不同類別的計算機。假如電源管理推斷不正確,將會造成計算機的不正常。在計算機識別電源管理之前,需要將電源管理設(shè)為標準模式以基本適用于全部的計算機,這種標準模式僅僅可以保證計算機正常啟動,但是不能保證最高效的運行。
將計算機的電源管理模式設(shè)置為StandardPC以后,在部署時,由于我們適用了Longhorn的HAL自動推斷,計算機將會在啟動時自動修改StandardPC為被部署計算機的電源管理模式。
至此,突破了硬件限制的系統(tǒng)映像也被修改了出來,系統(tǒng)映像可以被部署到不同硬件配置的機器中了。
2.1.3節(jié)中的問題被解決。
2.5綜述
在不同硬件配置的機器中適用系統(tǒng)部署受到種種制約,本章分為3塊解決了映像系統(tǒng)萬能部署的3條限制。
Longhron的自動HAL推斷,解決了源計算機與目標計算機在不同HAL模式時不能進行部署的問題。
SRS驅(qū)動的集成,解決了系統(tǒng)部署在不同硬盤模式的狀況下進行部署的問題。
驅(qū)動的卸載,解決了系統(tǒng)部署在不同硬件配置的計算機下進行的問題。
這3條限制被突破以后,系統(tǒng)部署時,不必再遵循源計算機和目標計算機必需相同配置的原則,真正可以實現(xiàn)無限制的“萬能部署”。3.Auto自動封裝與部署的實現(xiàn)
3.1自動封裝與部署的意義和理論實現(xiàn)
3.1.1自動封裝的意義
1封裝測試需要許多次的重復(fù)
封裝一個可以部署的系統(tǒng)映象并不難,但是封裝一個比較完善的可以滿意各項要求的系統(tǒng)映象卻是一個特殊花費時間和精力的工作,需要許多次的重復(fù)制作。僅上一章中所提到的各種限制的突破,假如每次測試都時候都做一次,也會消耗許多的時間。
能不能讓這些手工的機械化的操作變成自動的?
2頻繁的手工操作簡單造成錯誤
即使是一個對封裝非常了解的人,在多次的執(zhí)行封裝中,也難免會消失遺漏和失誤,究竟封裝的步驟一環(huán)扣一環(huán),雖然不繁瑣也難免會造成錯誤。
怎么讓封裝的流程變的自動而無需人手工參加?
3封裝的普及
許多IT工并不非常了解封裝與部署,卻一樣想做出自己的系統(tǒng)映象用來部署,由于工作等緣由實在沒有時間去系統(tǒng)的學習,莫非封裝只能把握在少數(shù)人手中?
怎么讓封裝更為普及化,讓沒有太多封裝學問和閱歷的人也能快速的進行系統(tǒng)封裝?
3.1.2系統(tǒng)封裝和部署的具體流程
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突破SRS限制,把全部串口磁盤和磁盤陣列驅(qū)動都放置在%systemdrive%Drivers下,在Sysprep.inf中的[SysprepMassStorage]段下添加磁盤驅(qū)動位置等信息;
6卸載各種驅(qū)動,修改IDE掌握器為標準雙通道,修改計算機電源管理為StandardPC;
7運行Sysprep.exe進行系統(tǒng)封裝;
8關(guān)閉封裝源計算機;
9DOS模式啟動封裝源計算機,使用GHOST備份下封裝完的系統(tǒng)映象;
[部署]:
10使用GHOST恢復(fù)系統(tǒng)映象到部署目標計算機;
11部署目標計算機,系統(tǒng)運行%windir%system32setup.exe來部署計算機映象。
3.1.3自動封裝的理論實現(xiàn)
縱觀流程,封裝過程基本上可以分為相關(guān)文件的復(fù)制、對文件的調(diào)整、相關(guān)軟件的運行、對系統(tǒng)的調(diào)整四部分。
相關(guān)文件的復(fù)制,簡潔說,就是把應(yīng)當放在哪兒的文件放在哪兒,這些文件都是特定的,進行封裝必定要用到這些文件,所以,可以預(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的位置。當系統(tǒng)部署完畢后再把原始的ntldr和boot.ini替換回來,雖然替換回原有的不是必需的,但是個人認為,保持原系統(tǒng)的原始性肯定程度上有利于系統(tǒng)的穩(wěn)定性。
相關(guān)軟件的運行,這個主要是Sysprep,假如每次要為Sysprep設(shè)置相同的執(zhí)行方式,那么Sysprep供應(yīng)許多的運行參數(shù),添加參數(shù)運行Sysprep,就免去了每次都要去點擊封裝選項的問題。
對系統(tǒng)的調(diào)整,主要是卸載驅(qū)動以及調(diào)整計算機電源管理和IDE掌握器。雖然這個可以使用自動化實現(xiàn),但是個人認為這個手工還是比較保險。
3.2實現(xiàn)自動封裝與部署
3.2.1文件的自動復(fù)制
建立如下名目,以D:ES文件夾為例:
D:ESSysprepcvtarea.exe
D:ESSysprep
D:ESSysprepSetupcl.exe
D:ESSysprepSysprep.exe
D:ESSysprepSysprep.inf
D:ESSysprepSetACL.exe
D:ESSysprepAutoSysprep.cmd
D:ESSysprepcmdline.reg
D:ESWINDOWSinfdtecthal.inf
D:ESWINDOWSsystem32
D:ESWINDOWSsystem32halaacpi.dll
D:ESWINDOWSsystem32halacpi.dll
D:ESWINDOWSsystem32halapic.dll
D:ESWINDOWSsystem32halmacpi.dll
D:ESWINDOWSsystem32halmps.dll
D:ESWINDOWSsystem32halstnd.dll
D:ESWINDOWSsystem32mscomctl.ocx
D:ESWINDOWSsystem32ntkrnlmp.exe
D:ESWINDOWSsystem32ntkrnlpa.exe
D:ESWINDOWSsystem32ntkrnlup.exe
D:ESWINDOWSsystem32ntkrpamp.exe
D:ESWINDOWSAllUsrRun.cmd
D:ESDrivers
D:ESbootL.ini
D:ESntldrL
說明:
1ES文件夾模擬C盤根名目,全部文件排布和此后要復(fù)制到C盤中的排布是一樣的;
2Sysprep中的全部文件在第一章中介紹過,Sysprep文件夾將在系統(tǒng)部署最小化安裝時自動刪除,SetACL.exe是提升權(quán)限以修改注冊表的工具,AutoSysprep.cmd是自動進行封裝所用的批處理,cmdline.reg將在3.2.3中具體說明;
3inf和system32文件夾中的各文件在其次章中介紹過,用于Longhorn的自動HAL推斷;
4AllUsrRun的用處后面具體介紹;
5bootL.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
6ntldrL是Longhorn的系統(tǒng)引導(dǎo)文件,同樣用于自動HAL推斷。
7Drivers中放置串口磁盤和磁盤陣列驅(qū)動
文件打包:
選擇最常用的壓縮工具WinRAR來進行打包ES文件夾中的全部文件,設(shè)定默認解壓縮路徑為C:并且設(shè)置解壓模式為“隱蔽啟動對話框”和“掩蓋全部文件”,這幾個選項的設(shè)定可以保證文件不會復(fù)制到錯誤的位置。
3.2.2自動封裝的實現(xiàn)
AutoSysprep.cmd的內(nèi)容如下(以封裝XP系統(tǒng)為例):
rem自動封裝,靜默模式、最小化、不重置激活大事、清空大事查看器日志、不重啟計算機
start/waitc:sysprepsysprep.exe-quiet-mini-activated-reseal-noreboot
rem導(dǎo)入cmdline.reg鍵值(3.2.3中介紹)
start/waitregedit.exe/sc:Sysprepcmdline.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進入Sysprep文件夾內(nèi)
cd
cdsysprep
rem使用SetACL來取消有關(guān)源計算機HAL的注冊表信息的權(quán)限,以便隨后的修改
setaclMACHINESYSTEMControlSet001EnumACPI_HAL/registry/granteveryone/full
setaclMACHINESYSTEMControlSet001EnumRootACPI_HAL/registry/granteveryone/full
setaclMACHINESYSTEMControlSet002EnumACPI_HAL/registry/granteveryone/full
setaclMACHINESYSTEMControlSet002EnumRootACPI_HAL/registry/granteveryone/full
setaclMACHINESYSTEMControlSet003EnumACPI_HAL/registry/granteveryone/full
setaclMACHINESYSTEMControlSet003EnumRootACPI_HAL/registry/granteveryone/full
setaclMACHINESYSTEMCurrentControlSetEnumACPI_HAL/registry/granteveryone/full
setaclMACHINESYSTEMCurrentControlSetEnumRootACPI_HAL/registry/granteveryone/full
rem刪除源計算機的HAL注冊表信息
regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet001EnumACPI_HAL/f
regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet001EnumRootACPI_HAL/f
regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet002EnumACPI_HAL/f
regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet002EnumRootACPI_HAL/f
regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet003EnumACPI_HAL/f
regdeleteHKEY_LOCAL_MACHINESYSTEMControlSet003EnumRootACPI_HAL/f
regdeleteHKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumACPI_HAL/f
regdeleteHKEY_LOCAL_MACHINESYSTEMCurrentControlSetEnumRootACPI_HAL/f
rem以下用于IntelCPUIntel主板的源計算機,Intel的這兩組鍵值簡單造成部署到非Intel硬件計算機中的藍屏事故
rem使用SetACL來取消有關(guān)當前Intel主板的注冊表信息的權(quán)限,以便隨后的修改
setaclMACHINESYSTEMControlSet001ServicesIntelIde/registry/granteveryone/full
setaclMACHINESYSTEMControlSet002ServicesIntelIde/registry/granteveryone/full
setaclMACHINESYSTEMControlSet003ServicesIntelIde/registry/granteveryone/full
setaclMACHINESYSTEMCurrentControlSetServicesIntelIde/registry/granteveryone/full
rem使用SetACL來取消有關(guān)當前IntelCPU的注冊表信息的權(quán)限,以便隨后的修改
setaclMACHINESYSTEMControlSet001Servicesintelppm/registry/granteveryone/full
setaclMACHINESYSTEMControlSet002Servicesintelppm/registry/granteveryone/full
setaclMACHINESYSTEMControlSet003Servicesintelppm/registry/granteveryone/full
setaclMACHINESYSTEMCurrentControlSetServicesintelppm/registry/granteveryone/full
rem刪除有關(guān)Intel主板的注冊表信息
regdeleteMACHINESYSTEMControlSet001ServicesIntelIde/f
regdeleteMACHINESYSTEMControlSet002ServicesIntelIde/f
regdeleteMACHINESYSTEMControlSet003ServicesIntelIde/f
regdeleteMACHINESYSTEMCurrentControlSetServicesIntelIde/f
rem刪除有關(guān)IntelCPU的注冊表信息
regdeleteMACHINESYSTEMControlSet001Servicesintelppm/f
regdelet
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度草牧場承包經(jīng)營權(quán)租賃與農(nóng)業(yè)保險聯(lián)動合同3篇
- 二零二五版集裝箱租賃及售后服務(wù)合同樣本3篇
- 2025年度數(shù)字經(jīng)濟產(chǎn)業(yè)園區(qū)建設(shè)合同3篇
- 2025年移動辦公小程序定制開發(fā)與企業(yè)管理服務(wù)合同2篇
- 2024版成都市存量房屋買賣合同實施條例
- 二零二五版智能家居定制家具采購與售后保障合同3篇
- 2025年度餐飲行業(yè)食品安全風險評估合同21篇
- 二零二五河南事業(yè)單位100人招聘合同范本解讀與使用指南3篇
- 2024起重機械進出口貿(mào)易合同規(guī)范范本3篇
- 二零二五白酒定制酒生產(chǎn)與銷售合作合同3篇
- 春節(jié)英語介紹SpringFestival(課件)新思維小學英語5A
- 進度控制流程圖
- 2023年江蘇省南京市中考化學真題
- 【閱讀提升】部編版語文五年級下冊第四單元閱讀要素解析 類文閱讀課外閱讀過關(guān)(含答案)
- 供電副所長述職報告
- 現(xiàn)在完成時練習(短暫性動詞與延續(xù)性動詞的轉(zhuǎn)換)
- 產(chǎn)品質(zhì)量監(jiān)控方案
- 物業(yè)總經(jīng)理述職報告
- 新起點,新發(fā)展心得體會
- 深圳大學學校簡介課件
- 校園欺凌問題成因及對策分析研究論文
評論
0/150
提交評論