UEFI GPT 启动 VHD
说明
周五,笔记本充不进电了,还好我的系统是做到 VHD
中的,把硬盘拿出来,插到其它机器上,从我的硬盘启动就可以了(虽然当时没有从我的系统启动,因为只需要等待一天,周末就可以去修电脑了),所以我一点都不慌。
p.s. 天津这些电脑店还是那么乱,或者更甚?找个靠谱的维修点不是一般的难。联想官方维修店相对正规,但是要钱也很贵。最后,在领导的帮助下,在信诚大厦找了一个靠谱的维修点儿修好了,原来是主板上的一个元器件坏了。师傅的微信号是 wx256587,天津的小伙伴儿有需要可以联系。
今天,想起之前总结过如何把系统制作到 VHD
中,并设置对应启动项的文章,遂分享给大家。
以下是之前总结的博文,请参考。
1. 缘起
最近因为不小心中招了(一直在裸奔),又面临着重装系统的尴尬,虽然之前有备份,但是时间已经很久了,而且恢复一次跟重装一遍差不多,没有多大优势。之前同事帮我弄过从 VHD
文件启动系统,很是方便,可以备份 VHD
文件即可。借此机会,决定好好研究下来龙去脉。
2. 创建 VHD 文件并写入系统镜像到 VHD 文件
2.1 制作 VHD 文件
创建 VHD
文件比较简单,有两种创建方式:
2.1.1 纯界面创建
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
然后一直下一步就行了。
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
号,如下图
![](http://n4.ikafan.com/assetsj/blank.gif)
然后运行 dism /apply-image /imagefile:path_to_your_wim_file /index:4 /applydir:your_vhd_mounted_volume
![](http://n4.ikafan.com/assetsj/blank.gif)
耐心等待完成即可。
小结
dism 命令需要管理员权限 不清楚低版本系统自带的 dism 是否支持部署,可以通过 dism /? 来查看帮助,如果 dism 不支持,还可以通过 imagex 等工具来部署。 wim 文件一般要使用镜像文件中的 \sources\install.wim 文件,大约有几 GB 大小。 我这里以 win10 为例,其实从 win7 开始就支持从 VHD 文件启动了。
3. 添加 VHD 文件到系统引导
添加启动项需要用到工具bootice。我们可以在当前系统下添加一个新的引导项, 也可以从0开始(适用于当前没有系统的情况)新建引导项。
3.1 添加新的引导项
适用于当前有系统,需要添加一个新的启动项的情况
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
![](http://n4.ikafan.com/assetsj/blank.gif)
编辑好之后,点击 保存当前系统设置(S),再点击 保存全局设置(G) 即可。
3.2 新建引导项
如果你有一块新硬盘, 想为该硬盘装系统, 那么请耐心往下看。
3.2.1 硬盘分区
分区的时候要选 GPT
分区,可以手动分区也可以使用 DiskGenius
帮助我们分区。
![](http://n4.ikafan.com/assetsj/blank.gif)
UEFI
要求有一个FAT
格式的分区(FAT16或者FAT32均可), 系统启动的时候会在FAT
格式的分区下找启动文件。这里的FAT
分区就是上图中的ESP
分区。
3.2.2 拷贝 UEFI 启动文件到 ESP 分区
建立好 ESP
分区后, 我们就可以拷贝 UEFI
启动文件到该分区。需要拷贝什么文件呢? 从哪里可以找到这些文件呢?
我们只需要把安装镜像下面的 efi
文件夹整个拷贝到刚刚新建好的 ESP
分区即可。
![](http://n4.ikafan.com/assetsj/blank.gif)
win10 64
位镜像中 efi
文件夹中的文件树如下:
![](http://n4.ikafan.com/assetsj/blank.gif)
注意:拷贝文件需要有盘符才能拷贝,可以手动或者通过
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)
![](http://n4.ikafan.com/assetsj/blank.gif)
以上步骤都做好以后, 就可以拷贝做好的 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:
操作系统引导过程: 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