脑洞:在Windows中虚拟一块可拔插U盘喂给Vmware!
脑洞:在Windows中虚拟一块可拔插U盘喂给Vmware!
声明:本文所有方法都是作者亲自思考所得,如有雷同,纯属巧合
目的:在Windows中虚拟一块可拔插U盘.使微PE工具箱可以识别这块虚拟U盘并为其安装PE系统.
作用:将这块虚拟U盘直接挂载在VMWare虚拟机中,启动虚拟机.
工具:DiskGenius,OSFMount.
思路
在本文中,U盘和电脑内置硬盘本质区别在于是否可以在USB口拔插.所以,虚拟U盘和虚拟磁盘的文件本质是一样的,都是大家常见的类型,比如vhd,vhdx,vmdk,img,pmfx,gho等等.由于本文制作的虚拟U盘需要挂载给vmware虚拟机,所以本文使用vmdk虚拟磁盘格式.
主要目的就是使这个虚拟vmdk磁盘的属性为"可移动".
操作
-
打开DiskGenius,点击左上角 磁盘->新建虚拟磁盘文件->新建vmware虚拟磁盘文件
-
设置文件路径,文件名(笔者设为1.vmdk),容量(笔者设为1GB),适配器类型(SATA),直接点击创建
![49虚拟U盘新建vmdk1.png]()
-
随意给这个虚拟磁盘分区即可,笔者把它分为GPT分区表的1GB的NTFS分区
-
打开软件OSFMount,点击 mount new挂载虚拟磁盘,选择disk image file,选择1.vmdk,点击next
-
选择mount entire image as virtual disk,即意为把整个映像文件挂载为虚拟磁盘(如果选择mount partition as virtual disk,则可以选择映像文件里的特定分区挂载),点击next,下一步
-
勾选mount as removable media(挂载为可移动媒体),取消read-only drive(只读磁盘驱动器),因为如果只读,我们将无法向虚拟磁盘写入文件.
-
write mode(写入模式)默认为writecache且无法改变.这意味着挂载后我们写入虚拟磁盘的文件都将以"外挂"的方式存在于另一个文件中.这个文件是虚拟磁盘的缓存文件.
![49两个文件.png]()
OSFMount官网上表示,不直接写入虚拟磁盘的目的是为了保持虚拟磁盘文件的完整性,防止损坏文件.
-
选择physical disk emulation,模拟为物理驱动器,点击mount挂载.
![49第一次挂载.png]()
这时,文件资源管理器里可以显示我们刚刚挂载的虚拟磁盘(1.vmdk).笔者电脑显示出了1GB的NTFS格式分区.右键Windows徽标,点击磁盘管理,我们可以看见这块虚拟磁盘,属性为"可移动".这说明OSFMount确实把他挂载为U盘了.
使用微PE工具箱制作虚拟PE启动盘
打开微PE工具箱.点击右下角的U盘标志,安装PE到U盘.然后我们会发现,我们的虚拟U盘并没有在U盘列表中显示出来.这说明微PE工具箱未识别这块虚拟U盘.
通过大量搜索,解决方法如下:右键微PE工具箱,点击属性->兼容性->以Windows7兼容模式运行.

再次打开软件,虚拟U盘就显示在列表当中.
直接点击安装PE到U盘.稍微等待即可安装成功.文件资源管理器里课件两个分区,分别为"微PE工具箱"和"EFI".这说明PE启动虚拟盘制作成功.

然而,由于挂载虚拟U盘时,write mode强制为writecache,所以微PE工具箱事实上并未把PE系统的文件写入1.vmdk,而是写入了另外的一个缓存文件中,也就是1.vmdk.osfdelta.raw.
这个文件和1.vmdk在同一个文件夹内,是挂载时由OSFMount自动生成的.只有OSFMount能读取这个虚拟缓存,vmware显然不能.
制作完微PE后,笔者的1.vmdk.osfdelta.raw大小变为450MB,而1.vmdk仍为约7MB,可见1.vmdk内确实没有PE系统文件.
因此,如果此时直接把1.vmdk挂载给vmware虚拟机,那么就相当于给他一块空白的硬盘.所以,必须想办法把缓存文件里的数据真真正正的写入1.vmdk.
二次复刻 1.vmdk
"磁盘镜像"给了我灵感.
虽然虚拟磁盘的本质就是磁盘镜像,但是对于已经挂载在文件资源管理器里的虚拟磁盘,我们为什么不能在此基础上再制作一次他的磁盘镜像呢?(整体法隔离法的思想)
- 打开diskgenius,右键虚拟U盘,点击"备份磁盘到镜像文件"
- 备份模式:所有扇区
- 点击"选择映像文件",选择镜像文件的保存位置并命名,笔者命名为1.pmfx
- 点击开始,操作可迅速完成
- 关闭diskgenius


此时,新生成的1.pmfx即属于合并了1.vmdk和1.vmdk.osfdelta.raw这两个文件的镜像.同样的,vmware虚拟机仍然无法识别pmfx这种磁盘镜像格式,所以,我们只剩一步:把pmfx镜像文件恢复到vmdk虚拟磁盘里面.
- 在OSFMount软件里,点击虚拟U盘,点击dismount卸载虚拟U盘

- 打开diskgenius,点击"磁盘"->打开虚拟磁盘文件,选中1.vmdk打开
- 右键VD0:1.vmdk这个虚拟磁盘,点击 将映像文件恢复到磁盘.选择刚刚备份的1.pmfx
- 直接开始,确定
- 将磁盘分区表更改为GPT(个人习惯问题,UEFI固件最好搭配GPT,其实MBR分区表也可以)
- 完成操作

使用1.vmdk启动vmware虚拟机
操作较为简单.
- 新建虚拟机(正常新建)
- 点击 编辑虚拟机设置->硬盘->移除
- 点击 添加->硬盘->下一步->下一步->使用现有虚拟磁盘->选择1.vmdk->完成
- 若提示转换格式,点击转换即可
- 确定

启动虚拟机,我们即可立即进入Windows启动管理器选择操作系统菜单,进入PE系统.

对于本文介绍的方法,笔者并不知道有什么重大的实际意义,但可能会在未来有所应用,也可以加深我们对虚拟磁盘文件的理解,所以在此介绍.



浙公网安备 33010602011771号