[原]UEFI+GPT啟動VHD


1. 緣起

最近因為不小心中招了,又面臨着重裝系統的尷尬,雖然之前有備份,但是時間已經很久了,而且恢復一次跟重裝一遍差不多,沒有多大優勢。之前同事幫我弄過從vhd文件啟動系統,很是方便,可以備份vhd文件即可。借此機會,決定好好研究下來龍去脈。

2. 創建VHD文件並寫入系統鏡像到VHD文件

2.1 制作VHD文件

創建VHD文件比較簡單,有兩種創建方式:

2.1.1 純界面創建

我的電腦-右鍵-管理
我的電腦-右鍵-管理

存儲-磁盤管理-創建VHD
存儲-磁盤管理-創建VHD

創建100GB大小的可動態擴展的VHD文件
創建100GB大小的可動態擴展的VHD文件

初始化磁盤
初始化磁盤

使用GPT分區格式
使用GPT分區格式

新建簡單卷
新建簡單卷

然后一直下一步就行了。

2.1.2 命令行創建

可以參考https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-7/gg318049%28v%3dws.10%29#using-the-disk-management-tools
主要命令如下(需要以管理員權限運行):

rem 先執行diskpart進入diskpart交互界面
Diskpart
rem 創建一個最大102408MB的類型為動態擴展的VHD文件,保存到E:\VHDs\win10.vhd
create vdisk file=E:\VHDs\win10.vhd maximum=102408 type=expandable
rem 選擇需要操作的vhd文件
select vdisk file=E:\VHDs\win10.vhd
rem 附加之
attach vdisk
rem 創建分區
create partition primary
rem 分配盤符
assign letter=z
rem 格式化
format quick FS=NTFS label=My-VHD
rem 退出diskpart
exit

注:如果虛擬磁盤類型是動態擴展,那么從VHD啟動的時候要保證該VHD所在的分區的空閑空間要大於你創建VHD文件時指定的大小。比如我這里指定的是102408MB,存放在E盤。那么我想從win10.vhd啟動的話,我需要確保E盤空閑區域要大於102408MB。

2.2 把系統鏡像寫入VHD文件

win10下可以使用dism命令部署鏡像。先從msdn i tell you上下載想要安裝的系統鏡像,並用iso工具加載, 我用的是virtual clonedrive

先用dism /get-imageinfo /imagefile:path_to_your_wim_file查看下信息,主要為了得到各個版本系統的index號,如下圖

get image info
get image info

然后運行dism /apply-image /imagefile:path_to_your_wim_file /index:4 /applydir:your_vhd_mounted_volume

apply image
apply image

耐心等待完成即可。

注:

  1. dism命令需要管理員權限
  2. 不清楚低版本系統自帶的dism是否支持部署,可以通過dism /?來查看幫助,如果dism不支持,還可以通過imagex等工具來部署。
  3. wim文件一般要使用鏡像文件中的\sources\install.wim文件,大約有幾GB大小。
  4. 我這里以win10為例,其實從win7開始就支持從VHD文件啟動了。

3. 添加VHD文件到系統引導

添加啟動項需要用到工具bootice。我們可以在當前系統下添加一個新的引導項, 也可以從0開始(適用於當前沒有系統的情況)新建引導項。

3.1 添加新的引導項

適用於當前有系統,需要添加一個新的啟動項的情況

編輯當前系統的BCD
編輯當前系統的BCD

新建VHD啟動項
新建VHD啟動項

編輯啟動項
編輯啟動項

編輯好之后,點擊 保存當前系統設置(S),再點擊 保存全局設置(G)即可。

3.2 新建引導項

如果你有一塊新硬盤, 想為該硬盤裝系統, 那么請耐心往下看。

3.2.1 硬盤分區

分區的時候要選GPT分區,可以手動分區也可以使用DiskGenius幫助我們分區。
使用DiskGenius快速分區

注:UEFI要求有一個FAT格式的分區(FAT16或者FAT32均可), 系統啟動的時候會在FAT格式的分區下找啟動文件。這里的FAT分區就是上圖中的ESP分區。

3.2.2 拷貝UEFI啟動文件到ESP分區

建立好ESP分區后, 我們就可以拷貝UEFI啟動文件到該分區。需要拷貝什么文件呢? 從哪里可以找到這些文件呢?

我們只需要把安裝鏡像下面的EFI文件夾整個拷貝到剛剛新建好的ESP分區即可。
EFI文件夾

win10 64位鏡像中EFI文件夾中的文件樹如下:
EFI文件夾下文件

注意:拷貝文件需要有盤符才能拷貝,可以手動或者通過DiskGenius為ESP分區分配一個臨時的盤符。

注:有些教程說需要拷貝與EFI文件夾平行的boot文件夾。經過親自測試,與EFI文件夾平行的boot文件夾不需要拷貝。當然拷貝了也沒壞處。

3.2.3 拷貝裝有系統鏡像的VHD文件到指定目錄下

因為創建的時候我已經把文件生成到了E:\VHDs\win10.vhd,我不打算放到其它目錄下,這一步就省了。大家可以根據自己的需要靈活調整。

3.2.4 修改BCD, 添加VHD啟動項

我們需要修改ESP分區下的EFI\microsoft\boot\bcd文件。
大體步驟和3.1中一樣,只有第一步的時候不一樣,BCD編輯的時候要選擇 其它BCD文件(O) 而不是 當前系統BCD(S)

編輯其它BCD文件
編輯其它BCD文件

以上步驟都做好以后, 就可以拷貝做好的vhd系統鏡像到指定目錄, 然后重啟了。

4. 小結

整個過程比較清晰,主要分兩大步:

  1. 創建VHD文件並寫入系統鏡像到VHD文件
  2. 添加VHD文件到系統引導

UEFI啟動 關鍵是要有一個ESP分區,該分區是FAT (FAT16或者FAT32均可)格式的,ESP分區下要按照UEFI規范放好需要的啟動文件。

5. 參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM