2,313 瀏覽數

WinPE + RIS / WDS

WinPE(Windows PreInstallation Environment)
之前 WinXP 所產生的 WinPE 可以透過 Linux 下的 PXE 來開啟,請自行參考說明 http://benjr.tw/275 新版的還是需要搭配 WDS.

Step 0 : 前言.
WinPE (Windows PreInstallation Environment) 的功能就像是 Linux 的 Live CD 一樣, 透過這 WinPE 開機,我們不需要安裝作業系統到電腦上我們可以透過他做一些簡單的功能,不過 WinPE 通常是當作 Windows 的安裝前導環境,除了燒成光碟來使用外我們還可以將他搭配 Windows WDS 一同使用,直接使用網路開機並將電腦直接開啟至 WinPE 的作業環境,這 WinPE + WDS 的概念其實跟 Linux 下的 PXE(DHCP + TFTP) http://benjr.tw/83 類似.

關於 WinPE 下面是他的簡介
http://www.microsoft.com/taiwan/technet/columns/profwin/36-WinPE.mspx

接下來主要是介紹如何透過 WinPE + RIS / WDS 建立無磁碟的 Windows 工作環境,

Step 1 : WinPE + RIS / WDS 環境需求
1.一台具有 Windows AD , DNS , DHCP , RIS / WDS 的 server (eg: IP 192.7.1.1)
2.一台具有 PXE(Preboot eXecution Environment) 網路開機功能的機台.

WinPE_RIS_WDS
Step 2 : 下載 winPE 相關檔案
WinPE 的映像檔 ISO 可以依據我們自己的需求手動做修改,不過第一步就是要下載 PE 的工具 Windows Automated Installation Kit (WAIK)
http://www.microsoft.com/downloads/en/results.aspx?freetext=waik&displaylang=en&stype=s_basic

下載後就可以開始我們的工作了.目前可以下載到的是 Automated Installation Kit (AIK) for Windows Vista SP1 and Windows Server 2008 和 Windows® AIK for Windows® 7 ,下載下來是個 ISO 檔,不需要燒錄成光碟我們可以透過 winimage  – http://www.winimage.com/download.htm 這一隻工具將他解開,解開後在根目錄下執行 STARTCD.EXE 並點選 “Windows AIK 安裝程式(W)" 開始安裝 WinPE 的工具.
waik

Step 3: Windows Server + (AD, DNS, DHCP,WDS)
這邊使用 WinPE + RIS / WDS 的無磁碟 Windows 工作環境,其中 RIS / WDS 需要建立以下的 Windows Service (AD, DNS, DHCP, RIS / WDS) 關於 Windows 的 AD , DNS , DHCP , RIS / WDS 在 windows 的官方網站皆有說明,這邊就不加以敘述.

我們開始建立 WinPE 的映像檔 ISO.在程式集中的 Microsoft Windows AIK 點選 Windows PE 工具命令提示. 預設工作目錄為 C:\Program Files\Windows AIK\Tools\PETools

C:\Program Files\Windows AIK\Tools\PETools>copype.cmd x86 C:\winpe_x86 
===================================================
Creating Windows PE customization working directoryC:\winpe_x86
===================================================

複製了 1 個檔案。
複製了 1 個檔案。
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\bcd
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\boot.sdi
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\bootfix.bin
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\etfsboot.com
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\chs_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\cht_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\jpn_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\kor_boot.ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\boot\fonts\wgl4_boot.ttf
複製 9 個檔案
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\bcd
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\chs_boot .ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\cht_boot .ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\jpn_boot .ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\kor_boot .ttf
C:\Program Files\Windows AIK\Tools\PETools\x86\EFI\microsoft\boot\fonts\wgl4_boo t.ttf
複製 6 個檔案
複製了 1 個檔案。
複製了 1 個檔案。

Success

Updating path to include peimg, oscdimg, imagex

C:\Program Files\Windows AIK\Tools\PETools\
C:\Program Files\Windows AIK\Tools\PETools\..\x86

我們來看看目錄 C:\winpe_x86 多了什麼檔案

C:\winpe_x86>dir
 磁碟區 C 中的磁碟是 WinXP
 磁碟區序號:  3861-5C05
 C:\winpe_x86 的目錄
2010/12/01  上午 10:17    <DIR>          .
2010/12/01  上午 10:17    <DIR>          ..
2006/09/18  下午 01:27             2,048 etfsboot.com
2010/12/01  上午 10:17    <DIR>          ISO
2010/12/01  上午 10:17    <DIR>          mount
2006/11/14  下午 05:21       164,700,272 winpe.wim
               2 個檔案     164,702,320 位元組
               4 個目錄  95,479,058,432 位元組可用

其中的 winpe.wim 就是 winPE 的檔案 ,其時 WAIK 用 winimage 解開後在根目錄下有一個檔案 WINPE.CAB 一樣用 winimage 解開後會得到 2 個文件:F1_WINPE.WIM 和 F3_WINPE.WIM.

