2012年6月4日 星期一

整併Windows 7和Windows Server 2008 R2光碟片 (Create a Combined Windows 7 and Windows Server 2008 R2 DVD)

由於工作上的關係,經常需要在不同的場所安裝Windows 7或Windows Server 2008 R2,所以身邊常需要攜帶Windows 7和Windows Server 2008 R2二片光碟片,心想何不將二片光碟片合而為一,或者製作為開機的USB行動碟,以方便平日工作時可隨手輕鬆的進行安裝。

本文基於方便說明原則,再加上作者平時只會用到64位元的Windows ,所以文中將示範如何合併64位元的Windows 7企業版和Windows Server 2008 R2企業版成為單一片光碟或USB行動碟,看倌可自行依據相同的方法合併更多版本的Windows 作業系統。

壹. 準備工作

  1. 需要整合的作業系統光碟或ISO檔 (本例為Windows 7 X64企業版光碟片和Windows Server 2008 R2光碟片)
  2. 下載並安裝Windows Automated Installation Kit (AIK) for Windows 7 (為一大約1.7GB 的 ISO,您需要先將它安裝在一部Windows 7或Windows Server 2008 R2的電腦上)

install_waik

貳. 將二片原版光碟片內部拷貝到各別的目錄

首先將二片原版光碟片的整個內容拷貝到各別的資料夾下,以本文的機器而言,我建立了二個子目錄—c:\dvd\win7x64與c:\dvd\win2008r2,並將Windows 7企業版光碟片內容和Windows Server 2008 R2光碟片的整個內容分別拷貝到這二個子目錄中。

此外,我也新增了第三個目錄 c:\work,將做為整合後的安裝映像檔位置。

參. 使用WAIK 的 imagex程式檢視安裝映像檔(install.wim)的可用版本及代號

Windows原版光碟片內的sources子目錄下有二個映像檔:

  1. 開機映像檔 (boot.wim):用來啟動一部空白電腦以便開始進行安裝工作 ,其實就是Windows 預先安裝環境 (Windows PE)。
  2. 安裝映像檔 (install.wim):這是一個已安裝作業系統的擷取映像,可以用來應用到其它系統上。
    wimfiles

在此,由於所有作業系統的不同版本均存放在安裝映像內,所以請啟用WAIK的「部署工具命令提示字元」,並利用 "imagex.exe /info " 指令搭配findstr來檢查光碟片上所有可以安裝的版本和索引代號,底下為作者自己的Windows Server 2008 R2光碟片和Windows 7企業版光碟片的安裝映像檔內所包含的版本和索引值:

Windows Server 2008 R2:
映像索引值 1 = Standard (完全安裝)
映像索引值 2 = Standard (核心安裝)
映像索引值 3 = Enterprise (完全安裝)
映像索引值 4 = Enterprise (核心安裝)
映像索引值 5 = Datacenter (完全安裝)
映像索引值 6 = Datacenter (核心安裝)
映像索引值 7 = Web Server (完全安裝)
映像索引值 8 = Web Server (核心安裝)

Windows 7 x64 :

映像索引值 1 = Windows 7 Enterprise

  若您如果使用的是常見的Windows 7零售版,則其安裝映像檔內可能包含簡易版、家用入門版、家用進階版、專業版、旗艦版多個版本。

imagex_info1

肆. 使用WAIK 的 imagex程式取出想要的映像版本

由於作者平時只會安裝Windows Server 2008 R2 的企業版,所以使用imagex工具程式來提取Windows Server 2008 R2 企業版的安裝映像以及Windows 7企業版安裝映像,並將它合併到c:\work\install.wim這個安裝映像檔,Imagex的提取或匯出映像的指令如下:

imagex.exe /export "來源安裝映像檔" [索引值] "[目的安裝映像檔]" [版本名稱]

imagexexport

如果您希望整合多個版本,則需要將每個版本利用上述的匯出指令一一加入到目的映像。
最後,請記得將整合後的安裝映像檔拷貝回c:\dvd\win7x64\sources目錄以便覆蓋過原來的安裝映像檔 (即 copy c:\work\install.wim c:\dvd\win7x64\sources),因為最後需要利用這個Windows 7的光碟目錄來製做成最後的ISO檔。

伍. 拷貝Windows Server 2008 R2 開機映像檔(boot.wim)的使用者授權合約(EULA)到Windows 7 啟動映像檔

