返回列表 回復 發帖

微軟封裝工具ImageX的應用!

作者: wen 日期: 2007-7-5 12:57 閱讀: 869打印 收藏
本文中我們將會介紹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准備用于卷映像的磁盤分區。
2005.12.04不預期遇見什麼、才可能什麼都能遇見。
如果你是會員,有任何使用上的問題,請發短訊給我(wen)
如果你是訪客的話,註冊之後可以得到完整的瀏覽權限

IMAGEX常用命令参数:

IMAGEX常用命令参数:
/CAPTURE      建立一个新的WIM文件
/BOOT            给镜象加上引导标记,是该镜象可引导(在建立WIM文件或增加镜象时使用),子命令,需和CAPTURE,APPEND命令配合使用
/APPLY           提取WIM文件中某一镜象
/APPEND        在以有的WIM文件增加一个镜象
/INFO            显示WIM文件信息
/FLAGS          镜象标记,在VISTA安装盘里9定义为启动部分,2定义为安装程序部分(在建立WIM文件或增加镜象时使用),子命令,需和CAPTURE,APPEND命令配合使用
/MOUNT        以只读方式将WIM文件中的一个镜象挂载到一个目录下
/MOUNTRW  以可读写方式将WIM文件中的一个镜象挂载到一个目录下
/UNMOUNT   卸载以挂载的WIM文件
/DIR              列示WIM文件中某一镜象里的文件内容
/EXPORT       将直接修改过的WIM文件整理生成一个新的WIM文件(用于用MOUNTRW修改后的文件整理)
/SPLIT           将已生成的WIM文件以指定大小进行分包(适用于安装文件过大一张光盘放不下时分盘处理)
/COMMIT      在UNMOUNT时使用,使WIM文件记录修改信息

使用中的部分数字定义
INDEX           在APPLY,MOUNT,MOUNTRW,DIR,EXPORT命令时WIM文件后使用到的,表示该镜象在WIM文件中的位置
FLAGS           在建立WIM文件或者增加镜象时用到,具体如何定义暂时不明,只知道9定义为BOOT部分,2定义为VISTA安装程序部分
2005.12.04不預期遇見什麼、才可能什麼都能遇見。
如果你是會員,有任何使用上的問題,請發短訊給我(wen)
如果你是訪客的話,註冊之後可以得到完整的瀏覽權限
返回列表