在VMware Workstation Pro里做的windows .vmdk,强制导入腾讯云后,需要进入救援模式winpe,离线集成virtio驱动才行
我在想,可否在导入腾讯云之前就在本地离线集成好virtio驱动?已知可行的办法:用starwind、qemu-img.exe转.vmdk为.vhd,然后附加.vhd后,用dism命令对系统分区集成驱动即可。但这样太麻烦了,可否直接挂载.vmdk,然后用dism命令离线集成virtio驱动?先说结论:可以挂载,但是dism命令跟.vhd兼容,跟.vmdk不兼容,因此行不通。
一、imdisk挂载、卸载.vmdk(网传的OSFMount试了,不行,而最新版vmware本身不支持UI或命令行挂载.vmdk)
使用imdisk挂载
1、下载imdisk
https://onboardcloud.dl.sourceforge.net/project/imdisk-toolkit/20250206/ImDiskTk-x64.zip
或
https://sourceforge.net/projects/imdisk-toolkit/files/20250206/ImDiskTk-x64.zip/download
2、安装imdisk
解压后,只有install.bat和files.cab,运行install.bat即可看到安装界面,一直下一步→ 下一步→ ... → 直到安装完成
3、UI界面手动挂载或解挂
调出UI界面的命令是imdisk.cpl
命令行挂载示例:
"C:\Program Files\ImDisk\MountImg.exe" "C:\Users\Administrator\Documents\Virtual Machines\win11-25h2-cn-uefi-ntfs-20250830\win11-25h2-cn-uefi-ntfs-20250830.vmdk" /MP=Z: /P=4 /HD /MOUNT
命令行只能挂载、不能卸载,查看用法参考MountImg.exe /?
例如cmd命令行:"C:\Program Files\ImDisk\MountImg.exe" /?
原本是想这样干的,但发现dism报错4390
Z:\virtio-win-0.1.271-qxldod\w10\amd64
qxldod.inf
Z:\QCloudVirtIO\Win10_Win11_2016_2019_2022\amd64
viostor.inf
netkvm.inf
Dism /Image:"Z:" /get-drivers
Dism /Add-Driver /Image:"Z:" /Driver:"Z:\QCloudVirtIO\Win10_Win11_2016_2019_2022\amd64\viostor.inf" /ForceUnsigned
Dism /Add-Driver /Image:"Z:" /Driver:"Z:\QCloudVirtIO\Win10_Win11_2016_2019_2022\amd64\netkvm.inf" /ForceUnsigned
Dism /Add-Driver /Image:"Z:" /Driver:"Z:\virtio-win-0.1.271-qxldod\w10\amd64\qxldod.inf" /ForceUnsigned
二、即便用imdisk.cpl挂载.vmdk有盘符了,由于dism.exe跟.vmdk不兼容,无法使用dism集成virtio驱动,只能用前面提到的办法,要么在云侧救援模式winpe里操作,要么在上传.vmdk之前就转成.vhd添加好驱动再上传、导入。
echo.>C:\WINDOWS\Logs\DISM\dism.log
Dism /Image:"Z:" /get-drivers
notepad C:\WINDOWS\Logs\DISM\dism.log
内容如下:“is not a WIM mount point” “is not recognized by the DISM FFU provider” “is not recognized by the DISM VHD provider”
错误信息非常具体,指向了Windows内置的部署工具DISM及其支持的特定文件格式。
核心结论:DISM是一个用于管理微软官方镜像格式(WIM/FFU/VHD) 的强大工具,但它不支持VMware的VMDK格式
2025-09-03 16:34:57, Info DISM PID=61860 TID=60636 Scratch directory set to 'C:\Users\ADMINI~1\AppData\Local\Temp\'. - CDISMManager::put_ScratchDir
2025-09-03 16:34:57, Info DISM PID=61860 TID=60636 DismCore.dll version: 10.0.26100.4652 - CDISMManager::FinalConstruct
2025-09-03 16:34:57, Info DISM Initialized Panther logging at C:\WINDOWS\Logs\DISM\dism.log
2025-09-03 16:34:57, Info DISM PID=61860 TID=60636 Successfully loaded the ImageSession at "C:\Windows\System32\Dism" - CDISMManager::LoadLocalImageSession
2025-09-03 16:34:57, Info DISM Initialized Panther logging at C:\WINDOWS\Logs\DISM\dism.log
2025-09-03 16:34:57, Info DISM DISM Provider Store: PID=61860 TID=60636 Found and Initialized the DISM Logger. - CDISMProviderStore::Internal_InitializeLogger
2025-09-03 16:34:57, Info DISM Initialized Panther logging at C:\WINDOWS\Logs\DISM\dism.log
2025-09-03 16:34:57, Info DISM DISM Manager: PID=61860 TID=60636 Successfully created the local image session and provider store. - CDISMManager::CreateLocalImageSession
2025-09-03 16:34:57, Info DISM DISM.EXE:
2025-09-03 16:34:57, Info DISM DISM.EXE: <----- Starting Dism.exe session ----->
2025-09-03 16:34:57, Info DISM DISM.EXE:
2025-09-03 16:34:57, Info DISM DISM.EXE: Host machine information: OS Version=10.0.26100, Running architecture=amd64, Number of processors=16
2025-09-03 16:34:57, Info DISM DISM.EXE: Instance information: Parent process=C:\Windows\System32\cmd.exe, Parent process PID=58556
2025-09-03 16:34:57, Info DISM DISM.EXE: Dism.exe version: 10.0.26100.1150
2025-09-03 16:34:57, Info DISM DISM.EXE: Executing command line: Dism /Image:"Z:" /get-drivers
2025-09-03 16:34:57, Info DISM DISM FFU Provider: PID=61860 TID=60636 [Z:\] is not recognized by the DISM FFU provider. - CFfuImage::Initialize
2025-09-03 16:34:57, Info DISM DISM Imaging Provider: PID=61860 TID=60636 The provider FfuManager does not support CreateDismImage on Z:\ - CGenericImagingManager::CreateDismImage
2025-09-03 16:34:57, Info DISM DISM VHD Provider: PID=61860 TID=60636 [Z:\] is not recognized by the DISM VHD provider. - CVhdImage::Initialize
2025-09-03 16:34:57, Info DISM DISM Imaging Provider: PID=61860 TID=60636 The provider VHDManager does not support CreateDismImage on Z:\ - CGenericImagingManager::CreateDismImage
2025-09-03 16:34:57, Info DISM DISM WIM Provider: PID=61860 TID=60636 [Z:\] is not a WIM mount point. - CWimMountedImageInfo::Initialize
2025-09-03 16:34:57, Info DISM DISM Imaging Provider: PID=61860 TID=60636 The provider WimManager does not support CreateDismImage on Z:\ - CGenericImagingManager::CreateDismImage
2025-09-03 16:34:57, Info DISM DISM Imaging Provider: PID=61860 TID=60636 No imaging provider supported CreateDismImage for this path - CGenericImagingManager::CreateDismImage
2025-09-03 16:34:57, Info DISM DISM WIM Provider: PID=61860 TID=60636 [Z:\] is not a WIM mount point. - CWimMountedImageInfo::Initialize
2025-09-03 16:34:57, Info DISM DISM FFU Provider: PID=61860 TID=60636 [Z:\] is not recognized by the DISM FFU provider. - CFfuImage::Initialize
2025-09-03 16:34:57, Info DISM DISM VHD Provider: PID=61860 TID=60636 [Z:\] is not recognized by the DISM VHD provider. - CVhdImage::Initialize
2025-09-03 16:34:57, Info DISM DISM Manager: PID=61860 TID=60636 physical location path: Z:\ - CDISMManager::CreateImageSession
2025-09-03 16:34:57, Error DISM DISM Manager: PID=61860 TID=60636 Failed to create unique image session lock name for DISM located at 'Z:\Windows\System32\Dism\dismprov.dll'. - CDISMManager::CheckSessionAndLock(hr:0x80071126)
2025-09-03 16:34:57, Error DISM DISM Manager: PID=61860 TID=60636 Failed to create the image session lock for location: Z:\Windows\System32\Dism - CDISMManager::CreateImageSession(hr:0x80071126)
2025-09-03 16:34:57, Error DISM DISM.EXE: Could not load the image session. HRESULT=80071126
2025-09-03 16:34:57, Info DISM DISM.EXE: Image session has been closed. Reboot required=no.
2025-09-03 16:34:57, Info DISM DISM.EXE:
2025-09-03 16:34:57, Info DISM DISM.EXE: <----- Ending Dism.exe session ----->
2025-09-03 16:34:57, Info DISM DISM.EXE:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。