2

私はUbuntu10.04を実行しており、その上でkvm/qemuを実行しています。「raw」形式のストレージデバイスを作成し、XPをインストールしたので、ファイルはntfs形式であると想定しています。XP仮想マシンにホスト上に必要なファイルがあります。2ギガなので、zipドライブを使用したりCDに書き込んだりすることはできません。

winxp.imglosetupを使用してファイル()をマウントしてみました:

$ 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ライクなホストは、ループバックデバイスを使用してraw形式で作成されたイメージをマウントできます。ルートログインから(または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 に答える