Windows 目前已經支援 VHD 原生開機了

Windows 支援 VHD 開機,也就是我們可以將安裝了系統的 VHD 檔案當開機系統使用。
這對於喜歡保持一個乾淨的系統,或是想要測試各項新程式功能的人都是一個很棒的消息。
因為這讓備份還原跟多重開機瞬間變的簡單了。

通常一般的 VHD 開機需要搭配安裝一套 Windows 系統來使用,但是我連硬碟都想要乾乾淨淨的。

所以現在要說的是 VHD 原生開機
簡單講就是硬碟只有安裝開機引導程式,然後直接使用VHD檔案開機。
系統就安裝在VHD檔案中,也就是不用在硬碟直接安裝作業系統。
這樣硬碟看起來就清爽多了

基於某些理由,或許有人跟我一樣,會有在 VHD 上面執行 XP 的需求。
這裡記錄說明一下安裝的重點過程

首先 XP 的年代沒有VHD,所以 XP 無法直接使用 VHD 格式啟動。所以需要搭配 VBoot 輔助
另外 BIOS 的AHCI 設定有分 AHCI 和 COMPATIBILITY 兩種模式,也就是 AHCI 和 IDE 模式。
XP 原生也沒整合 AHCI 驅動,所以這裡我從 IDE 模式開始敘述。

STEP1

BIOS 設定 AHCI 為 IDE 模式
使用萬用還原GHOST或是手動一步步安裝XP系統到電腦分區中。
有想更改設定或是做系統優化的,在這裡修改完成。

STEP2

完成所有驅動程式的更新。

STEP3

在裝置管理中,IDE ATA/ATAPI 控制器,需要變更為對應晶片的 SATA AHCI 驅動程式。
(如果不要使用 AHCI 模式,省略這步驟,我無法確定VHD是否可以啟動。)
重新啟動電腦
BIOS 設定 AHCI 為 AHCI 模式
如果可以正常開機,表示 AHCI 驅動已經安裝成功。

STEP4

使用PE或是另一個系統開機,然後使用 GHOST 備份剛剛的系統分區。

STEP5 (自動)

搭配 WinXP_VHD 輔助處理工具 2011,可上網 Google 下載位址與使用說明。
要注意的是此工具執行環境為簡體,所以需搭配顯示輔助外掛(e.g Locale Emulator)
先建立 VHD,然後套用 GHOST 映像,最後點選自動導入 Vboot 即可。
(動態調整的我沒用過,因為我要搭配原生開機,必須是固定大小)
到此 VHD XP 已經建立完成

XPVHD01.png

XPVHD02.png

XPVHD03.png

STEP5 (手動)

使用 STEP5 (自動)的方式是比較方便的,但還是說說手動的方式。

下載 VMLite VBoot 這個程式會幫助 XP 認識 VHD 格式。
我們接著從步驟4開始,使用PE或是另一個系統開機,然後準備手動導入 VBoot 驅動和註冊表。

建立一個 VHD 檔案,格式化分區,接著使用 GHOST 備份剛剛的系統分區到 VHD。

手動導入 vboot 驅動和註冊表。

複製 \vboot\floppies\vboot-img\i386\vbootdsk.sys 到目標系統分區的 Windows\system32\drivers 目錄下。

(方法一)
導入"註冊表項目"
(將下面內容存成 vboot.reg,然後直接在 XP 導入;或使用 regedit /s *.reg 導入)
------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\System\ControlSet001\Control\CriticalDeviceDatabase\gen_scsiadapter]
"Service"="vbootdsk"
"ClassGUID"="{4D36E97B-E325-11CE-BFC1-08002BE10318}"

[HKEY_LOCAL_MACHINE\System\ControlSet001\Services\vbootdsk]
"Type"=dword:00000001
"Start"=dword:00000000
"ErrorControl"=dword:00000001
"ImagePath"="system32\\drivers\\vbootdsk.sys"

