Imagex使用簡介【Z】

liuchang0001發表於2011-03-22

本文的所有操作都需要在Windows PE下進行。雖然這可能沒有在DOS環境下方便,不過用Windows PE取代DOS已經是一個必然的趨勢,同時,Windows PE環境也使imagex的適用範圍更廣。

本文的所有操作都需要在Windows PE下進行。雖然這可能沒有在DOS環境下方便,不過用Windows PE取代DOS已經是一個必然的趨勢,同時,Windows PE環境也使imagex的適用範圍更廣。

  我們都知道,傳統的基於磁碟扇區的映像工具一般只能在Windows作業系統之外執行,因此都使用了專用的恢復環境,例如軟體開發商提供的特殊 版本的 DOS。但這就存在一個問題,主要是關於儲存子系統的。現在我們使用的儲存子系統規格越來越多,除了傳統的 IDE,常見的還有SCSI、SATA,以及各種級別的RAID等,如何讓映像工具支援這些不常用的儲存子系統成了一個最大的問題。

  以使用DOS作為恢復環境的映像工具為例,如果該工具沒有自帶用於RAID系統的DOS驅動程式,那麼就無法使用它對RAID系統建立和恢復映 像。但 imagex解決了這一問題,它的恢復環境是Windows PE,這可以看作是一個省略了圖形介面的Windows核心,因此任何磁碟子系統,只要提供了Windows下的驅動程式,就可以用於Windows PE。

  使用過程中大家可能會注意到,用Windows PE光碟引導計算機,進入Windows PE環境之前,螢幕上首先會顯示“Press F6 to Install…”的字樣,這和我們直接用光碟安裝Windows作業系統時的選項類似。如果您使用了一些比較不常用的儲存子系統,例如SCSI或者 RAID,就需要在這個介面上按下F6,然後提供所需的驅動程式,這樣引導後Windows PE才可以識別出您的硬碟。

  下文中,實驗所用系統的設定如下:C盤安裝作業系統,D盤是光碟機,E盤用於儲存建立的映像檔案。不過當我們用Windows PE光碟引導計算機後情況有所變化,C盤依然是系統盤,但光碟機成了X盤,Windows下的E盤成了Windows PE環境下的D盤。因此為了避免混淆,在Windows PE環境下的操作將會使用PE中的碟符名稱,但在Windows環境下的操作將會使用Windows中的碟符。

  建立映像

  首先我們需要準備一臺模板計算機,在這臺計算機上安裝打算批量部署的作業系統,並安裝所有需要的驅動程式、應用軟體、系統更新程式,同時我們還 可以根據實際需要對系統和程式的各種選項進行設定。設定完成之後執行sysprep.exe刪除所有不必要的資訊 ,並關閉計算機。

  進行到這一步的時候,和使用傳統的基於分割槽的影響工具部署都沒有太大區別,不過接下來我們要使用微軟自己的映像工具了。

  假設我們希望使用預設設定建立一個C盤的映像,映像檔案將以data.wim為名儲存在D盤根目錄下,並在建立完成後進行資料校驗,那麼我們可以使用這樣一個命令:

  imagex /capture c: d:\data.wim "Drive C " /verify

  “/capture”引數的作用是建立映像檔案,而該引數後面的“c:”則指定了要建立映像的目標分割槽。“d:\data.wim”這個引數指 定了映象檔案的儲存位置以及名稱,“Drive C”引數定義了映像檔案的描述,需要用引號引用。最後的“/verify”引數則會讓imagex建立完映像之後進行校驗。當看到圖1所示的介面時,表示 我們的命令是正確的,程式正在建立C盤的映像。當螢幕顯示“Successfully imaged c:\”的字樣時表示映像已經建立完成了。

  這時候我們就可以將建立出來的data.wim檔案儲存起來,並用於之後的部署了。這裡還有一個有趣的功能需要提醒您:imagex可以將 建立出來的映像檔案儲存在預建立映像的分割槽上。例如本例中,我們就完全可以將data.wim儲存在C盤,這其實是基於檔案的映像工具和基於扇區的映像工 具的最大不同。
    壓縮映像

  當然,imagex能做到的還有很多。有時我們可能會希望儘量減小生成的映像檔案的體積,這時候就可以用到imagex的壓縮功能了。壓縮引數 有兩個選項:Fast和Maximum,其中後者的壓縮率更高一些,當然花費的時間也要長一些。還是上面的例子,如果需要以Maximum等級壓縮建立出 來的映像檔案,可以使用這條命令:

  imagex /compress maximum /capture c: d:\data2.wim “Drive C” /verify

  遺憾的是該引數只能在建立映像檔案的時候使用,對於已經建立好的映像檔案,已經無法通過該引數進行壓縮,或者更改壓縮等級了。

  拆分映像

  如果您希望將建立出來的映像檔案按照一定大小拆分,以便燒錄到光碟或者儲存到其他可以動儲存介質上,那麼可以使用imagex的 “/split”引數。例如,如果我們希望將之前建立的data.wim檔案以640 MB為大小拆分,以便燒錄到CD光碟上,那麼可以使用這條命令:

  imagex /split d:\data.wim d:\datasplited.swm 640

  該操作將會建立一系列帶有固定編號的.swm檔案,例如我們要拆分的檔案是data.wim,那麼拆分後的檔案就是data1.swm、 data2.swm等。該引數同樣有些不足:首先,無法在建立映像檔案的時候使用,只能在映像檔案建立成功之後使用。另外,拆分的檔案大小是以MB為單位 指定的,如果我們需要以GB為單位拆分檔案以便燒錄DVD光碟上,顯得不夠靈活。

  應用映像

  我們已經建立好了系統映像檔案,日後如果需要在多臺計算機上部署,或者某臺計算機的系統崩潰,就可以使用建立好的映像檔案來恢復。恢復過程是非常簡單的,依然需要進入到Windows PE環境下,然後使用“/apply”引數執行imagex.exe程式即可。

  對於新計算機有一點需要注意,在使用imagex安裝作業系統映像之前,必須首先給硬碟分好區。您可以使用Windows PE自帶的分割槽工具diskpart.exe進行。而如果您嫌麻煩,或者需要處理的計算機太多,也可以自己編寫指令碼,讓Windows PE啟動後自動進行分割槽操作。

  假設我們要把之前建立的儲存在D盤的data.wim檔案重新恢復到C盤,那麼可以首先格式化C盤,然後使用這條命令:

  imagex /apply d:\data.wim 1 c: /verify

  這裡要注意映像名稱後面的編號“1”,下文中我們將會介紹,imagex可以把多個映象檔案附加到同一個映像中,那麼在使用某個特定映象部 署系統,或者執行其他類似操作的時候,怎樣從附加了多個映象的映像檔案中指定特定映象呢?這裡就需要使用編號了,如果希望對第幾個映象進行操作,在映像文 件名稱後新增該映象的編號即可。
   高階應用

  除了上面介紹的功能,imagex還有很多功能可以適合不同情況。同樣,下文將會通過幾個具體的例項向您介紹。

  檔案附加

  有時我們可能會遇到這樣的情況:當我們安裝好作業系統之後,需要建立一個映像檔案;而安裝完補丁程式以及驅動程式之後,需要建立另外一個映像; 等安裝完所有其他需要的應用程式,並進行過必要的設定之後,還需要建立第三個映像檔案。這樣的要求有一個特點,那就是三個映像檔案中大部分資料都是相同 的,而每次都是隻有部分檔案被增刪或者更改。那麼按照一般的做法,直接建立三個各自獨立的映像檔案,無疑浪費了大量的儲存空間,而且映像檔案太多也不利於 日後的管理。

  為了解決這個問題,imagex中包含了一個叫做附加的功能。簡單來說,該功能可以在一個映像檔案中儲存多個不同狀態下的作業系統映象。例如之 前設想的情況,將作業系統在三個時候的不同狀態全部附加到同一個映像檔案中,這樣,因為作業系統中有大量三個狀態下沒有發生任何更改的檔案,因此這些檔案 實際上在映像檔案中只需要儲存一個例項,這就可以在壓縮的基礎上更進一步減小映像檔案的體積。

  注意,這裡提到了兩個名詞:“映像”和“映象”。為了方便敘述,下文對這兩個名詞的定義如下:對作業系統所在分割槽進行“複製”建立的檔案稱之為“映象”,而多個“映象”附加在一起即形成一個“映像”。

  在上文的操作中我們已經對整個系統盤建立了一個完整映像data.wim,假設當時我們只是安裝了作業系統,還沒有裝驅動和應用程式,那麼現在 我們可以啟動到正常Windwos狀態下,按照需要安裝所有的驅動和程式,然後重啟動計算機到Windows PE環境(別忘了執行sysprep.exe)。要建立新的映象,並附加到現有的映像檔案中,可以使用下列命令:

  imagex /append c: d:\data.wim “Drive C 2” /verify。

  “/append”的作用是將目標分割槽附加到現有檔案,需要注意,如果已經使用了“/append”引數,就不需要同時使用“/capture”了。而後面的“d:\data.wim”則指定了要被附加的檔案所在位置和名稱。

  注意,如果被附加的源映像檔案被壓縮過,那麼附加上去的映象檔案就必須進行同樣等級的壓縮。
   配置檔案

  imagex的某些選項可以由配置檔案指定,這樣我們就可以預先編寫好配置檔案,然後一次執行,實現比較複雜的操作。要指定配置檔案,需要以“/config”引數啟動imagex。配置檔案中主要有三個欄位,各自的含義如下。

  [ExclusionList]

  定義了使用“/capture”引數後被排除的檔案和資料夾名稱

  [CompressionExclusionList]

  定義了不被壓縮的檔案或資料夾名稱,或者檔案型別。這裡可以使用萬用字元

  [AlignmentList]

  指定檔案以64K為範圍排列,這些檔案將不會被壓縮,而壓縮後的檔案將會以32K為範圍排列。

  我們只需要在文字編輯器,例如Windows記事本中按照上述規定的欄位編寫內容,然後將檔案儲存為.ini格式,就可以在使用imagex.exe的時候通過“/config”引數呼叫了。

  開啟Windows記事本或者其他任何文字編輯器,分別輸入[ExclusionList]、[CompressionExclusionList]和[AlignmentList]三個欄位,然後按照需要為這三個欄位設定內容。

  例如,如果我們希望在建立映像檔案的時候跳過分頁檔案和休眠檔案,那麼就可以在[ExclusionList]欄位下新增這兩個檔案的名稱: “Hiberfil.sys”和“Pagefile.sys”。注意,每個檔案要佔用一行空間。如果我們希望在壓縮檔案的時候取消對所有副檔名為.zip 的檔案的壓縮(畢竟它們已經被壓縮過了,再次壓縮只能延長所需時間,體積的變化不會太明顯),那麼可以在 [CompressionExclusionList]欄位下新增“*.zip”這一行內容。

  注意:通常情況下,如果要使用配置檔案,那麼就必須在執行imagex命令的時候使用/config引數,並指定配置檔案的位置。但如果我 們預先將配置檔案以wimscript.ini為名儲存在imagex.exe檔案所在的資料夾下,那麼以後執行的時候只要使用了“/capture”參 數,該配置檔案就會被自動載入,而不管我們有沒有配合“/config”引數一起使用。
    映像檔案的維護

  我們已經瞭解瞭如何建立和應用映像檔案,那麼日常維護方面,這種新的檔案格式又能帶給我們什麼?需要注意,之前介紹的所有操作都是使用imagex在Windows PE的命令列環境下執行,而接下來要介紹的一些功能在正常的Windows模式下就可以操作。

  檢視映像檔案資訊

  我們首先繼續討論一下前文中存在的一個問題,對於附加了多個映象的映像檔案,可以通過新增編號的方式指定對哪個映象進行操作。但是一旦時間長了,我們如何知道某個映像檔案中有幾個映象,分別是什麼內容?這就要用到imagex的另一個引數“/info”了。

  還是以上文建立的附加了多個映象的映像檔案data.wim為例,在Windows PE環境下,執行這樣的命令:imagex /info d:\data.wim,我們可以看到,程式會自動顯示一個以XML格式儲存的檔案,檔案的內容就是該映像檔案中所有附加的映象檔案的資訊(圖3)。這裡 面大家可以留意看“”這一欄位的內容,這其實就是我們在使用 “/capture”引數建立映像時輸入的描述。因此在使用的時候要注意輸入詳細的描述資訊,方便日後的使用。

  檢視映像檔案內容

  隨著使用時間的延長,管理員們可能需要管理越來越多各種用途的映像檔案。如何快速從多個映像檔案中找到自己的目標就顯得非常重要。通過使用 imagex的 “/dir”引數,我們就可以直接把某個映像檔案,甚至具體到其中附加的某個映象的內容顯示出來。該引數的使用方法是這樣的:imagex /dir d:\data.wim 1。

  首先讓我們試試看使用“/dir”引數列出映像檔案中具體某個映象的內容。回到Windows正常狀態下(注意,這一步操作不能在Windows PE環境下進行,必須回到Windows下),然後執行下列命令:

  imagex /dir d:\data.wim 1

  這將顯示data.wim這個映像檔案中包含的映象內容(如果映像檔案中包含了多個映象,也可以通過編號指定具體映象)。這裡顯示的內容非常多,檢視起來很不方便,那麼我們就可以使用這樣的命令:

  imagex /dir d:\data.wim 1 >d:\list.txt

  該命令可以將顯示的內容全部輸出到D盤一個名為list.txt的文字檔案中,使用文字編輯器檢視和搜尋具體檔案就相當簡單了。

  這裡有個問題需要注意,就算您的映像檔案中只包含了一個映象,在使用/dir引數的時候依然需要在檔名後面指定映象編號,否則將無法列出其中的內容。暫時不清楚這是設計特性還是軟體的Bug。
    將映像檔案內容對映為資料夾

  除了使用“/dir”引數列出映像檔案的概括內容,我們還可以使用“/mount”引數和“/unmount”引數將映像檔案中具體的映象對映 為本地硬碟上的資料夾,並編輯其中的內容。“/mount”引數有兩個,分別是“/mount”和“/mountrw”,其中前者可以將映象對映為只讀文 件夾,而後者可以將映象對映為可讀寫資料夾。

  要注意,這兩個命令都只能在Windows XP SP2、Windows Server 2003 SP1以及Windows Vista中使用。同時在對映之前,還要安裝WIM FS外掛,該外掛在WAKI工具包中提供。

  安裝好外掛之後,在命令提示行視窗內執行下列命令:

  imagex /mountrw e:\c e:\data.wim 1

  “e:\c”的含義是將映象對映到E盤下一個名為“c”的資料夾中。如果該資料夾內當前有檔案,那麼在被對映的映象解除安裝之前,原先的內容將無法 訪問。對映了映象之後,我們就可以使用Windows資源管理器開啟對映出來的資料夾,檢視其中的內容,新增或者刪除檔案,或者像在操作本地硬碟那樣進行 其他操作。

  因為我們之前使用的引數是“/mountrw”,這樣對映出來的檔案是可寫的,因此當用完之後,為了使對檔案的更改能夠生效,我們需要使用 “/unmount”引數配合“/commit”選項,合併對映像檔案的修改,並將其解除安裝。可以用這樣的命令:imagex /unmount /commit e:\c。

