1. 程式人生 > >最新Ghost系統封裝教程及封裝工具原理

最新Ghost系統封裝教程及封裝工具原理

本教程基於MCC硬體抽象HAL(電源模式)原理,系統以XP為例。

這裡將系統封裝分為3步:做系統、封裝、部署


================================

一、做系統

================================

平臺不限,但不建議在虛擬機器上製作。CPU及主機板晶片沒有限制,關於intelide和intelppm的不相容問題,沒有反饋因此在AMD機器上藍屏的現象。

1、選用免啟用的版本安裝盤,正常安裝系統,打補丁,優化服務

    XP,安裝大約需要15-20分鐘。
    建議關閉系統還原及自定義通知,關閉遠端,關閉共享,關閉休眠
    注意音效卡要驅動上,否則封裝後的系統都不在工作列顯示音量。
    執行一次windows meida player,避免以後出現嚮導
    安裝輸入法,並在“區域和語言選項”的“高階”中,應用於預設使用者賬戶。
    我的文件,如果有需要也可以移動到D盤。
    outlook不能儲存密碼及SQL安裝掛起的問題,也可以在這裡清理一下相關注冊表。

2、安裝需要的軟體

    OFFICE安裝時要將“第一次使用時安裝”的專案完全安裝上,否則會以後提示插入光碟。
    不建議安裝防毒軟體,特別是卡巴斯基,該軟體會與某封裝工具衝突。
    不建議安裝虛擬光碟機及燒錄軟體,已知部分軟體在封裝後失效。
    不建議刪除windows/Installer下的安裝檔案,可能會造成部分程式無法解除安裝。

3、封裝準備

    執行“gpedit.msc"開啟組策略
    “計算機配置/管理模板/系統”
    啟用“關閉 Windows Update 裝置驅動程式搜尋”


    “管理模板/系統/Internet 通訊管理/Internet 通訊設定”
    啟用“關閉 Windows Update 裝置驅動程式搜尋”
    “使用者配置/管理模板/系統”
    啟用“配置驅動程式搜尋位置” (不搜尋軟盤,光碟機,Windows Update)
    “使用者配置/管理模板/系統”
    忽略“裝置驅動程式的程式碼簽名”
    檢查系統屬性中的驅動簽名是否為忽略,update是否為從不搜尋。

    清理Documents and Settings目錄,可以清理到10M以下。
    當前賬戶/收藏夾,安裝軟體後經常有連結,清之~
    當前賬戶/SendTo,郵件接收,建議刪除
    當前賬戶/Recent,歷史記錄,現在刪了以後還得刪
    當前賬戶/Local Settings/Temp,臨時檔案,能刪的全刪
    當前賬戶/Local Settings/Application Data下的圖示快取IconCache.db,約5-10M
    當前賬戶/桌面,建議將所有圖示移動到All Users/桌面

    看下控制面板裡的新增刪除程式,有沒有流氓軟體,有就幹掉,當然,除非你有特殊目的。


================================

二、封裝


================================

1、更改 IDE 控制器及電源
    在裝置管理器中更新驅動
    從列表或指定位置安裝
    不要搜尋,我要自己選擇要安裝的驅動程式
    IDE更改為“標準雙通道 PCI IDE 控制器”,電源更改為“Standard PC”

2、提取檢測電源需要的相關檔案
    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
    將上述檔案拷貝到系統SYSTEM32目錄

3、新增inf檔案
    將以下程式碼儲存為dtecthal.inf並拷貝到/WINDOWS/INF/,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,加上 /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:/GHLDR=一鍵GHOST v11.0 Build 070707


5、NTLDR
    引導檔案,將LONGHORN版本的NTLDR放到C盤下
    注意將原NTLDR備份,並在部署後還原

6、封裝
    將sysprep.exe,setupcl.exe,及配置好的sysprep.inf放到c:/sysprep
    執行sysprep,“使用最小化安裝”、關機模式“退出”,點選“重新封裝
    等待大約5-10秒,完成。

7、刪除登錄檔中本地連線、電源相關

    搜尋“本地連線”,刪除上級節點,可避免安裝到其他機器出現“本地連線2”

    刪除電源相關的登錄檔鍵:
    HKLM/SYSTEM/CurrentControlSet/Enum/ACPI_HAL
    HKLM/SYSTEM/CurrentControlSet/Enum/Root/ACPI_HAL
    HKLM/SYSTEM/CurrentControlSet001/Enum/ACPI_HAL
    HKLM/SYSTEM/CurrentControlSet001/Enum/Root/ACPI_HAL
    如果有002和003也刪除,刪除時先右點許可權,賦予完全控制權限,否則無法刪除。

    注意刪除電源的登錄檔必須在封裝後操作,否則執行sysprep時會宕機。

    另外封裝後切勿執行windows優化大師,執行後宕機。