[-HKEY_LOCAL_MACHINE\System\MountedDevices]
------------------------------------------------------------

(方法二)
使用"命令模式"
(開啟命令提示字元,然後直接輸入指令)
------------------------------------------------------------
掛載註冊表(SYSTEM2 是自取名稱,Z是掛載VHD的磁碟代號)
reg load HKLM\SYSTEM2 "Z:\windows\system32\config\system"

reg add HKLM\SYSTEM2\ControlSet001\Control\CriticalDeviceDatabase\gen_scsiadapter
reg add HKLM\SYSTEM2\ControlSet001\Control\CriticalDeviceDatabase\gen_scsiadapter /v Service /t REG_SZ /d vbootdsk
reg add HKLM\SYSTEM2\ControlSet001\Control\CriticalDeviceDatabase\gen_scsiadapter /v ClassGUID /t REG_SZ /d {4D36E97B-E325-11CE-BFC1-08002BE10318}

reg add HKLM\SYSTEM2\ControlSet001\Control\CriticalDeviceDatabase\gen_scsitest /v Type /t REG_dword /d 1

reg add HKLM\SYSTEM2\ControlSet001\Services\vbootdsk
reg add HKLM\SYSTEM2\ControlSet001\Services\vbootdsk /v Type /t REG_dword /d 1
reg add HKLM\SYSTEM2\ControlSet001\Services\vbootdsk /v Start /t REG_dword /d 0
reg add HKLM\SYSTEM2\ControlSet001\Services\vbootdsk /v ErrorControl /t REG_dword /d 1
reg add HKLM\SYSTEM2\ControlSet001\Services\vbootdsk /v ImagePath /t REG_SZ /d "system32\drivers\vbootdsk.sys"

echo y | reg delete HKLM\SYSTEM2\MountedDevices

卸載註冊表
reg unload HKLM\SYSTEM2
------------------------------------------------------------

(方法三)
編輯"註冊表項目"
(開啟命令提示字元,輸入使用 regedit,編輯註冊表)

Windows 的登錄檔放在 \Windows\System32\config 資料夾內。
對應登錄檔 HKEY_LOCAL_MACHINE\SYSTEM 的檔案是 \Windows\System32\config\SYSTEM。
------------------------------------------------------------
如何編輯另一個 Windows 的登錄檔(修改時請備份)
1.執行 regedit 開啟登錄編輯程式
2.掛載另一個 Windows 的 \Windows\System32\config\SYSTEM
  (示範使用 \Windows\System32\config\SYSTEM)
  (只能使用 HKEY_LOCAL_MACHINE 或 HKEY_USERS 進行掛載,其他分支不能用來掛載)
  先點選 HKEY_LOCAL_MACHINE => 檔案 => 載入登錄區 => 開啟 Windows\System32\config\SYSTEM 檔案
  輸入機碼名稱 => 自己取一個容易記住的名字。
  因為這裡是另一個 Windows 的 SYSTEM 檔,可以取名 SYSTEM2。
3.展開 HKEY_LOCAL_MACHINE,就會看到 SYSTEM2。
  接著修改 SYSTEM2 下的登錄檔即可。(修改內容可參照上面的方法的資料)
4.取消掛載
  修改完 SYSTEM2 之後,點一下 SYSTEM2。
  檔案 => 解除載入登錄區
------------------------------------------------------------

STEP6

將 VBoot 目錄放到開機磁區下,並且將 vbootldr 和 vbootldr.mbr 複製到根目錄。
修改 vboot\grub\grub.cfg 開機選單
VHD 檔案名稱與位置修改為自己對應名稱跟位置。

小技巧
硬碟分區可修改成搭配 UUID 格式。

以上,是我成功啟用 VHD XP 的重點過程。
不會就搞很久,會了就很快。

arrow
arrow
    全站熱搜

    BB 發表在 痞客邦 留言(0) 人氣()