由於正式版的Windows Server 2008 R2的使用者授權和Windows 7的使用者授權(EULA)並不一樣,您需要提供所有需要安裝版本的EULA 才能夠順利安裝整合後的所有版本,不過微軟視窗的EULA內含在二個不同的地方,端看您如何安裝Windows來決定會使用到何處的EULA,如果您由DVD開機來安裝,則會需要使用到開機像檔(boot.wim)內的EULA,若您選擇在現存的Windows系統內進行安裝,則需要使用原版光碟\sources目錄下的EULA(\sources\License),二者間以需要拷貝開機映像檔內的EULA檔案屬較為麻煩,因為需要先掛載wim檔案,再進行拷貝、貼上,最後執行解除掛載工作。

本步驟執行開機映檔EULA的拷貝工作較為煩雜,以本範例而言,基本上雖然只是希望將Windows Server 2008 R2 開機映像檔(boot.wim)中提取並拷貝使用者授權合約,然後再加以貼至Windows 7的開機映像檔。不過實作上卻需要更複雜的映像檔掛載(mount)及解除掛載的步驟:

  1. 首先創造二個掛載開機映像檔的目錄 (c:\mount_win7、c:\mount_win2008r2)
  2. 利用 imagex /mountrw 指令分別將Windows 7和Windows Server 2008 R2的開機映像檔到步驟一的目錄。
    imagex 掛載的用法如下:
    imagex.exe /mountrw "[.wim映像檔位置]" [映像檔索引值] "[希望.wim檔案被掛載的資料夾]"
    imagex_mountrw
    一旦將二個開機映像檔成功掛載到資料夾之後,接下來就可以使用檔案總管將Windows Server 2008 R2的授權目錄拷貝並貼到Windows 7的授權目錄。
  3. 開啟檔案總管,進入到 c:\mount_win2008r2\sources這個資料夾,利用滑鼠右鍵一下【License】資料夾並選取【複製】選項。
    license_copy
  4. 接下來於檔案總管中,進入c:\mount_win7\sources資料夾下,在空白處以滑鼠右鍵選取【貼上】選項,待畫面詢問是否取代時,按【是】。
    license_paste
  5. 最後您必需將Windows 7掛載目錄的License目錄的變更加以儲存回boot.wim映像檔案,做法是使用imagex /unmount /commit 指令即可,不過記得您得先關閉檔案總管,否則會出現錯誤。
    license_unmount

 

陸. 拷貝Windows Server 2008 R2光碟片的sources目錄下的使用者授權檔到Windows 7光碟片的sources子目錄

雖然成功的完成上個步驟後,可以順利的由光碟片開機來安裝Windows Server 2008 R2或其它希望的作業系統,但如果您利用此DVD光碟片直接在Windows作業系統內來安裝,則又會出現找不到映像檔的錯誤訊息,故為了避免這項錯誤,您還需要拷貝在Windows內安裝時所需要使用到的其它EULA檔案。

  1. 開啟檔案總管,並進入Windows Server 2008 R2光碟目錄下的子目錄sources (c:\dvd\win2008r2\sources)
  2. 利用滑鼠右鍵功能表【拷貝】license子目錄
  3. 進入Windows 7光碟目錄下的sources子目錄。
  4. 利用滑鼠右鍵功能表按【貼上】選項,畫面可能會詢問數次是否取代時,請按【是】。

dirlicense

 

柒. 拷貝類別目錄並刪除ei.cfg

類別目錄檔案(catalog;clg file)是一個二進位檔案,列出了 Windows 映像中所有設定和封裝的狀態,所以每當您更新或擴充了 Windows 映像時,重新建立或新增類別目錄檔案是必要的,本步驟只不過將Windows Server 2008 R2 的類別目錄檔案拷貝到Windows 7 光碟目錄下的sources子目錄。

原本的Windows Server 2008 R2的sources子目錄內有下列這些類別目錄檔案:

catalogfiles

由上圖可知每個版本有一個對應的類別目錄檔,您只需要拷貝想要的檔案到Windows 7光碟目錄下的sources子目錄即可。以本例而言,我只將 install_Windows Server 2008 R2 SERVERENTERPRISE.clg這個代表Windows Server 2008 R2 完整企業版的.clg檔拷貝到c:\dvd\win7x64\sources目錄內即可。

copy "c:\dvd\win2008r2\sources\install_Windows Server 2008 R2 SERVERENTERPRISE.clg" c:\dvd\win7x64\sources

此外,Windows 7 光碟目錄下的 sources 資料夾內有個 ei.cfg 檔案,是 Windows 7 安裝程式專屬的設定檔案,主要是用於在安裝期間判斷要使用的版本和授權,由於整合後的光碟需要安裝Windows 7之外,還需要能夠安裝Windows Server 2008 R2,所以這個檔案自然不再適用,我們直接刪除這個 ei.cfg檔案即可。

