Imagex灌裝Windows7到VHD,差分VHD還原保護,BCDEDIT建立XP&Windows7多系統引導

來源:互聯網
上載者:User

Windows7/Windows2008 R2     差分VHD     還原保護  BCDEDIT

【本文前面實際操作部分為原創,轉載請聯絡。後續資料部分來至網路,未經驗證。】

本文將介紹
利用Imagex將Windows7(Windows server 2008 R2同樣的操作)灌裝到VHD檔案中;
利用BCDEDIT.exe實現從VHD檔案啟動電腦;
建立和XP共存的引導系統;
建立差分VHD(實作類別似GHOST/還原卡的還原備份功能)

【BTW】差分VHD將佔用很少的硬碟空間,相關資訊和好處,缺點,請Google.

需要用到的工具除了 MS AIK 中的Imagex.exe【點擊這裡下載】 其他全部來自Windows7的安裝光碟片。

Imagex.exe 下載:http://cid-9f8cff17f1236314.skydrive.live.com/self.aspx/%e5%85%ac%e5%85%b1/imagex.zip

需要用到Windows7啟動光碟片,或者利用UltraISO工具將windows7的iso檔案灌裝到隨身碟,從隨身碟啟動電腦。
【BTW】需要使用UltraISO 9.3及其以上的版本,在 (啟動光碟片) 菜單中選擇(寫入硬碟映像),然後選擇你的隨身碟磁碟機即可。
具體操作中遇到相關問題可以Google解決。

這裡介紹從一台電腦上+已經裝入了Windows7檔案的啟動隨身碟+Imagex.exe+Windows XP安裝檔案 來完成整個操作。
如果您已經安裝了XP,可以直接進入第2步。

1.分區,按照正常的情況安裝XP.(假設您安裝到了C盤。)

2.安裝Windows7到D盤
【BTW】(不需要佔用整個D分區,不需要格式化,但需要確保您有足夠的空間。)
關於Windows7 磁碟空間需求和硬體需求資訊,請Google.
也可以選擇到其他盤(建議放在NTFS分區上,否則建立VHD檔案的時候會出問題,
如果您目前不是NTFS格式,可以使用Convert命令做快速轉換。)

利用隨身碟啟動電腦,在出現,[選擇windows7的安裝語言的介面],停下,按Shift+F10 調出命令列介面。
【圖1 啟動介面】

 

 

A.鍵入DISKPART ,建立母盤VHD檔案。
(1)  list volume (顯示卷,找到你的盤資訊) 
(2)  create vdisk file="D:\w7b.vhd" maximum=15000 type=expandable
(在D盤建立主VHD檔案,建立了一個動態磁碟,最大容量maximum要計算好,因為一會兒還要建立差分VHD,差分VHD在使用時會佔用父VHD檔案定義的最大容量) 
(3)  select vdisk file="D:\w7b.vhd"   
(4)  attach vdisk     (串連虛擬磁碟檔案) 
(5)  create partition primary  (建立主要磁碟分割) 
(6)  assign letter=L  (分配磁碟機代號L 並裝載,這裡的 L  只是臨時用用。) 
(7)  format fs=ntfs quick label=vhd  (快速格式化為ntfs,設定卷標為vhd)
(8) exit (退出DISKPART工具)

B.將windows7 灌裝到剛才建立的VHD裡面。
進入imagex.exe所在的目錄,這裡我們將imagex.exe放在啟動u盤跟目錄的。

(1) imagex.exe /info E:\sources\install.wim 
E:\sources\install.wim 是windows7安裝光碟片的路徑。【這裡是u盤】
(用隨身碟上的imagex軟體查看windows7安裝光碟片中所含的版本,記住版本號碼 image index="n",我這裡的Ultimate版是5) 

(2)imagex.exe /apply E:\sources\install.wim 5 L:\
(用隨身碟上的imagex軟體解壓windows7 Ultimate版到虛擬磁碟的掛接點L盤--上面設定的盤符。)

到這裡,母盤的製作就完畢了,下面將添加啟動資訊到系統,啟動剛才灌裝進去的Windows7.

3. 添加啟動資訊,設定XP的啟動資訊。
 
