在 Linux Box 上环回挂载 VMDK 平面映像

use*_*916 6 mount loop-device vmware-vmdk kpartx

我正在尝试循环挂载由 VMware fusion 生成的 VMDK 平面映像。VMDK 文件具有 -flat 扩展名。我正在尝试使用 kpartx

kpartx -av /path/to /my/vmdk
Run Code Online (Sandbox Code Playgroud)

但我明白了

llseek error
device-mapper: resume ioctl on loop0p1 failed: invalid argument
create/reload failed on loop0p1
add map loop0p1 (0:0): 0 18872320 linear /dev/loop0 2048
Run Code Online (Sandbox Code Playgroud)

我还尝试将 vmdk 转换为原始数据,但遇到了同样的错误

知道出了什么问题吗?

use*_*916 8

出于某种原因,这已经奏效

losetup /dev/loop0 <vmdk file>
kpartx -av /dev/loop0
mount /dev/mapper/loop0p1 /mount/point
Run Code Online (Sandbox Code Playgroud)

我不知道为什么这有效,而不是上述方法。如果您有任何解释,请告诉我。

  • 如果它解决了您的问题,您可以(并且应该)接受您自己的答案。 (2认同)