UEFI + GPT 启动 VHD
說明
周五,筆記本充不進電了,還好我的系統是做到 VHD 中的,把硬盤拿出來,插到其它機器上,從我的硬盤啟動就可以了(雖然當時沒有從我的系統啟動,因為只需要等待一天,周末就可以去修電腦了),所以我一點都不慌。
p.s. 天津這些電腦店還是那么亂,或者更甚?找個靠譜的維修點不是一般的難。聯想官方維修店相對正規,但是要錢也很貴。最后,在領導的幫助下,在信誠大廈找了一個靠譜的維修點兒修好了,原來是主板上的一個元器件壞了。師傅的微信號是 wx256587,天津的小伙伴兒有需要可以聯系。
今天,想起之前總結過如何把系統制作到 VHD 中,并設置對應啟動項的文章,遂分享給大家。
以下是之前總結的博文,請參考。
1. 緣起
最近因為不小心中招了(一直在裸奔),又面臨著重裝系統的尷尬,雖然之前有備份,但是時間已經很久了,而且恢復一次跟重裝一遍差不多,沒有多大優勢。之前同事幫我弄過從 VHD 文件啟動系統,很是方便,可以備份 VHD 文件即可。借此機會,決定好好研究下來龍去脈。
2. 創建 VHD 文件并寫入系統鏡像到 VHD 文件
2.1 制作 VHD 文件
創建 VHD 文件比較簡單,有兩種創建方式:
2.1.1 純界面創建
我的電腦-右鍵-管理存儲-磁盤管理-創建VHD創建100GB大小的可動態擴展的VHD文件初始化磁盤使用GPT分區格式新建簡單卷然后一直下一步就行了。
2.1.2 命令行創建
可以參考https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-7/gg318049(v%3Dws.10)#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。
2019-09-10 更新:虛擬磁盤大小(S): 的單位也可以切換成 GB,直接輸入 100 就可以了。
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然后運行 dism /apply-image /imagefile:path_to_your_wim_file /index:4 /applydir:your_vhd_mounted_volume
apply image耐心等待完成即可。
小結
dism 命令需要管理員權限
不清楚低版本系統自帶的 dism 是否支持部署,可以通過 dism /? 來查看幫助,如果 dism 不支持,還可以通過 imagex 等工具來部署。
wim 文件一般要使用鏡像文件中的 \sources\install.wim 文件,大約有幾 GB 大小。
我這里以 win10 為例,其實從 win7 開始就支持從 VHD 文件啟動了。
3. 添加 VHD 文件到系統引導
添加啟動項需要用到工具bootice。我們可以在當前系統下添加一個新的引導項, 也可以從0開始(適用于當前沒有系統的情況)新建引導項。
3.1 添加新的引導項
適用于當前有系統,需要添加一個新的啟動項的情況
編輯當前系統的BCD新建VHD啟動項編輯啟動項編輯好之后,點擊 保存當前系統設置(S),再點擊 保存全局設置(G) 即可。
3.2 新建引導項
如果你有一塊新硬盤, 想為該硬盤裝系統, 那么請耐心往下看。
3.2.1 硬盤分區
分區的時候要選 GPT 分區,可以手動分區也可以使用 DiskGenius 幫助我們分區。
UEFI 要求有一個 FAT 格式的分區(FAT16或者FAT32均可), 系統啟動的時候會在 FAT 格式的分區下找啟動文件。這里的 FAT 分區就是上圖中的 ESP 分區。
3.2.2 拷貝 UEFI 啟動文件到 ESP 分區
建立好 ESP 分區后, 我們就可以拷貝 UEFI 啟動文件到該分區。需要拷貝什么文件呢? 從哪里可以找到這些文件呢?
我們只需要把安裝鏡像下面的 efi 文件夾整個拷貝到剛剛新建好的 ESP 分區即可。
win10 64 位鏡像中 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文件以上步驟都做好以后, 就可以拷貝做好的 vhd 系統鏡像到指定目錄, 然后重啟了。
4. 總結
整個過程比較清晰,主要分兩大步:
創建VHD文件并寫入系統鏡像到VHD文件
添加VHD文件到系統引導
UEFI啟動 關鍵是要有一個 ESP 分區,該分區是 FAT (FAT16或者FAT32均可)格式的,ESP 分區下要按照UEFI規范放好需要的啟動文件。
5. 參考資料
操作系統引導過程[1]
(譯) UEFI 啟動:實際工作原理[2]
UEFI+GPT引導基礎篇(一):什么是GPT,什么是UEFI?[3]
計算機到底如何啟動?(UEFI boot)[4]
裝機、做系統必備:秒懂MBR和GPT分區表[5]
計算機是如何啟動的?[6]
UEFI啟動視頻詳解:啟動分析+N項操作實例,趕緊學習,不要落伍啦,該給自己充電啦...[7]
References:
[1]
操作系統引導過程: https://blog.csdn.net/jonathan321/article/details/51987680
[2](譯) UEFI 啟動:實際工作原理: https://www.tuicool.com/articles/NNf26jB
[3]UEFI+GPT引導基礎篇(一):什么是GPT,什么是UEFI?: https://www.iruanmi.com/what-is-gpt-and-what-is-uefi/
[4]計算機到底如何啟動?(UEFI boot: https://blog.csdn.net/u013201439/article/details/50195743
[5]裝機、做系統必備:秒懂MBR和GPT分區表: http://www.chinaz.com/server/2016/1017/595444.shtml
[6]計算機是如何啟動的?: http://www.ruanyifeng.com/blog/2013/02/booting.html
[7]UEFI啟動視頻詳解:啟動分析+N項操作實例,趕緊學習,不要落伍啦,該給自己充電啦...: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=299643&fromuid=396698
歡迎留言交流
感謝你的分享,點贊和在看
總結
以上是生活随笔為你收集整理的UEFI + GPT 启动 VHD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于C#开发的浏览器隐身工具-上班别乱开
- 下一篇: 基于Prometheus和Grafana