(1)  bcdboot L:\windows /s
(向主要磁碟分割中寫入剛才灌裝的Windows7的boot資訊,L盤就是剛才灌Windows7那個盤。)
(2)(更新系統磁碟分割上的主開機程式碼,由NTLDR切換到BOOTMGR)
C:
Cd boot
Bootsect.exe /nt60 sys
(3)還原XP的啟動項
Bcdedit /create {ntldr} /d “windows XP”
Bcdedit /set  {ntldr} device partition=c: (選擇xp系統所在盤)
bcdedit /set {ntldr} path \ntldr
Bcdedit /displayorder {ntldr} –addlast
Bcdedit /set {ntldr} description “Windows XP”
Bcdedit (查看是否已經添加成功)

到這裡 您已經具備了具有XP和Windows7共存的雙系統了。Windows7實際存在於W7b.vhd這個檔案裡面。
你可以啟動到Windows7系統裡面,安裝一些驅動和常用的軟體,等等。
下面將建立差分VHD,實作類別似影子系統的還原功能。

4.建立差分VHD,實作類別似影子系統的還原功能

和前面一樣。利用隨身碟啟動電腦,在出現,選擇windows7的安裝語言的介面,停下,按Shift+F10 調出命令列介面。
(1)  diskpart       (開啟diskpart) 
(2)  list volume    (顯示載入的卷列表) 
(3)  create vdisk file="D:\w7d1.vhd" parent="D:\w7b.vhd" (建立差分VHD,主VHD設定成剛才建立的) 
(4)  exit            (退出diskpart)
(5)  copy D:\w7d1.vhd D:\w7d1.vhd.bak  (備份差分VHD檔案,非必須) 

5.為差分VHD添加引導資訊到系統。

(1)bcdedit
列出所有的啟動項資訊,找到剛才添加進去的母盤的項目,找到它的identity ID
假如為611FD78F-03D4-4D94-81BA-30DB9600CDA9
(2)bcdedit /copy {611FD78F-03D4-4D94-81BA-30DB9600CDA9} /d "Windows7-2"
拷貝這個母盤的項目,再做修改,設定成剛剛建立的差分VHD資訊。
這裡執行成功以後會返回一個類似於{38B5682A-4CA0-49D7-83A8-87F75CE85127}的SID,下面將用到。
(3)bcdedit /set {SID} description "Windows7-2"
(4)bcdedit /set {SID} device vhd=[D:]"\W7D1.vhd"
(5)bcdedit /set {SID} osdevice vhd=[D:]"\W7D1.vhd"
(6)bcdedit /set

到這裡,您已經具有3個啟動項了.XP,Windows7(母盤),Windows7-2(差分盤。)
整個過程基本結束。

如果您已經有了XP,或者是只想將Windows7裝到VHD裡面 不打算使用差分硬碟,等等,可以參考整個過程,略去一些步驟就好了。

以下是一些補充。
1.我更改了母盤,差分VHD的子系統還能啟動嗎?
按照很多文檔的說法,母盤的更改,會導致基於該盤的子盤無法使用。
但實際使用中發現,如果我啟動到母盤裡,更新某個軟體,子盤還是可以啟動,但母盤的更改沒有反應到子盤裡面。
如果你需要將母盤的更改反應到子盤,可以再次執行(4)裡面的步驟,如果建立的差分VHD位置和名字未變,就不用再用BCDEDIT去整啟動項了。
如果改了名字,就需要了。
注意,如果你更改了母盤的大小,子盤將不能再使用。比如發現母盤空間不足,在DISKPART裡面 使用了
EXPAND VDISK命令擴充母盤的大小,則子盤必須重新建立了。

2.子盤的大小怎麼計算,怎麼擴充空間?
子盤的可用大小=母盤的可用大小。不能單獨設定子VHD的大小。
在DISKPART裡面 先Select 母盤的檔案,再 EXPAND VDISK命令擴充母盤的大小,子盤必須重新建立。

3.我在子盤執行了某些更改,我需要合并VHD到母盤。
在DISKPART裡面 先Select 子盤的檔案,再 Merge Vdisk Depth=1 命令合并即可。

4.相關的VHD檔案的實際大小等問題。
在Windows XP 裡面,你看到
VHD檔案大小就是實際大小,比如前面建立了最大容量為15G的母盤,但實際用了5G,那麼它就是5G.
差分VHD也是實際的大小,不會是之前設定的容量。
在Windows 7 母盤啟動進去,你看到
差分VHD也是實際的大小,不會是之前設定的容量;但母盤VHD檔案大小將顯示為當時設定的母盤最大容量。
在Windows 7 子盤啟動進去,你看到
母盤VHD也是實際的大小,不會是之前設定的容量;但子盤VHD檔案大小將顯示為當時設定的母盤最大容量。

5.實現簡單的還原
刪除 子VHD檔案,再次執行(4)裡面的步驟即可。參考補充1.
你也可以做成Bat指令碼,每次開機都是新的子VHD,實現每次還原。個人覺得沒有太大必要。

 

×××××××××××××原創內容的分割線××××××××××××××××××××××

 

下面是相關的一些問題。(來至於網路或者相關文檔。非原創,也沒有實際測試過。)

1 從VHD啟動,還需要哪些必備的條件?
對於VHD啟動本身,對硬體並沒有多少要求,只能能運行系統即可。不過對於軟體方面來說,系統必須是以下版本,
Windows 7 Enterprise
Windows 7 Ultimate
Windows Server 2008 R2
XP和Vista是不行的,因為驅動問題。而WIn7 的版本必須是 企業版之上,這個策略限制,如果版本不對的話,會提示不支援。

2 從VHD啟動之後的系統,到底是運行在虛擬機器上?還是直接運行在物理硬體之上?
是運行在物理硬體上。
在Win7以及WIn2008 R2 中的引導程式和系統本身都包含了對VHD檔案的讀寫(虛擬)驅動程式,以及虛擬VHD磁碟控制卡。
不要被這個虛擬所誤導,這裡指的是類比硬體,比如最常見的虛擬光碟機。
因此我們可以在啟動電腦的時候,訪問VHD並且從其上啟動;也可以在Windows 7中直接建立、載入和卸載VHD檔案。
不過行為有些不同,這些驅動是在系統核心中的,系統本身也會知道自己運行在VHD檔案上。
因此,會把虛擬記憶體檔案放到非VHD磁碟的 物理磁碟上,也不會寫入到VHD內部。

3、是否會有效能的損失?
會有一些損失,但很小可以忽略。
主要原因是對檔案系統讀寫訪問的時候,需要經過額外的一層VHD讀寫驅動的解析,這裡面有一些微量的I/O效能開銷,
但是跟虛擬化的情況相比,效能基本上接近了真機。
是在網上找到的測試資料,有一組直接讀取硬碟和讀寫VHD的比較,效能差別微乎其微。
【圖2 VHD效能】

 

4、是否可以掛接X64和X86 系統?
可以。只要你的硬體支援。 在啟動引導中添加相應的條目即可。

