VHD(X)虚拟磁盘文件的使用

前言

虚拟磁盘是一种纯软件实现的磁盘,对于有使用过虚拟机的人来说应该不会太陌生。当然,虚拟磁盘不仅仅可以用在虚拟机上,甚至可以把它当成一个物理磁盘来用!相信本篇介绍完,你也会用上它!

Windows下支持的虚拟磁盘有两种格式,即VHD和VHDX,后者是升级版,所以VHDX性能综合来讲应该要比VHD优越,建议用的时候直接创建成VHDX。

创建和挂载

按 Win + K 键打开磁盘管理,在菜单选择 <操作> <创建VHD>(如果已有磁盘,可选择附件VHD)。

此时需要设置磁盘存放的位置、大小、磁盘格式和磁盘格式,确定即可。需要注意的是,如果类型选择固定大小,确定后会初始化磁盘文件,如果比较大的话则需要等待一段时间。

创建完成后会自动挂载该磁盘,此时还不可用,需要进行初始化和格式化。右键挂载的磁盘,初始化磁盘 - GPT。

接着再右键未分配区域,选择新建简单卷,一直按下一步即可,最后在资源管理器可以看到一个多出来的磁盘。

 

性能

有人或许有这样的疑问,虚拟磁盘是建立在物理磁盘上的,性能会不会比物理磁盘差一些呢?

针对此疑问,我直接做了一个测试:

1.创建四个1G的虚拟磁盘文件,分VHD和VHDX两种,类型同样有固定大小和动态扩展两类。

2.用DiskMark分别对4个虚拟磁盘和存放虚拟磁盘的物理分区进行读写测试,最终如下:

固定大小VHD磁盘

动态扩展VHD磁盘

固定大小VHDX磁盘

动态扩展VHDX磁盘

物理磁盘

可看到各磁盘差异非常小,有些差异可能是误差造成的,只有通过多次测试才能最大化降低,我这里只是大概测试一下,就不去详细测试了,比较耗时间。由此可知,虚拟磁盘的性能基本和物理磁盘无异。

应用场景

1.安装系统

对于有需要多个Windows共存的人来说,把系统安装在虚拟磁盘中是一个较好的方法。怎么安装呢?比如需要一个WIN11+WIN7的组合,那便可以在某个磁盘的分区创建两个虚拟磁盘,按前文方法初始化完,然后再把系统分别装到两个磁盘中,然后使用引导工具把虚拟磁盘中的系统添加到引导文件中即可,全程推荐使用DISM++!

通过此方法,可以实现同一个分区中多个系统共存。

有一点需要注意,虚拟磁盘文件最好放在SSD中,这样保证它的读写速度够快,操作系统运行才能流畅。

2.存放文件

把文件存放到虚拟磁盘的目的是便于文件的搬运,比如我们做BIOS的,代码有几万个文件组成,有一天如果要把代码复制到另一个地方,那是一件非常厌烦的事情,因为文件小且多,复制效率低下,等待时间长。此时若是放在虚拟磁盘中,它便是一个文件,不费吹灰之力便可转移。不单单是存放代码,像一些软件、资料等同样也适用的,比如自己平常习惯使用的一些工具,想要复制到办公电脑,如果工具都放在虚拟磁盘,那直接可以复制过去,然后挂载便可使用。

3.DEBUG

结合虚拟机,虚拟磁盘还可以用来调试EFI APP。

写UEFI应用的时候,一些涉及到底层的操作,如读写寄存器等是需要硬件支持的,如果直接在物理电脑运行,效率就太低了。EDK2虽自带的模拟器,但并不支持硬件操作,而QEMU使用也比较麻烦,所以我会选择VirtualBox+虚拟磁盘来调试。

怎么做呢?首先新建一个磁盘,格式化为fat32格式,再新建一个虚拟机,打开EFI支持,选择新建的磁盘即可!运行虚拟机后会自动进入shell,便可运行虚拟磁盘内的APP了。

下面是我调试读写RTC寄存器APP的界面:

自动挂载

虚拟磁盘文件的挂载并不是永久的,系统重启之后便会失效,需要重新挂载。如果要每次进系统都自动挂载可以实现么?答案是可以的,方法如下:

1.新建一个TXT文件,后缀改为bat,复制如下内容:

@echo off
echo select vdisk file="C:\vhd">vhdsel
echo attach vdisk>>vhdsel
echo list disk>>vhdsel
diskpart /s vhdsel
del /f /q vhdsel
exit

VHD文件的路径要改一下。

2.Win + R键,输入taskschd.msc打开任务计划,创建一个基本任务并按如下设置:

 

重启即可自动挂载!

版权声明:
作者:bin
链接:https://ay123.net/notebook/experience/1379/
来源:爱影博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
VHD(X)虚拟磁盘文件的使用
前言 虚拟磁盘是一种纯软件实现的磁盘,对于有使用过虚拟机的人来说应该不会太陌生。当然,虚拟磁盘不仅仅可以用在虚拟机上,甚至可以把它当成一个物理磁盘来……
<<上一篇
下一篇>>
文章目录
关闭
目 录