F1_WINPE.WIM 是 32bit 的 winpe.iso 而 F3_WINPE.WIM 是 x86-64 版本,其實在前面安裝 Windows AIK 時已經將這兩個檔案放置 C:\Program Files\Windows AIK\Tools\PETools\ x86 或是 amd64 目錄下.

一樣的在使用 copype.cmd 時系統自己會選擇適合的平台並更名為 winpe.wim.

Step 4: WDS / RIS
將剛剛得到的 winpe.wim 檔案就可以把他加入到 WDS 或是 RIS 裡面.Client 就可以透過 PXE 開啟系統,不過這只是開始後面會介紹到如何自訂驅動程式和自動化程式的執行.
winpe02  winpe03
Step 5: WDS / RIS F12
不過在 Windows 下的 RIS 或是 WDS 有一點很討厭就是需要按下 F12 才會讓系統進入 PXE 安裝環境.如何取消呢!!

  1. RIS 將 RemoteInstall\OSChooser\i386 目錄下的
    • Startrom.com 備份成 Startrom.bak
    • 並將 Startrom.n12 改成為 Startrom.com
    • 重新啟動 RIS service
  2. WDS 將 \\WDS_Server_Name\reminst\Boot\x86 目錄下的
    • pxeboot.com 備份成 pxeboot.bak
    • 並將 pxeboot.n12 改成為 pxeboot.com
    • 重新啟動 WDS service

    或是透過 “PXE Boot Policy" 修改. wds

Step 6: 驅動程式
雖然前面所產生的 winpe.wim 基本已經包裝了不少驅動程式,但是如果我需要新版的驅動程式或是 winPE 並不支援的驅動程式該怎麼辦,我們可以手動加入.

  • 掛載 WinPE image (使用 imagex 指令)
    C:\Program Files\Windows AIK\Tools\PETools>imagex /mountrw C:\winpe_x86\winpe.wim 1 c:\winpe_x86\mount
    ImageX Tool for Windows
    Copyright (C) Microsoft Corp. 1981-2005. All rights reserved.
    Mounting (RW): [C:\winpe_x86\winpe.wim, 1] ->
    Successfully mounted image (RW).
    
  • 確定 WinPE image 是否掛載
    C:\Program Files\Windows AIK\Tools\PETools>imagex /mountrw C:\winpe_x86\winpe.wim 1 c:\winpe_x86\mount
    ImageX Tool for Windows
    Copyright (C) Microsoft Corp. 1981-2005. All rights reserved.
    Mounting (RW): [C:\winpe_x86\winpe.wim, 1] ->  
    Successfully mounted image (RW).
    

    在 Windows 7 之後的版本提供了另外一組指令 Dism 他的功能如同前面所介紹的指令 imagex “Dism /Mount-WIM /WimFile:C:\winpe_x86\winpe.wi /index:1 /MountDir:c:\winpe_x86\mount"

  • 加入額外的驅動程式
    C:\Program Files\Windows AIK\Tools\PETools>peimg /inf=c:\winpe_x86\b57nd60x.inf c:\winpe_x86\mount\Windows
    Preinstallation Environment Image Setup Tool for Windows
    Copyright (C) Microsoft Corporation. All rights reserved.
    正在安裝 INF 封裝: C:\winpe_x86\b57nd60x.inf
    PEIMG 已順利完成操作。
    

    這邊我加入了 Broadcom Netxtreme Gigabit Ethernet 5722 的驅動程式,雖然指令只指定該驅動程式的 inf 檔,但其他的檔案(b57nd60x.sys ,b57nd60x.cat)還是必須要存在 .
    一樣也可以透過 Dism 來做 “Dism /image:C:\winpe_x86\mount /Add-Driver /dirver:c:\winpe_x86\b57nd60x.inf "

  • 卸載 WinPE image
    C:\Program Files\Windows AIK\Tools\PETools>imagex /unmount c:\winpe_x86\mount
    ImageX Tool for Windows
    Copyright (C) Microsoft Corp. 1981-2005. All rights reserved.
    Unmounting: …
    Successfully unmounted image.
    

    將 winPE 映像檔卸載之後從新將該檔案放回到 RIS / WDS 即可.一樣也可以透過 Dism 來做  “Dism /Unmount-WIM /MountDir:c:\winpe_x86\mount /discard"

Step 7: 自動化
winPE 後加入一些自動化程式時要怎麼做呢!!! Windows PE 提供三個方法來啟動自訂指令碼:Winpeshl.ini、Startnet.cmd 和 Autounattend.xml
不過我只找到在 \Windows\System32 目錄的 startnet.cmd 有興趣的可以參考微軟的官方網頁說明 http://technet.microsoft.com/zh-tw/library/dd744245(WS.10).aspx

網友的想法

發表迴響