下面是VHD補充介紹,來至網路。
一、VHD 檔案有哪些不同的類型?
  VHD 檔案分為三種類型,可以使用 Hyper-V 管理器或在 Windows 7 中使用Windows磁碟管理工具建立這些檔案類型:
  1. 固定 VHD。固定 VHD 檔案被分配的虛擬磁碟大小為建立 VHD 時指定的虛擬磁碟大小。例如,如果建立的虛擬硬碟大小為2 GB,系統將建立一個大小約 2 GB 的檔案,其中部分空間用於內部 VHD 結構。 固定VHD的大小不會隨著向虛擬硬碟寫入資料而變化。

  2. 可擴充或動態 VHD。在任何給定時間,可擴充或動態 VHD檔案的大小均與寫入該檔案的實際資料大小相同。隨著寫入更多的資料,該檔案也會動態增加。 例如,支援 2 GB虛擬硬碟的檔案最初在主機檔案系統中的大小約為 2 MB。隨著不斷向此虛擬硬碟中寫入資料,檔案逐漸增大,直到達到 2 GB的容量上限。

  3. 差異 VHD。差異 VHD 類似於動態 VHD,但只包含相關父虛擬磁碟的修改後的虛擬磁碟塊。 差異 VHD連結到特定的父VHD,稱為子 VHD。 父 VHD 檔案為唯讀檔案;所有修改都是針對子 VHD 進行的。 父 VHD 的 VHD檔案類型可以是這三種VHD 類型中的任意一種,包括另一個差異 VHD。 多個子 VHD 檔案可形成一個差異鏈。

  二、為什麼建議將固定 VHD 檔案用於生產中?
  建議將固定 VHD 檔案用於生產的原因如下:
  " 由於不需要動態擴充 VHD 檔案,因此 I/O 效能是三種 VHD 磁碟類型中最高的。 同時,如果向固定VHD檔案進行寫入操作,不會因為動態 VHD 要求擴充而使 VHD 檔案的基礎主機卷用完所有可用磁碟空間而失敗。

  " 動態和差異 VHD 檔案取決於多個資料寫入操作以及內部塊分配資訊,如果未完成主機卷和物理磁碟上 VHD 檔案的所有I/O操作並且未將其儲存在物理磁碟上,這些資訊可能會變得不一致。當基礎磁碟用完全部儲存空間或系統突然斷電時,便可能會出現這種情況。

  三、什麼時候適用於使用動態或擴充 VHD 檔案?
  動態 VHD 在以下非生產環境中使用 Windows 映像時非常有用:儲存要求較低,並且與 VHD中資料訪問的可靠性相比,替換VHD 檔案的便利性更具有優勢。 例如,測試環境可以將許多動態 VHD儲存在網際網路共用中以節省空間的,無需分配固定 VHD格式情況下類似映像中未使用部分所需的儲存空間。通常,測試環境可以輕鬆重建,也可以重建用於測試的 VHD 映像。 將較小的動態VHD檔案從網際網路共用複製到本地磁碟時,速度比傳輸同等最大大小的固定 VHD 檔案更快。 如果能夠從其他資源重建動態VHD的全部內容,並且關鍵資料存放區在動態 VHD 以外的其他卷中,則可以考慮在生產環境中使用動態 VHD。

  四、當子級差異 VHD 的父 VHD 更改時會出現什麼情況?
  子級差異 VHD 包含特定父 VHD 中的修改後的資料區塊。 如果父 VHD 發生更改或替換為具有相同檔案名稱的其他VHD檔案,則父 VHD 和子 VHD 之間的塊結構將不再匹配,並且子 VHD 的內容也會破壞。

  五、差異 VHD 的父級是否可以位於與子級不同的卷或遠程共用上?
  對於本機 VHD 啟動,子級差異 VHD 到父 VHD檔案的連結要求這兩個檔案位於同一個卷中。即使父磁碟和子磁碟駐留在同一本地磁碟,也無法駐留在不同的卷中。 附加本機 VHD啟動之外的VHD(如映像管理操作)時,差異磁碟的父級可以位於其他卷甚至是遠程共用中。

  六、"建立 VHD"和"附加 VHD"有哪些功能?
  磁碟管理工具(DiskPart 命令列工具和磁碟管理主控台)都支援建立、附加和分離操作。"建立VHD"能夠按照選項指定的類型和大小建立新的 .vhd 檔案。 可以將新建立的 .vhd 檔案看作與原始磁碟類似。"附加VHD"操作要求儲存系統將 VHD 用作串連到系統的磁碟。 在執行"附加 VHD"操作後,可以使用磁碟管理工具在VHD內建立一個或多個磁碟分割,並在 VHD 內格式化 NTFS 檔案系統。 如果在執行"附加VHD"操作時,VHD已有磁碟分割和檔案系統卷,則系統會給 VHD 內的卷分配一個磁碟機代號,並且該卷將處於可用狀態,這與您向 USB連接器中插入 USB磁碟機時出現的情況類似。 "附加 VHD"有時稱為"顯示 VHD",這是因為VHD中的檔案系統會被分配一個磁碟機代號並且顯示出來,而且可供使用。 (也許可以將顯示 VHD比喻為潛水艇浮出水面並且可以看到。)

  執行"附加 VHD"操作後,系統將為 VHD 中的所有卷分配磁碟機代號,並且使其在全域命名空間中可見。 是否可以看到附加的VHD卷並不限於目前使用者上下文。 所有使用者都能夠看到附加的 VHD,就像查看物理磁碟 七、VHD 可以使用哪些檔案系統?

  如果已有一個 .vhd 檔案,則可以將該 .vhd 檔案儲存在任何 FAT、ExFAT、NTFS 或 UDFS卷中。但是,只能附加位於 NTFS 卷的 VHD。 對非 NTFS 卷上的 VHD 執行附加操作將失敗。

  建立 VHD 時,可以在 VHD 中建立一個或多個分區,並且可以使用 FAT、ExFAT 或 NTFS格式化這些分區。附加操作可使 VHD 中的一個或多個卷可用。

  八、Windows 7 是否可以附加位於遠程共用的 VHD?
  是的,可以附加位於遠程 SMB 共用的 VHD 檔案,並且該 VHD 檔案將顯示為本地磁碟。 不支援其他遠程檔案系統,如NFS或 FTP。 系統將為包含在 VHD 中的卷分配磁碟機代號,並且這些卷可供本地系統中的所有使用者訪問,具體取決於VHD卷內資料的安全許可權。 遠程 VHD 附加支援遠程映像管理。

  九、是否可以對 VHD 檔案使用 NTFS 壓縮或加密?
  在主機卷上用 NTFS 壓縮的 VHD 檔案將無法作為虛擬硬碟附加。 在主機卷上用加密檔案系統 (EFS) 加密的VHD檔案也無法作為虛擬硬碟附加。 在主機卷上壓縮或加密的 VHD 檔案將無法用於 VHD 本機啟動。 但是,如果提供其他支援,則VHD內的卷可以使用壓縮和加密。

  十、是否可以使用 BitLocker 加密整個 VHD?
  VHD 檔案可以儲存在受 BitLocker 保護的主機卷上,但是位於 BitLocker 保護卷上的VHD檔案無法用於本機啟動。 對包含在 VHD 內的卷啟用 BitLocker 不是支援的配置。

  十一、什麼是嵌套 VHD 以及什麼是嵌套限制?
  VHD 是主機卷上的檔案。 例如,VHD 檔案 c:\vhd\ExampleFixed.vhd 表示位於 c: 卷上\vhd目錄下的固定 VHD 檔案。 在 ExampleFixed.vhd 中,可以建立一個分區,初始化NTFS檔案系統卷,然後臨時分配磁碟機代號 m:。 還可以在 m:\vhd\AnestedFixed.vhd 下建立一個新的 VHD檔案。第二個 vhd 檔案是在第一個 vhd 檔案中的檔案系統卷上建立的。 這就是嵌套 VHD。對c:\vhd\ExampleFixed.vhd 執行"附加 VHD"操作將使 m: 卷可用。而對m:\vhd\AnestedFixed.vhd 執行"附加 VHD"操作將使另一個卷(例如 "n:")可用。 最多隻能附加 2層嵌套VHD。這意味著,可以在另一個附加 VHD 內再附加一個 VHD。 但是,如果在另一個已經是另一個附加 VHD 的附加 VHD中附加VHD,則會失敗。