8、設定好部署需要呼叫的檔案,如註冊元件時執行的程式,可寫在登錄檔runonce。
      系統啟動選單的時間是在註冊元件前恢復為預設的30秒的
      所以也可以在這裡更改回原來的boot.ini及ntldr

9、解除安裝驅動
    很多文章講求順序,但是實際中並沒發現不按順序會怎樣。
    解除安裝顯示器、顯示卡、音效卡、網絡卡、USB。都不解除安裝也不會有問題。
    所謂的“幽靈硬體”就是指系統中母機殘留的硬體資訊,不要緊的。

10、最後的檢查及清理
      清除windows下的lastgood (最後一次正確的配置)
      清除windows下的Prefetch (程式快取)
      /Local Settings/Application Data/IconCache.db 看是不是又出來了,有就刪除
      windows及C盤,點左面的“隱藏此資料夾內容”,資料夾選項中恢復預設
      工作列屬性,清除開始選單及最近文件的列表

如果要備份DllCache,使用相關工具在任何時候執行都可以。

以上是手動封裝的過程,中間無需重啟,如果是工具輔助封裝,基本可做到完全自動化。
封裝工具已知的有ASR、S&R&S,MSDP,YLMF,創輝,自由天空,PreTooler,
當然還有小兵的Dprep,另外於安的工具應該屬於S&R&S輔助擴充套件。

這裡講原理,不講使用。以我自己的封裝工具為例吧 :P

工具集成了sysprep.exe及配置好的自動應答檔案,並根據當前系統XP/2K/03進行釋放,
執行後使用devcon.exe來更新及解除安裝硬體驅動,從I386下提取判斷電源需要的檔案,
修改boot.ini並替換新的ntldr,呼叫sysprep完成封裝,並在封裝後清理系統及登錄檔。


封裝到此為止,可以重啟製作GHO映象了,注意現在boot選單時間是0。
可以使用光碟引導,推薦一鍵GHOST,可選擇最大壓縮。


================================

三、部署

================================

封裝工具一般都在登錄檔cmdline處接入自己的部署介面,再間接呼叫setup
使用工具封裝,擴充套件介面可以在部署前呼叫外部程式,如驅動選擇工具及dllcache恢復。
開始安裝的過程也是檢測硬體的過程,所以驅動如果是壓縮包,要在安裝前釋放完畢。

封裝工具呼叫的批處理,一般都是不顯示視窗的,如果手動封裝,可用VBS來呼叫批處理。
如果封裝工具不支援恢復選單選擇時間,或是手動封裝,可在註冊元件處還原boot.ini及ntldr

進入桌面後,封裝工具仍可以發揮作用,如填寫IP,呼叫程式,刪除檔案,刪除目錄
對於手動封裝,這些可以通過批處理來完成。

另外恢復dllcache也可以在進入桌面後執行。

不建議在第一次進入桌面時呼叫太多的程式。

================================

所有教程其實都大同小異,我這裡只是詳細提了些細節問題,算做給大家參考。

希望大家都能做出自己的封裝作品,當然,選擇一款好的封裝工具也很重要:)

封裝過程並無死規矩,要靈活運用,我封裝的時候經常是一邊放音樂一邊封裝

直到音效卡被解除安裝。。。
.
.
.
             
做封裝的系統,不要精簡得太厲害,有幾個服務必須要開啟,否則會出現莫名其妙的錯誤提示等等
.
.
.

;將系統封裝的背景顯示模式為 1024×768
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/VgaSave/Device0]

"DefaultSettings.YResolution"=dword:00000300
"DefaultSettings.XResolution"=dword:00000400
"DefaultSettings.BitsPerPel"=dword:00000020

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Video/{23A77BF7-ED96-40EC-AF06-9B1F4867732A}/0000]

"DefaultSettings.YResolution"=dword:00000300
"DefaultSettings.XResolution"=dword:00000400
"DefaultSettings.BitsPerPel"=dword:00000020


;將系統封裝的背景顯示模式為800×600

[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/VgaSave/Device0]

"DefaultSettings.XResolution"=dword:00000320
"DefaultSettings.YResolution"=dword:00000258
"DefaultSettings.BitsPerPel"=dword:00000020


[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Video/{23A77BF7-ED96-40EC-AF06-9B1F4867732A}/0000]

"DefaultSettings.XResolution"=dword:00000320
"DefaultSettings.YResolution"=dword:00000258
"DefaultSettings.BitsPerPel"=dword:00000020