脑洞:在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兼容模式运行.

49兼容性.png

再次打开软件,虚拟U盘就显示在列表当中.

直接点击安装PE到U盘.稍微等待即可安装成功.文件资源管理器里课件两个分区,分别为"微PE工具箱"和"EFI".这说明PE启动虚拟盘制作成功.

49PE做完展示.png

然而,由于挂载虚拟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

49备份vmdk到pmfx.png

49备份pmfx2.png

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

  • 在OSFMount软件里,点击虚拟U盘,点击dismount卸载虚拟U盘

49卸载vmdk.png

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

49恢复vmdk.png


使用1.vmdk启动vmware虚拟机

操作较为简单.

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

49vmware加磁盘.png

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

49成果.gif


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

posted @ 2025-11-30 23:50  吕了了  阅读(0)  评论(0)    收藏  举报