十二、是否可以將兩個附加 VHD 配置為動態磁碟?
  動態磁碟是一種針對動態儲存裝置初始化的磁碟,它包含動態磁碟區,如簡單磁碟區、合併磁碟區、等量磁碟區、鏡像磁碟區或 RAID-5 磁碟區。 附加的VHD不能配置為動態磁碟
一樣。VHD只能由擁有卷系統管理權限的使用者(預設情況下僅授予管理員)附加,因為附加磁碟相當於使磁碟或卷聯機。

下面是相關資料:
參考:
Understanding Virtual Hard Disks with Native Boot
http://technet.microsoft.com/en-us/library/dd799282(WS.10).aspx

Windows 7對VHD檔案的內建支援
http://blogs.technet.com/fyu/archive/2009/01/19/windows-7-vhd.aspx

從VHD檔案啟動電腦
http://blogs.technet.com/fyu/archive/2009/01/19/vhd.aspx

深入研究Windows 7中的Virtual Hard Disk (VHD) 技術
http://blogs.technet.com/fyu/archive/2009/01/21/windows-7-virtual-hard-disk-vhd.aspx

再談從虛擬磁碟檔案啟動電腦
http://blogs.technet.com/fyu/archive/2009/02/01/3195439.aspx

BCDboot 命令列選項
http://technet.microsoft.com/zh-cn/library/dd744347(WS.10).aspx

BCDEdit 命令列選項
http://technet.microsoft.com/zh-cn/library/cc709667(WS.10).aspx

工具
Windows(R) 7 的 Windows(R) 自動安裝工具包 (AIK)
http://www.microsoft.com/DOWNLOADS/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&displaylang=zh-cn

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.