2011-11-17 189 views
1

我正在運行Ubuntu 10.04,並在其上運行kvm/qemu。我用'raw'格式創建了一個存儲設備,並在其上安裝了XP,所以我認爲該文件具有NTFS格式。我在主機上需要一個XP虛擬機上的文件。這是2gigs,所以我不能只使用zip驅動器或將其刻錄到CD。運行Windows XP的KVM虛擬機:如何從guest虛擬機獲取文件到主機?

我試圖安裝使用losetup文件(winxp.img):

$ 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? 

我認爲這是可行的。它沒有。有沒有人有另一個想法?

回答

3

winxp.img和loop1不是單個分區(可以掛載),它是帶有自己分區表的完整硬盤映像。

您應該從fdisk中讀取loop1中的分區表;計算第一個分區的偏移量,並執行:

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

其中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

1

在我看來,通用的,正確的方法是通過libguestfs http://libguestfs.org/ 如果你掌握了它,你可以在任何格式打開每個虛擬形象,並得到文件,甚至使快照

相關問題