第一次来这里。我在这里搜索过,但没有找到像我这样的问题。如果我错过了,请原谅。
眼前的挑战:从给定的 WIM 文件生成“原始磁盘映像文件”。到目前为止,我所追求的是使用 imagex.exe 和“/apply”操作来获取 WIM 并将其放在服务器上的目录中。这似乎会在该目录中生成我需要的所有必要“内容”。
我该如何获取该内容并生成“原始磁盘映像文件”?有人告诉我“原始磁盘映像文件”的定义是磁盘映像的逐块副本,我希望这是我当前使用的“imagex.exe /apply”命令的输出,但存储在单个文件中,我可以将其交还给我们解决方案中的另一个系统。
imagex.exe /apply image.wim 1 R:\WimImagePoint
我想获取 R:\WimImagePoint 的内容并生成难以捉摸的(对我来说)“原始磁盘映像文件”。ISO 不是他们想要的,也不是任何需要 winPE 的东西。
有什么建议吗?欢迎参考外部实用程序。希望尽可能避免使用非托管代码解决方案,但如果这是唯一的途径,我会考虑它们。
此外,我并不执着于以 imagex /apply 作为起点,这只是目前的舒适区。
答案1
这是我最终做的事情(我希望提交我自己问题的答案以帮助更多的人):
在文本文件中使用 diskpart.exe 和以下命令:
create vdisk file=E:\Temp\RawDisk\2003R2_amd64\2003_R2_amd64.vhd maximum=10000 type=expandable
select vdisk file=E:\Temp\RawDisk\2003R2_amd64\2003_R2_amd64.vhd
attach vdisk
create partition primary
assign letter=v
format fs=ntfs quick label=vhd
active
exit
然后,我使用 imagex.exe 的 /apply 选项将 WIM 文件应用到此逻辑卷:
imagex.exe /apply 2003_R2_amd64.WIM 1 V:\
然后,使用 bootsect.exe(服务器 2003)或 bcdboot.exe(服务器 2008 和 2008 R2)。此示例适用于 2003:
"C:\Program Files\Windows AIK\Tools\PETools\amd64\bootsect.exe" /NT52 V:
然后,使用文本文件中的以下命令再次运行 diskpart.exe:
select vdisk file=E:\Temp\RawDisk\2003R2_amd64\2003_R2_amd64.vhd
detach vdisk
然后,我们运行了一些自己开发的 VHD 到 VMDK 代码,一切正常。我想您也可以使用标准工具获取此 VHD 并将其转换。
希望这有助于造福大众。
答案2
您可以使用以下方式进行逐块复制dd(适用于 Windows),但我认为这不是您所需要的。我猜想“原始”文件将包含所有文件系统信息,例如 FAT32 文件分配表,而 WIM 不会有这些信息。
尝试使用wim2vhd然后使用可以执行此操作的工具转换 vhd2raw。听起来 VBoxConvert 或 qemu-img 可能有助于完成第二步。
编辑
从外表来看这些截图,StarWind V2V 转换器可能是第二步最简单的方法。