映象的提取和刪除

  有時候您可能會遇到這樣的情況:一個映像檔案中附加了很多不同環境的映象檔案,可其中一個映象檔案已經沒用了。為了減少儲存空間的佔用,您可能 希望刪除不用的映象檔案。同時,您可能還會有這樣的需求:想要將附加到一個映像檔案中的獨立映象提取出來,做其他用途。這些任務依然可以通過imagex 的引數實現(本段內容需要在Windows PE環境下操作)。

  要刪除映像檔案中附加的映象,我們可以使用“/delete”引數,例如:imagex /delete d:\data.wim 1。如果希望將映像檔案中的某個映象提取出來,可以使用“/export”引數,例如:imagex /export d:\new.wim d:\data.wim 1。

  注意,在提取映象的時候一定要保證目標映像檔案的所在分割槽具有足夠的可用空間。如果可用空間不足,程式不會報錯,依然會生成新的映像檔案,但是檔案本身是不完整的。

  imagex.exe的不足

  雖然優勢很多,不過目前imagex.exe還有很多不足,主要表現在:

  imagex只能用於對完整的作業系統以及應用程式建立和應用映像。有些第三方的映像工具可以在作業系統和應用程式發生改變後對其建立“差異映像”,這個imagex.exe是做不到的。

  imagex只能建立和使用.wim(Windows Imaging)格式的映像檔案,不支援使用其他第三方工具建立的映像。

  對於同一個映像檔案只能使用一種壓縮等級,隨後附加的映象檔案也必須使用和初始映像檔案一樣的壓縮等級。

  映像檔案的對映只能在Windows XP SP2、Windows Server 2003 SP1或者Windows Vista下進行。但是imagex可以對沒有安裝Service Pack的Windows XP和Windows Server 2003,以及任何版本的Windows 2000建立映像檔案。

  只有儲存在NTFS檔案系統下的映像檔案才可以被對映為具有讀/寫許可權的資料夾,而儲存在FAT、FAT32、ISO或UDF檔案系統下的映像檔案只能被對映為只讀資料夾。這主要是為了避免FAT/FAT32檔案系統最大2GB檔案的體積限制有可能導致的資料丟失。

該工具不具有磁碟操作能力,因為需要使用微軟的其他工具,例如Diskpart以及Format準備用於卷映像的磁碟分割槽。