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