Image conversions

Trying to convert old images (Windows XP, Ubuntu 14.04).

Booting Windows XP

The converted Windows XP image does not work well. Someone suggested virt-v2v as a replacement for qemu-img convert. That does not work much better, because virt-v2v apparently has some issue with multi-part vmdk files:

]$ virt-v2v -i disk /data/systems/Virtual\ Machines/Windows\ XP\ Professional.vmwarevm/Windows\ XP\ Professional.vmdk -o local -os /tmp
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0xfb2df0, program = virt-v2v
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0xfb3960, program = virt-v2v
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
[   0.0] Opening the source -i disk /data/systems/Virtual Machines/Windows XP Professional.vmwarevm/Windows XP Professional.vmdk
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0xfb3d10, program = virt-v2v
libguestfs: trace: disk_format "/data/systems/Virtual Machines/Windows XP Professional.vmwarevm/Windows XP Professional.vmdk"
libguestfs: command: run: qemu-img
libguestfs: command: run: \ info
libguestfs: command: run: \ --output json
libguestfs: command: run: \ /dev/fd/3
qemu-img: Could not open '/dev/fd/3': Could not open '/dev/fd/Windows XP Professional-s001.vmdk': No such file or directory
libguestfs: trace: disk_format = NULL (error)
virt-v2v: error: libguestfs error: qemu-img info: /data/systems/Virtual 
Machines/Windows XP Professional.vmwarevm/Windows XP Professional.vmdk: 
qemu-img info exited with error status 1, see debug messages above

If reporting bugs, run virt-v2v with debugging enabled and include the 
complete output:

  virt-v2v -v -x [...]
libguestfs: trace: close
libguestfs: closing guestfs handle 0xfb3d10 (state 0)
libguestfs: trace: close
libguestfs: closing guestfs handle 0xfb3960 (state 0)
libguestfs: trace: close
libguestfs: closing guestfs handle 0xfb2df0 (state 0)

Apparently, virt-v2v opens the file through /dev/fd, and then goes in the wrong directory to open the sub-files of the .vmdk.

Ended up converting the disk image to contiguous file with VMware. That requires destroying all snapshots ūüė¶ and it takes ages.

Bug reports

Filed Qemu feature request to have qemu-img convert respond to SIGINFO.

Filed a libinput request upstream, BZ1418600 was closed.

System update

Installed the latest XQuartz. But for some reason it does not work until you actually reboot the system. I discovered that with another macBook.

There was a pending macOS update anyway, so good time to reboot. Updated macOS and Linux to latest. Stupid update takes over 30 minutes.

Booted on the Linux side to check if the issue I had with Tao3D exists when booting on real hardware. Answer is partly no. The display section shows up and I can draw things there, but the menus are still transparent. I will have to look into the window transparency option.

Apparently, the system update triggered my VMware bug. I tried the various boot options, and none of them seems to boot to graphical mode anymore ūüė¶ [After testing five boot options] Found the right one, 4.9.3-200.

Attempting to reinstall VMware tools, because VMware requires it to enable 3D acceleration.

Problem now is that VMware crashes every time I close the preferences dialog. Annoying, that. The good thing is that when VMware crashes, the virtual machine does not die. They were smart enough to make it a separate process.

Building Spice directly from Git

I temporarily give up building Spice with jhbuild on the Mac. Since I need to install so many things with brew anyway, I am more and more convinced that the right approach is to create a brew recipe.

So I started checking out and building the individual components in parallel on Mac and Linux (Big). On Fedora, obviously, it is quite easy. But building things in parallel allows me to see what might fail on the Mac and how it should be solved.

Building in the default locations only requires a little trick, setting PKG_CONFIG_PATH¬†to the default install locations. I chose to keep the packages I build in /usr/local, I think it’s cleaner and less risky in case of update. There are two directories to add, because spice-protocol.pc goes in /usr/local/share/pkgconfig, whereas the other .pc files go into /usr/local/lib/pkgconfig.

Disk problem with Big

The last build, build of virt-viewer, apparently hung for a while, then:

autom4te: cannot truncate autom4te.cache/requests at 0: Input/output error

Things quickly went south after that. Many operations failed with I/O errors. I rebooted the machine. The disk now shows “32 bad sectors”, it was only one yesterday (I remember looking at it after installation to check the sanity of the disk).


Author: Christophe de Dinechin

I try to change the world, but that's work in progress. If you want to know me, google "Christophe de Dinechin". Keywords: concept programming, virtualization, OS design, programming languages, video games, 3D, modern physics. Some stuff I did that I'm proud of: the first "true" 3D game for the PC, HP's big iron virtualization, real-time test systems for car electronics, some of the best games for the HP48 calculator, a theory of physics that makes sense (at least to me).

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s