delei

捌. 建立可開機光碟映像檔

最後,我們將讓整合後的DVD光碟成為可直接開機的光碟,這時需要使用WAIK內的Oscdimg工具。

oscdimg.exe -lWin7_Win2k8R2_TW_DVD -m -u2 -o -h -bc:\dvd\win7x64\boot\etfsboot.com c:\dvd\win7x64\ c:\Windows7_win2kR2AIO.iso

  1. -l :指出光碟片的標籤名稱 (Label)
  2. -m:忽略映像檔案的大小限制
  3. -u2:只支援UDF光碟格式
  4. -o:最適化儲存,亦即如果重複的檔案只需編碼一次
  5. -h:包含隱藏檔案與目錄
  6. -b:指定了啟動磁區檔案(etfsboot.com)的位置而使得最終的Windows PE光碟為一可開機光碟(請留意-b切換命令後面沒有任何空白) 。
  7. 最後二個參數為光碟片的內容目錄和最後產生的ISO檔案位置與檔名

oscdimg 指令的參數煩多,如有疑問不解,請直接查閱相關文件。

oscdimg

 

如果您手邊有一些可開啟、編輯並製做ISO的軟體(例如UltraISO),就可以簡化上述的步驟,不過您仍然需要執行到第伍個步驟,而第六個步驟後直接利用UltraISO此種類型的工具來編輯光碟內容,最後再製做成ISO檔案。

  1. 利用UltraISO工具直接載入Windows 7原版光碟內容
    ultraISO3
  2. 您需要將步驟肆所產生出來的整合安裝映像檔(c:\work\install.wim)以拖放方式覆蓋過UltraISO載入光碟後的sources目錄下的install.wim。
  3. 您也需要將步驟伍經變後所產生出來的開機映像檔(c:\dvd\win7x64\sources\boot.wim)以拖放方式覆蓋過UltraISO載入光碟後的sources目錄下的boot.wim
  4. 如同前面第陸步驟一般,將Windows Server 2008 R2光碟片目錄下的sources\License子目錄(c:\dvd\win2008r2\sources\license)以拖放方式覆蓋過UltraISO載入光碟後的sources目錄下的License子目錄
  5. 如同前面第柒步驟一般,您需要在UltraISO視窗中,先由c:\dvd\win2008r2\sources目錄拷貝適當的Windows Server 2008 R2的 .clg檔並刪除ei.cfg檔。
  6. 在UltraISO上重新命名光碟的標籤名稱
    ultraISO4
  7. 最後,在UltraISO以另存新檔方式,將變更後的UltraISO光碟內容儲存成一個ISO檔即可。
    ultraISO5 

玖. 測試

整合Windows 7和Windows Server 2008 R2光碟片的工作有些繁瑣,使用者針對上述的步驟若有遺漏或輸入錯誤,皆可能造成所製做的最終光碟無法使用或部份錯誤,所以一旦建立了整合DVD光碟片後,一定要實際安裝測試以確定為可用的DVD,建議針對來自不同來源的安裝映像檔(install.wim)上面的版本均要至少擇一進行安裝測試,以本例而言,整合後的光碟雖然只有二可安裝的作業系統,不過由於來自不同安裝映像檔,故二個作業系統均需完整測試是否可以完全的安裝成功。
如果無法測試成功,您得根據安裝時顯示的錯誤訊息並回頭檢視那一個步驟遺漏或設定出錯了,例如您在第五個步驟拷貝使用者授權檔案時並沒有設定正確的話,可能在選擇作業系統安裝時,畫面上會出現「「Windows無法顯示可用來安裝的映像」的錯誤訊息」。

setup

 

拾. 刪除不再需要的資料夾和檔案

一旦測試成功,先前所建立二個光碟目錄(本例位於c:\dvd)和整合的安裝映像檔(本例位於c:\work)就可以加以移除以避免佔用空間。

 

可開機USB整合安裝行動碟

將各種Windows作業系統光碟整合為一可方便日後安裝上攜帶的方便性,若基於越來越多電腦均已支援可由USB開機,所以您也可以將製做出來的可開機ISO檔轉換可開機的USB行動碟,網路上可輕易找到不少的工具可協助將光碟片或ISO檔製做出可開機行動碟,例如 "A Bootable USB"、微軟的開機隨身碟製作工具--Windows 7 USB/DVD Download Tool、Novicorp WinToFlash……….。

下圖為作者利用Windows 7 USB/DVD Download Tool建立開機USB行動碟的過程。

micrsoftdvdtool

當然,建立USB開機安裝行動碟之後,仍需要測試確認。