2

我正在运行 Ubuntu 10.04,并在其上运行 kvm/qemu。我创建了一个“原始”格式的存储设备并在上面安装了 XP,所以我假设该文件具有 ntfs 格式。我在 XP 虚拟机上有一个我想要在主机上的文件。它是 2gigs,所以我不能只使用 zip 驱动器或将其刻录到 CD。

winxp.img我尝试使用 losttup安装文件( ):

$ sudo losetup /dev/loop1 winxp.img
$ sudo losetup -a
/dev/loop1: [0801]:40637460 (/home/robert/kvm/images/winxp.img)
$ sudo mount -t ntfs /dev/loop1 /home/robert/kvm/images/tmp
NTFS signature is missing.
Failed to mount '/dev/loop1': Invalid argument
The device '/dev/loop1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?

我认为那会奏效。它没有。有人有其他想法吗?

4

2 回答 2

4

winxp.img 和 loop1 不是一个单独的分区(可以挂载),它是带有自己分区表的完整硬盘的映像。

您应该使用 fdisk 从 loop1 读取分区表;计算第一个分区的偏移量并执行:

sudo mount -o offset=N -t ntfs /dev/loop1 /home/robert/kvm/images/tmp

其中 N 是以字节为单位的偏移量。

N 上的心灵感应模式 是 32256 心灵感应模式关闭

最后,打开谷歌模式(我将谷歌“偏移 32256”):

http://en.wikibooks.org/wiki/QEMU/Images#Mounting_an_image_on_the_host

Linux 和其他类 Unix 主机可以使用环回设备挂载使用原始格式类型创建的映像。从 root 登录(或使用 sudo),挂载一个偏移量为 32,256 的环回。

mount -o loop,offset=32256 /path/to/image.img /mnt/mountpoint

于 2011-11-17T19:40:55.257 回答
2

在我看来,通用和正确的方法是通过 libguestfs http://libguestfs.org/ 如果你掌握了它,你可以以任何格式打开每个虚拟图像并获取文件甚至制作快照

于 2011-11-20T00:53:54.550 回答