電腦店訊 微軟官方背景資料:
如何通過Sysprep准備磁盤復制所需的映像
Windows 如何確定 ACPI 兼容性
安裝 Windows XP 或 Windows Server 2003 之後的 HAL 選項
眾所周知,微軟自帶系統封裝工具SYSPREP,可以方便快捷地進行企業產品部署,但是在WINDOWS LONGHORN之前,運用SYSPREP有一個限制,就是僅適用於用於封裝的源計算機和目標計算機必須具有相同硬件抽象層 (HAL),因此,不同的網友均提出了不用的HAL檢測解決方案,如ACPI封包、.的電源模式等等,這些解決方案不同程度存在幾個缺點:
1、檢測的兼容性無法達到100%;
2、檢測需要額外的文件,並且可能需要重新啟動計算機,耗費了時間;
有沒有一個最完美的解決方案呢?答案其實就在微軟未公開的技術。
筆者通過對於WINDOWS LONGHORN各內測版本進行分析,現在公開微軟部分未公開的技術:
1、微軟自WINDOWS LONGHORN後,改寫了NTLDR的部分代碼,提供了/detecthal 接口
2、BOOT.INI支持/detecthal參數,以實現與NTLDR的結合,並實現開機啟動即自動檢測HAL
3、\INF\dtecthal.inf是一個關鍵性文件,提供各種HAL類型檢測的參數說明
以下為進行SYSPREP封裝後的自動完美檢測HAL具體實現方案:
1、從系統中提取相應的HAL文件包:(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB)
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll---->並更名為halstnd.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe---->並更名為ntkrnlup.exe
2、將上述相應的HAL文件包拷貝到系統\WINDOWS\SYSTEM32\(WINDOWS 2000為\WINNT\SYSTEM32\)
3、將以下代碼保存為dtecthal.inf並拷貝到\WINDOWS\INF\(WINDOWS 2000為\WINNT\INF\)
如果不可見,可在文件夾選項裡在“顯示所有的文件和文件夾”打上勾和“隱藏受保護的系統文件”去掉勾。
[Version]
signature="$Windows NT$"
DriverVer=07/01/2001,5.1.2600.2180
[hal]
acpipic_up = halacpi.dll
e_isa_up = halstnd.dll
mps_up = halapic.dll
mps_mp = halmps.dll
acpiapic_up = halaacpi.dll
acpiapic_mp = halmacpi.dll
;
;
;-------------------------------------------------------------------------
; Auto detecd Computer HAL with BIOS information
;-------------------------------------------------------------------------
; Copyright(R)1980-2005 Microsoft Crack Center MCC(1980-2005)
;
; tesk work by mstest@MCC 20050515
;
; [email protected]
; [ACPIOptions]
; This section lists options that affect the installation of ACPI on x86
;
; ACPIEnable
; 0 - ACPI will be disabled at install time regardless of the BIOS
; 1 - ACPI will be enabled at install time if an ACPI BIOS is present
; 2 - ACPI will be enabled based on the GoodACPIBios list, the NWACL
; and ACPIBiosDate
;
; ACPIBiosDate = mm,dd,yyyy
; Supplies the date that a BIOS must have to be considered good if it is
; not in the GoodACPIBios list. If a BIOS has a date greater than this and
; is not in the NWACL list, then it will be used unless ACPIEnable = 0
;
[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999
4、修改BOOT.INI
在准備封裝的系統後面加上 /DETECTHAL參數
如:
[boot loader]
timeout=0
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /detecthal
5、將LONGHORN版本的NTLDR拷貝到從C:\,覆蓋原有的NTLDR
longhorn電源判斷封裝恢復Ghost 制作教程
一、准備工作
1、首先,當然是要准備一台能用的電腦了,推薦使用AMD平台,這樣會大大減少不兼容的幾率。
2、准備所需工具軟件
相應的HAL文件:(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB)
DEPLOY.CAB(在系統安裝光盤:\SUPPORT\TOOLS目錄下自帶)
Ghost v8.0 .or. Ghost v8.2
Windows2K/XP/2003系統安裝光盤(推薦使用免激活的版本)
DllCacheManager V1.0(.國專用版)Dllcache備份還原工具
3、安裝操作系統
首先當然是分區格式化了,建議用FAT32格式,然後用format c:/s格式化C盤,這樣的話,系統就帶一個DOS,方便以後系統維護:)
然後按正常的步驟安裝好操作系統,並打好系統補丁。
4、安裝常用的應用軟件
根據各自的需要,安裝常用的工具,如:Office,WinRAR,RealPlayer,輸入法等......
5、安裝DllCacheManager_V1.0(.國專用版)Dllcache備份還原工具
解壓DllCacheManager.rar文件,然後把DllCacheManager.exe、ZProgBar.ocx兩文件拷貝到C:\。
二、系統減肥
為了減少Ghost恢復鏡像備份文件時所需時間,或在一張光盤上盡可能安裝更多的軟件,這就需要將Ghost備份文件制作得足夠小,因此我們需要對系統進行一系列的減肥工作。當然如果你對Ghost備份文件的體積不介意的話,就沒有必要對系統進行減肥。要想把鏡像控制在700M以內,系統就有必要控制在1.35G左右。
1、關閉系統還原
2、關閉系統休眠
3、轉移虛擬內存頁面文件
注:以上三項在系統封裝完以後,重進系統時會還原。而且如果系統是FAT32格式,且Ghost版本在8.0以上,進行克隆時會自動去掉系統休眠(hiberfil.sys)文件及虛擬內存(pagefile.sys)文件,至於系統還原還沒試過,不很清楚,有知道的哪位DX可否告知一下。
4、清理磁盤,刪除系統和IE臨時文件
刪除C:\WINDOWS\目錄下$NtUnins***$的文件夾
刪除C:\WINDOWS\SoftwareDistribution\Download下的所有文件夾
刪除C:\WINDOWS\Installer下的$PatchCache$目錄
5、移動我的文檔至D:\我的文檔
三、刪除、更改系統硬件驅動
1、更改IDE ATA/ATAPI控制器為“標准雙通道 PCI IDE 控制器”
2、更改計算機電源管理模式 Advanced Configuration Power Interface(ACPI) 為 Standard PC
打開設備管理器,右鍵點擊“計算機”下的“Advanced Configuration Power Interface(ACPI)”,選擇“更改驅動程序”,在彈出的“硬件更新向導”對話框中選擇“從列表或指定位置安裝(高級)”,點擊下一步,再選擇“不要搜索,我要自己選擇要安裝的驅動程序”,再點擊下一步,選中“Standard PC”,再點擊下一步,硬件管理器會自動安裝Standard PC的驅動,之後電腦會提示重新啟動,則選擇“否”不啟動,完成OK。
3、卸載硬件驅動
(1)卸載網絡適配器。
(2)卸載通用串行總線控制器。
(3)卸載聲音、視頻游戲控制器。
(4)卸載監視器。
(5)卸載顯示卡。
注:卸載硬件驅動時如系統提示要重新啟動,則選擇“否”不啟動。
四、拷貝所需的文件
1、從系統中提取如下文件(WIN2000在SP4.CAB/WINDOWS XP SP2在SP2.CAB/WINDOWS 2003在SP1.CAB中):
halacpi.dll
halapic.dll
halmps.dll
halaacpi.dll
halmacpi.dll
hal.dll →並更名為halstnd.dll
ntkrnlmp.exe
ntkrnlpa.exe
ntkrpamp.exe
ntoskrnl.exe →並更名為ntkrnlup.exe
2、將上述文件拷貝到系統\WINDOWS\SYSTEM32\(2000為\WINNT\SYSTEM32\)目錄;
3、將以下代碼保存為dtecthal.inf並拷貝到\WINDOWS\INF\(WINDOWS 2000為\WINNT\INF\)如果不可見,可在文件夾選項裡在“顯示所有的文件和文件夾”打上勾和“隱藏受保護的系統文件”去掉勾。
[Version]
signature="$Windows NT$"
DriverVer=07/01/2001
[hal]
MPS_MP = halmps.dll
MPS_UP = halapic.dll
E_ISA_UP = halstnd.dll
ACPIPIC_UP = halacpi.dll
ACPIAPIC_UP = halaacpi.dll
ACPIAPIC_MP = halmacpi.dll
[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999
4、將原文件BOOT.INI重命名,如:BOOT1.INI,修改BOOT1.INI,在准備封裝的系統後面加上 /DETECTHAL參數,另存為BOOT.INI
如:
[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /detecthal
C:\ = "Microsoft Windows"
注:如果你是采用的是FAT32格式且格式化時是用format c:/s,那麼建議保留最後一行,這樣啟動時會有兩個選項,一個是進系統,一個是進DOS。
5、將系統下的NTLDR文件重命名,如:NTLDR3,將LONGHORN版本的NTLDR拷貝到從C:\
6、解壓DEPLOY.CAB到c:\ sysprep
7、創建批處理文件,作為封裝完後運行的命令,
如:
@echo off
cd c:\
del ntldr
ren ntldr3 ntldr
attrib ntldr +h +s +r
attrib boot.ini -h -s -r
del boot.ini
ren boot1.ini boot.ini
attrib boot.ini +h +s +r
del ZProgBar.ocx
del c:\windows\run.bat
exit
另存為C:\WINDOWS\RUN.BAT
五、封裝
1、創建sysprep.inf自動應答文件
這裡就不在復述,只是在“運行一次”裡要記得加入run.bat命令
2、重新封裝系統
運行Sysprep目錄中的Sysprep.exe對系統直接進行封裝,這裡在需要選上前三項,即:不重置激活的寬限期、使用最小化安裝、不重新產生安全標識符,關機模式選退出,選項設置好後點“重新封裝”就可以了。封裝過程大概30秒左右,完成後就會自動退出。
3、保存本用戶的輸入法設置
打開 控制面板-區域和語言選項-高級 將 “將所有設置應用於當前用戶帳戶和默認用戶配置文件(D)” 選框選上,解決安裝的輸入法在系統還原後,系統托盤沒顯示的問題。
4、備份DllCache目錄文件
運行C:\下的DllCacheManager.exe,選上“恢復時自動刪除自己”,然後點備份即可。這一步可減少磁盤占用空間300M左右。
5、修改注冊表
運行regedit,查找hal項,刪除***HAL注冊表項,刪除時,在要刪除的項上點右鍵,然後選擇 權限 ,為一個用戶添加完全權限即可。在完成以上步驟後,C盤中的系統已經是一個經過重新封裝的干淨系統了,至此整個封裝系統的制作就算完成。接下來的工作就是用DOS啟動計算機,將制作好的干淨系統制作成Ghost鏡像文件,以便裝機時使用。
六、制作鏡像
用DOS啟動計算機,運行ghost –z9,保存鏡像文件。