You are not logged in.
I am setting up my new laptop and would like to move in three legacy Windows guests from the old laptop (also running Arch with VMWare Workstation where two of the Windows guests reside).
On the new machine, I don't want to install VMWare Workstation and would like to migrate to KVM instead (my old Arch install has already been set up as guest and works better than on the old laptop). However, everything I tried to convert Windows guests and make them working in KVM invariably fails. From VMWare Workstation I tried cloning vmdk, exporting to ovf, converting with vCenter Converter Standalone, then converting with qemu-img. The resulting qcow2 or raw images won't boot (with sata/scsi/virtio, with or without VMWare tools in the converted vmdk). I am looking at a black screen with "Booting from hard drive" message.
I am wondering if it works at all. Seems as though I will have to say goodbye to my old machines and install new Windows under KVM. Or is there a way out?
Any help would be very much appreciated.
Here is the output of virt-rescue on vmdk disks (qemu-img doesn't complain when converting but virt-rescue indicates there are issues with vmdk images):
[xxxx@7750 ~]$ virt-rescue -r /share/win_10_dirty/WINDOWS-IK6AB0T.vmdk
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x55eb221839a0, program = virt-rescue
libguestfs: trace: set_append "guestfs_rescue=1"
libguestfs: trace: set_append = 0
libguestfs: trace: add_drive "/share/win_10_dirty/WINDOWS-IK6AB0T.vmdk" "readonly:true"
libguestfs: creating COW overlay to protect original drive content
libguestfs: trace: get_tmpdir
libguestfs: trace: get_tmpdir = "/tmp"
libguestfs: trace: disk_create "/tmp/libguestfsddtURg/overlay1.qcow2" "qcow2" -1 "backingfile:/share/win_10_dirty/WINDOWS-IK6AB0T.vmdk"
libguestfs: command: run: qemu-img
libguestfs: command: run: \ create
libguestfs: command: run: \ -f qcow2
libguestfs: command: run: \ -o backing_file=/share/win_10_dirty/WINDOWS-IK6AB0T.vmdk
libguestfs: command: run: \ /tmp/libguestfsddtURg/overlay1.qcow2
qemu-img: warning: Deprecated use of backing file without explicit backing format (detected format of vmdk)
Formatting '/tmp/libguestfsddtURg/overlay1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=107554537472 backing_file=/share/win_10_dirty/WINDOWS-IK6AB0T.vmdk backing_fmt=vmdk lazy_refcounts=off refcount_bits=16
libguestfs: trace: disk_create = 0
libguestfs: trace: add_drive = 0
libguestfs: trace: launch
libguestfs: trace: max_disks
libguestfs: trace: max_disks = 255
libguestfs: trace: version
libguestfs: trace: version = <struct guestfs_version = major: 1, minor: 42, release: 0, extra: , >
libguestfs: trace: get_backend
libguestfs: trace: get_backend = "direct"
libguestfs: launch: program=virt-rescue
libguestfs: launch: version=1.42.0
libguestfs: launch: backend registered: unix
libguestfs: launch: backend registered: uml
libguestfs: launch: backend registered: libvirt
libguestfs: launch: backend registered: direct
libguestfs: launch: backend=direct
libguestfs: launch: tmpdir=/tmp/libguestfsddtURg
libguestfs: launch: umask=0022
libguestfs: launch: euid=1000
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: begin building supermin appliance
libguestfs: run supermin
libguestfs: command: run: /usr/bin/supermin
libguestfs: command: run: \ --build
libguestfs: command: run: \ --verbose
libguestfs: command: run: \ --if-newer
libguestfs: command: run: \ --lock /var/tmp/.guestfs-1000/lock
libguestfs: command: run: \ --copy-kernel
libguestfs: command: run: \ -f ext2
libguestfs: command: run: \ --host-cpu x86_64
libguestfs: command: run: \ /usr/lib/guestfs/supermin.d
libguestfs: command: run: \ -o /var/tmp/.guestfs-1000/appliance.d
supermin: version: 5.2.0
supermin: package handler: arch/pacman
supermin: acquiring lock on /var/tmp/.guestfs-1000/lock
supermin: if-newer: output does not need rebuilding
libguestfs: finished building supermin appliance
libguestfs: begin testing qemu features
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: checking for previously cached test results of /usr/bin/qemu-system-x86_64, in /var/tmp/.guestfs-1000
libguestfs: loading previously cached test results
libguestfs: qemu version: 5.2
libguestfs: qemu mandatory locking: yes
libguestfs: qemu KVM: enabled
libguestfs: trace: get_backend_setting "force_tcg"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: trace: get_sockdir
libguestfs: trace: get_sockdir = "/run/user/1000"
libguestfs: finished testing qemu features
libguestfs: trace: get_backend_setting "gdb"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: command: run: file
libguestfs: command: run: \ -- /var/tmp/.guestfs-1000/appliance.d/root
/usr/bin/qemu-system-x86_64 \
-global virtio-blk-pci.scsi=off \
-no-user-config \
-enable-fips \
-nodefaults \
-display none \
-machine accel=kvm:tcg \
-cpu host \
-m 768 \
-no-reboot \
-rtc driftfix=slew \
-no-hpet \
-global kvm-pit.lost_tick_policy=discard \
-kernel /var/tmp/.guestfs-1000/appliance.d/kernel \
-initrd /var/tmp/.guestfs-1000/appliance.d/initrd \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-pci,rng=rng0 \
-device virtio-scsi-pci,id=scsi \
-drive file.file.filename=/tmp/libguestfsddtURg/overlay1.qcow2,file.driver=qcow2,file.backing.file.locking=off,cache=unsafe,id=hd0,if=none \
-device scsi-hd,drive=hd0 \
-drive file=/var/tmp/.guestfs-1000/appliance.d/root,snapshot=on,id=appliance,cache=unsafe,if=none,format=raw \
-device scsi-hd,drive=appliance \
-device virtio-serial-pci \
-serial stdio \
-device sga \
-chardev socket,path=/run/user/1000/libguestfsy6tSc6/guestfsd.sock,id=channel0 \
-device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \
-append "panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=b5f5b6af-7605-4d10-ffff81fc-ce5a9c1afffff190 selinux=0 guestfs_verbose=1 TERM=alacritty guestfs_rescue=1"
WARNING: Image format was not specified for '/tmp/libguestfsddtURg/overlay1.qcow2' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
libguestfs: responding to serial console Device Status Report
^[[44;159R
Google, Inc.
Serial Graphics Adapter 04/27/17
SGABIOS $Id$ (pbonzini@donizetti) gio 27 apr 2017, 08.36.57, UTC
Term: 80x24
4 0
SeaBIOS (version ArchLinux 1.14.0-1)
Booting from ROM...
[ 0.106920] usbserial: usb_serial_init - registering generic driver failed
[ 0.107329] usbserial: usb_serial_init - returning with error -19
supermin: mounting /proc
supermin: ext2 mini initrd starting up: 5.2.0 glibc
supermin: cmdline: panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=b5f5b6af-7605-4d10-ffff81fc-ce5a9c1afffff190 selinux=0 guestfs_verbose=1 TERM=alacritty guestfs_rescue=1
supermin: uptime: 0.13 0.01
supermin: mounting /sys
supermin: internal insmod crc32-pclmul.ko
supermin: internal insmod crc32c-intel.ko
supermin: internal insmod crct10dif-pclmul.ko
supermin: internal insmod crc32_generic.ko
supermin: internal insmod crc32c_generic.ko
supermin: internal insmod nfit.ko
supermin: internal insmod ata_piix.ko
supermin: internal insmod virtio_blk.ko
supermin: internal insmod rng-core.ko
supermin: internal insmod virtio-rng.ko
supermin: internal insmod virtio_console.ko
supermin: internal insmod crypto_engine.ko
supermin: internal insmod virtio_crypto.ko
supermin: internal insmod failover.ko
supermin: internal insmod net_failover.ko
supermin: internal insmod virtio_net.ko
supermin: internal insmod nd_btt.ko
supermin: internal insmod nd_pmem.ko
supermin: internal insmod nd_virtio.ko
supermin: internal insmod virtio_pmem.ko
supermin: internal insmod rpmsg_core.ko
supermin: internal insmod rpmsg_ns.ko
supermin: internal insmod virtio_rpmsg_bus.ko
supermin: internal insmod virtio_scsi.ko
supermin: internal insmod virtio_balloon.ko
supermin: internal insmod virtio_dma_buf.ko
supermin: internal insmod virtio_input.ko
supermin: internal insmod virtio_mem.ko
supermin: internal insmod virtio_mmio.ko
supermin: internal insmod virtio_pci.ko
supermin: internal insmod vdpa.ko
supermin: internal insmod virtio_vdpa.ko
supermin: internal insmod jbd2.ko
supermin: internal insmod mbcache.ko
supermin: internal insmod crc16.ko
supermin: internal insmod ext4.ko
supermin: internal insmod fuse.ko
supermin: internal insmod virtiofs.ko
supermin: internal insmod crc-itu-t.ko
supermin: internal insmod crc4.ko
supermin: internal insmod crc64.ko
supermin: internal insmod crc7.ko
supermin: internal insmod crc8.ko
supermin: internal insmod libcrc32c.ko
supermin: root UUID is longer than 16 bytes
[ 0.455915] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[ 0.456407] CPU: 0 PID: 1 Comm: init Not tainted 5.11.15-arch1-2 #1
[ 0.456773] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ArchLinux 1.14.0-1 04/01/2014
[ 0.457366] Call Trace:
[ 0.457543] dump_stack+0x6b/0x83
[ 0.457748] panic+0x112/0x2e8
[ 0.457935] do_exit.cold+0xa7/0xb3
[ 0.458141] ? vfs_write+0x153/0x2a0
[ 0.458353] do_group_exit+0x33/0xa0
[ 0.458632] __x64_sys_exit_group+0x14/0x20
[ 0.458880] do_syscall_64+0x33/0x40
[ 0.459096] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 0.459396] RIP: 0033:0x441221
[ 0.459603] Code: c0 ff ff ff be e7 00 00 00 ba 3c 00 00 00 eb 16 66 0f 1f 84 00 00 00 00 00 89 d0 0f 05 48 3d 00 f0 ff ff 77 1c f4 89 f0 0f 05 <48> 3d 00 f0 ff ff 76 e7 f7 d8 64 41 89 00 eb df 0f 1f 80 00 00 00
[ 0.460821] RSP: 002b:00007ffe45452978 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
[ 0.461280] RAX: ffffffffffffffda RBX: 00000000004b3230 RCX: 0000000000441221
[ 0.461690] RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001
[ 0.462163] RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 00000000004b3600
[ 0.462572] R10: 0000000000441fb7 R11: 0000000000000246 R12: 00000000004b3230
[ 0.463024] R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001
[ 0.463463] Kernel Offset: 0x33c00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 0.464105] Rebooting in 1 seconds..
libguestfs: error: appliance closed the connection unexpectedly, see earlier error messages
libguestfs: child_cleanup: 0x55eb221839a0: child process died
libguestfs: sending SIGTERM to process 146321
libguestfs: qemu maxrss 180300K
libguestfs: error: guestfs_launch failed, see earlier error messages
libguestfs: trace: launch = -1 (error)
libguestfs: trace: close
libguestfs: closing guestfs handle 0x55eb221839a0 (state 0)
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfsddtURg
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /run/user/1000/libguestfsy6tSc6
[xxxx@7750 ~]$ virt-rescue -r /share/win_10_clean/DESKTOP-Q65756S.vmdk
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x556a837f99a0, program = virt-rescue
libguestfs: trace: set_append "guestfs_rescue=1"
libguestfs: trace: set_append = 0
libguestfs: trace: add_drive "/share/win_10_clean/DESKTOP-Q65756S.vmdk" "readonly:true"
libguestfs: creating COW overlay to protect original drive content
libguestfs: trace: get_tmpdir
libguestfs: trace: get_tmpdir = "/tmp"
libguestfs: trace: disk_create "/tmp/libguestfsrQrxF1/overlay1.qcow2" "qcow2" -1 "backingfile:/share/win_10_clean/DESKTOP-Q65756S.vmdk"
libguestfs: command: run: qemu-img
libguestfs: command: run: \ create
libguestfs: command: run: \ -f qcow2
libguestfs: command: run: \ -o backing_file=/share/win_10_clean/DESKTOP-Q65756S.vmdk
libguestfs: command: run: \ /tmp/libguestfsrQrxF1/overlay1.qcow2
qemu-img: warning: Deprecated use of backing file without explicit backing format (detected format of vmdk)
Formatting '/tmp/libguestfsrQrxF1/overlay1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=256155582464 backing_file=/share/win_10_clean/DESKTOP-Q65756S.vmdk backing_fmt=vmdk lazy_refcounts=off refcount_bits=16
libguestfs: trace: disk_create = 0
libguestfs: trace: add_drive = 0
libguestfs: trace: launch
libguestfs: trace: max_disks
libguestfs: trace: max_disks = 255
libguestfs: trace: version
libguestfs: trace: version = <struct guestfs_version = major: 1, minor: 42, release: 0, extra: , >
libguestfs: trace: get_backend
libguestfs: trace: get_backend = "direct"
libguestfs: launch: program=virt-rescue
libguestfs: launch: version=1.42.0
libguestfs: launch: backend registered: unix
libguestfs: launch: backend registered: uml
libguestfs: launch: backend registered: libvirt
libguestfs: launch: backend registered: direct
libguestfs: launch: backend=direct
libguestfs: launch: tmpdir=/tmp/libguestfsrQrxF1
libguestfs: launch: umask=0022
libguestfs: launch: euid=1000
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: begin building supermin appliance
libguestfs: run supermin
libguestfs: command: run: /usr/bin/supermin
libguestfs: command: run: \ --build
libguestfs: command: run: \ --verbose
libguestfs: command: run: \ --if-newer
libguestfs: command: run: \ --lock /var/tmp/.guestfs-1000/lock
libguestfs: command: run: \ --copy-kernel
libguestfs: command: run: \ -f ext2
libguestfs: command: run: \ --host-cpu x86_64
libguestfs: command: run: \ /usr/lib/guestfs/supermin.d
libguestfs: command: run: \ -o /var/tmp/.guestfs-1000/appliance.d
supermin: version: 5.2.0
supermin: package handler: arch/pacman
supermin: acquiring lock on /var/tmp/.guestfs-1000/lock
supermin: if-newer: output does not need rebuilding
libguestfs: finished building supermin appliance
libguestfs: begin testing qemu features
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: checking for previously cached test results of /usr/bin/qemu-system-x86_64, in /var/tmp/.guestfs-1000
libguestfs: loading previously cached test results
libguestfs: qemu version: 5.2
libguestfs: qemu mandatory locking: yes
libguestfs: qemu KVM: enabled
libguestfs: trace: get_backend_setting "force_tcg"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: trace: get_sockdir
libguestfs: trace: get_sockdir = "/run/user/1000"
libguestfs: finished testing qemu features
libguestfs: trace: get_backend_setting "gdb"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: command: run: file
libguestfs: command: run: \ -- /var/tmp/.guestfs-1000/appliance.d/root
/usr/bin/qemu-system-x86_64 \
-global virtio-blk-pci.scsi=off \
-no-user-config \
-enable-fips \
-nodefaults \
-display none \
-machine accel=kvm:tcg \
-cpu host \
-m 768 \
-no-reboot \
-rtc driftfix=slew \
-no-hpet \
-global kvm-pit.lost_tick_policy=discard \
-kernel /var/tmp/.guestfs-1000/appliance.d/kernel \
-initrd /var/tmp/.guestfs-1000/appliance.d/initrd \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-pci,rng=rng0 \
-device virtio-scsi-pci,id=scsi \
-drive file.file.filename=/tmp/libguestfsrQrxF1/overlay1.qcow2,file.driver=qcow2,file.backing.file.locking=off,cache=unsafe,id=hd0,if=none \
-device scsi-hd,drive=hd0 \
-drive file=/var/tmp/.guestfs-1000/appliance.d/root,snapshot=on,id=appliance,cache=unsafe,if=none,format=raw \
-device scsi-hd,drive=appliance \
-device virtio-serial-pci \
-serial stdio \
-device sga \
-chardev socket,path=/run/user/1000/libguestfs2yDui6/guestfsd.sock,id=channel0 \
-device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \
-append "panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=b5f5b6af-7605-4d10-ffff81fc-ce5a9c1afffff190 selinux=0 guestfs_verbose=1 TERM=alacritty guestfs_rescue=1"
WARNING: Image format was not specified for '/tmp/libguestfsrQrxF1/overlay1.qcow2' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
libguestfs: responding to serial console Device Status Report
^[[44;159R
Google, Inc.
Serial Graphics Adapter 04/27/17
SGABIOS $Id$ (pbonzini@donizetti) gio 27 apr 2017, 08.36.57, UTC
Term: 80x24
4 0
SeaBIOS (version ArchLinux 1.14.0-1)
Booting from ROM...
[ 0.081519] usbserial: usb_serial_init - registering generic driver failed
[ 0.082048] usbserial: usb_serial_init - returning with error -19
^H^H^H^Hsupermin: mounting /proc
supermin: ext2 mini initrd starting up: 5.2.0 glibc
supermin: cmdline: panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=b5f5b6af-7605-4d10-ffff81fc-ce5a9c1afffff190 selinux=0 guestfs_verbose=1 TERM=alacritty guestfs_rescue=1
supermin: uptime: 0.11 0.01
supermin: mounting /sys
supermin: internal insmod crc32-pclmul.ko
supermin: internal insmod crc32c-intel.ko
supermin: internal insmod crct10dif-pclmul.ko
supermin: internal insmod crc32_generic.ko
supermin: internal insmod crc32c_generic.ko
supermin: internal insmod nfit.ko
supermin: internal insmod ata_piix.ko
supermin: internal insmod virtio_blk.ko
supermin: internal insmod rng-core.ko
supermin: internal insmod virtio-rng.ko
supermin: internal insmod virtio_console.ko
supermin: internal insmod crypto_engine.ko
supermin: internal insmod virtio_crypto.ko
supermin: internal insmod failover.ko
supermin: internal insmod net_failover.ko
supermin: internal insmod virtio_net.ko
supermin: internal insmod nd_btt.ko
supermin: internal insmod nd_pmem.ko
supermin: internal insmod nd_virtio.ko
supermin: internal insmod virtio_pmem.ko
supermin: internal insmod rpmsg_core.ko
supermin: internal insmod rpmsg_ns.ko
supermin: internal insmod virtio_rpmsg_bus.ko
supermin: internal insmod virtio_scsi.ko
supermin: internal insmod virtio_balloon.ko
supermin: internal insmod virtio_dma_buf.ko
supermin: internal insmod virtio_input.ko
supermin: internal insmod virtio_mem.ko
supermin: internal insmod virtio_mmio.ko
supermin: internal insmod virtio_pci.ko
supermin: internal insmod vdpa.ko
supermin: internal insmod virtio_vdpa.ko
supermin: internal insmod jbd2.ko
supermin: internal insmod mbcache.ko
supermin: internal insmod crc16.ko
supermin: internal insmod ext4.ko
supermin: internal insmod fuse.ko
supermin: internal insmod virtiofs.ko
supermin: internal insmod crc-itu-t.ko
supermin: internal insmod crc4.ko
supermin: internal insmod crc64.ko
supermin: internal insmod crc7.ko
supermin: internal insmod crc8.ko
supermin: internal insmod libcrc32c.ko
supermin: root UUID is longer than 16 bytes
[ 0.437027] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[ 0.437529] CPU: 0 PID: 1 Comm: init Not tainted 5.11.15-arch1-2 #1
[ 0.437909] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ArchLinux 1.14.0-1 04/01/2014
[ 0.438498] Call Trace:
[ 0.438651] dump_stack+0x6b/0x83
[ 0.438859] panic+0x112/0x2e8
[ 0.439052] do_exit.cold+0xa7/0xb3
[ 0.439266] ? vfs_write+0x153/0x2a0
[ 0.439562] do_group_exit+0x33/0xa0
[ 0.439782] __x64_sys_exit_group+0x14/0x20
[ 0.440036] do_syscall_64+0x33/0x40
[ 0.440255] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 0.440597] RIP: 0033:0x441221
[ 0.440785] Code: c0 ff ff ff be e7 00 00 00 ba 3c 00 00 00 eb 16 66 0f 1f 84 00 00 00 00 00 89 d0 0f 05 48 3d 00 f0 ff ff 77 1c f4 89 f0 0f 05 <48> 3d 00 f0 ff ff 76 e7 f7 d8 64 41 89 00 eb df 0f 1f 80 00 00 00
[ 0.442024] RSP: 002b:00007ffe68e98148 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
[ 0.442586] RAX: ffffffffffffffda RBX: 00000000004b3230 RCX: 0000000000441221
[ 0.443068] RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001
[ 0.443498] RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 00000000004b3600
[ 0.443967] R10: 0000000000441fb7 R11: 0000000000000246 R12: 00000000004b3230
[ 0.444535] R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001
[ 0.445092] Kernel Offset: 0x4200000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 0.445724] Rebooting in 1 seconds..
libguestfs: error: appliance closed the connection unexpectedly, see earlier error messages
libguestfs: child_cleanup: 0x556a837f99a0: child process died
libguestfs: sending SIGTERM to process 154163
libguestfs: qemu maxrss 185236K
libguestfs: error: guestfs_launch failed, see earlier error messages
libguestfs: trace: launch = -1 (error)
libguestfs: trace: close
libguestfs: closing guestfs handle 0x556a837f99a0 (state 0)
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfsrQrxF1
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /run/user/1000/libguestfs2yDui6
[xxxx@7750 ~]$ virt-rescue -r /share/win_7/WIN-38SPPKIEA8J.vmdk
libguestfs: trace: set_verbose true
libguestfs: trace: set_verbose = 0
libguestfs: create: flags = 0, handle = 0x56394a3439a0, program = virt-rescue
libguestfs: trace: set_append "guestfs_rescue=1"
libguestfs: trace: set_append = 0
libguestfs: trace: add_drive "/share/win_7/WIN-38SPPKIEA8J.vmdk" "readonly:true"
libguestfs: creating COW overlay to protect original drive content
libguestfs: trace: get_tmpdir
libguestfs: trace: get_tmpdir = "/tmp"
libguestfs: trace: disk_create "/tmp/libguestfsFtVJef/overlay1.qcow2" "qcow2" -1 "backingfile:/share/win_7/WIN-38SPPKIEA8J.vmdk"
libguestfs: command: run: qemu-img
libguestfs: command: run: \ create
libguestfs: command: run: \ -f qcow2
libguestfs: command: run: \ -o backing_file=/share/win_7/WIN-38SPPKIEA8J.vmdk
libguestfs: command: run: \ /tmp/libguestfsFtVJef/overlay1.qcow2
qemu-img: warning: Deprecated use of backing file without explicit backing format (detected format of vmdk)
Formatting '/tmp/libguestfsFtVJef/overlay1.qcow2', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=107375230976 backing_file=/share/win_7/WIN-38SPPKIEA8J.vmdk backing_fmt=vmdk lazy_refcounts=off refcount_bits=16
libguestfs: trace: disk_create = 0
libguestfs: trace: add_drive = 0
libguestfs: trace: launch
libguestfs: trace: max_disks
libguestfs: trace: max_disks = 255
libguestfs: trace: version
libguestfs: trace: version = <struct guestfs_version = major: 1, minor: 42, release: 0, extra: , >
libguestfs: trace: get_backend
libguestfs: trace: get_backend = "direct"
libguestfs: launch: program=virt-rescue
libguestfs: launch: version=1.42.0
libguestfs: launch: backend registered: unix
libguestfs: launch: backend registered: uml
libguestfs: launch: backend registered: libvirt
libguestfs: launch: backend registered: direct
libguestfs: launch: backend=direct
libguestfs: launch: tmpdir=/tmp/libguestfsFtVJef
libguestfs: launch: umask=0022
libguestfs: launch: euid=1000
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: begin building supermin appliance
libguestfs: run supermin
libguestfs: command: run: /usr/bin/supermin
libguestfs: command: run: \ --build
libguestfs: command: run: \ --verbose
libguestfs: command: run: \ --if-newer
libguestfs: command: run: \ --lock /var/tmp/.guestfs-1000/lock
libguestfs: command: run: \ --copy-kernel
libguestfs: command: run: \ -f ext2
libguestfs: command: run: \ --host-cpu x86_64
libguestfs: command: run: \ /usr/lib/guestfs/supermin.d
libguestfs: command: run: \ -o /var/tmp/.guestfs-1000/appliance.d
supermin: version: 5.2.0
supermin: package handler: arch/pacman
supermin: acquiring lock on /var/tmp/.guestfs-1000/lock
supermin: if-newer: output does not need rebuilding
libguestfs: finished building supermin appliance
libguestfs: begin testing qemu features
libguestfs: trace: get_cachedir
libguestfs: trace: get_cachedir = "/var/tmp"
libguestfs: checking for previously cached test results of /usr/bin/qemu-system-x86_64, in /var/tmp/.guestfs-1000
libguestfs: loading previously cached test results
libguestfs: qemu version: 5.2
libguestfs: qemu mandatory locking: yes
libguestfs: qemu KVM: enabled
libguestfs: trace: get_backend_setting "force_tcg"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: trace: get_sockdir
libguestfs: trace: get_sockdir = "/run/user/1000"
libguestfs: finished testing qemu features
libguestfs: trace: get_backend_setting "gdb"
libguestfs: trace: get_backend_setting = NULL (error)
libguestfs: command: run: file
libguestfs: command: run: \ -- /var/tmp/.guestfs-1000/appliance.d/root
/usr/bin/qemu-system-x86_64 \
-global virtio-blk-pci.scsi=off \
-no-user-config \
-enable-fips \
-nodefaults \
-display none \
-machine accel=kvm:tcg \
-cpu host \
-m 768 \
-no-reboot \
-rtc driftfix=slew \
-no-hpet \
-global kvm-pit.lost_tick_policy=discard \
-kernel /var/tmp/.guestfs-1000/appliance.d/kernel \
-initrd /var/tmp/.guestfs-1000/appliance.d/initrd \
-object rng-random,filename=/dev/urandom,id=rng0 \
-device virtio-rng-pci,rng=rng0 \
-device virtio-scsi-pci,id=scsi \
-drive file.file.filename=/tmp/libguestfsFtVJef/overlay1.qcow2,file.driver=qcow2,file.backing.file.locking=off,cache=unsafe,id=hd0,if=none \
-device scsi-hd,drive=hd0 \
-drive file=/var/tmp/.guestfs-1000/appliance.d/root,snapshot=on,id=appliance,cache=unsafe,if=none,format=raw \
-device scsi-hd,drive=appliance \
-device virtio-serial-pci \
-serial stdio \
-device sga \
-chardev socket,path=/run/user/1000/libguestfs2hNqd4/guestfsd.sock,id=channel0 \
-device virtserialport,chardev=channel0,name=org.libguestfs.channel.0 \
-append "panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=b5f5b6af-7605-4d10-ffff81fc-ce5a9c1afffff190 selinux=0 guestfs_verbose=1 TERM=alacritty guestfs_rescue=1"
WARNING: Image format was not specified for '/tmp/libguestfsFtVJef/overlay1.qcow2' and probing guessed raw.
Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
Specify the 'raw' format explicitly to remove the restrictions.
libguestfs: responding to serial console Device Status Report
^[[44;159R
Google, Inc.
Serial Graphics Adapter 04/27/17
SGABIOS $Id$ (pbonzini@donizetti) gio 27 apr 2017, 08.36.57, UTC
Term: 80x24
4 0
SeaBIOS (version ArchLinux 1.14.0-1)
Booting from ROM...
[ 0.082997] usbserial: usb_serial_init - registering generic driver failed
[ 0.083462] usbserial: usb_serial_init - returning with error -19
supermin: mounting /proc
supermin: ext2 mini initrd starting up: 5.2.0 glibc
supermin: cmdline: panic=1 console=ttyS0 edd=off udevtimeout=6000 udev.event-timeout=6000 no_timer_check printk.time=1 cgroup_disable=memory usbcore.nousb cryptomgr.notests tsc=reliable 8250.nr_uarts=1 root=UUID=b5f5b6af-7605-4d10-ffff81fc-ce5a9c1afffff190 selinux=0 guestfs_verbose=1 TERM=alacritty guestfs_rescue=1
supermin: uptime: 0.10 0.00
supermin: mounting /sys
supermin: internal insmod crc32-pclmul.ko
supermin: internal insmod crc32c-intel.ko
supermin: internal insmod crct10dif-pclmul.ko
supermin: internal insmod crc32_generic.ko
supermin: internal insmod crc32c_generic.ko
supermin: internal insmod nfit.ko
supermin: internal insmod ata_piix.ko
supermin: internal insmod virtio_blk.ko
supermin: internal insmod rng-core.ko
supermin: internal insmod virtio-rng.ko
supermin: internal insmod virtio_console.ko
supermin: internal insmod crypto_engine.ko
supermin: internal insmod virtio_crypto.ko
supermin: internal insmod failover.ko
supermin: internal insmod net_failover.ko
supermin: internal insmod virtio_net.ko
supermin: internal insmod nd_btt.ko
supermin: internal insmod nd_pmem.ko
supermin: internal insmod nd_virtio.ko
supermin: internal insmod virtio_pmem.ko
supermin: internal insmod rpmsg_core.ko
supermin: internal insmod rpmsg_ns.ko
supermin: internal insmod virtio_rpmsg_bus.ko
supermin: internal insmod virtio_scsi.ko
supermin: internal insmod virtio_balloon.ko
supermin: internal insmod virtio_dma_buf.ko
supermin: internal insmod virtio_input.ko
supermin: internal insmod virtio_mem.ko
supermin: internal insmod virtio_mmio.ko
supermin: internal insmod virtio_pci.ko
supermin: internal insmod vdpa.ko
supermin: internal insmod virtio_vdpa.ko
supermin: internal insmod jbd2.ko
supermin: internal insmod mbcache.ko
supermin: internal insmod crc16.ko
supermin: internal insmod ext4.ko
supermin: internal insmod fuse.ko
supermin: internal insmod virtiofs.ko
supermin: internal insmod crc-itu-t.ko
supermin: internal insmod crc4.ko
supermin: internal insmod crc64.ko
supermin: internal insmod crc7.ko
supermin: internal insmod crc8.ko
supermin: internal insmod libcrc32c.ko
supermin: root UUID is longer than 16 bytes
[ 0.406859] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100
[ 0.407375] CPU: 0 PID: 1 Comm: init Not tainted 5.11.15-arch1-2 #1
[ 0.407807] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ArchLinux 1.14.0-1 04/01/2014
[ 0.408585] Call Trace:
[ 0.408818] dump_stack+0x6b/0x83
[ 0.409093] panic+0x112/0x2e8
[ 0.409315] do_exit.cold+0xa7/0xb3
[ 0.409554] ? vfs_write+0x153/0x2a0
[ 0.409811] do_group_exit+0x33/0xa0
[ 0.410049] __x64_sys_exit_group+0x14/0x20
[ 0.410303] do_syscall_64+0x33/0x40
[ 0.410565] entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 0.410870] RIP: 0033:0x441221
[ 0.411059] Code: c0 ff ff ff be e7 00 00 00 ba 3c 00 00 00 eb 16 66 0f 1f 84 00 00 00 00 00 89 d0 0f 05 48 3d 00 f0 ff ff 77 1c f4 89 f0 0f 05 <48> 3d 00 f0 ff ff 76 e7 f7 d8 64 41 89 00 eb df 0f 1f 80 00 00 00
[ 0.412258] RSP: 002b:00007fffb7a5ceb8 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
[ 0.412927] RAX: ffffffffffffffda RBX: 00000000004b3230 RCX: 0000000000441221
[ 0.413408] RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000001
[ 0.413839] RBP: 0000000000000001 R08: ffffffffffffffc0 R09: 00000000004b3600
[ 0.414366] R10: 0000000000441fb7 R11: 0000000000000246 R12: 00000000004b3230
[ 0.414853] R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000001
[ 0.415331] Kernel Offset: 0x15a00000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 0.416155] Rebooting in 1 seconds..
libguestfs: error: appliance closed the connection unexpectedly, see earlier error messages
libguestfs: child_cleanup: 0x56394a3439a0: child process died
libguestfs: sending SIGTERM to process 154486
libguestfs: qemu maxrss 183412K
libguestfs: error: guestfs_launch failed, see earlier error messages
libguestfs: trace: launch = -1 (error)
libguestfs: trace: close
libguestfs: closing guestfs handle 0x56394a3439a0 (state 0)
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /tmp/libguestfsFtVJef
libguestfs: command: run: rm
libguestfs: command: run: \ -rf /run/user/1000/libguestfs2hNqd4Suppose you have a problem and you decide to use regular expressions to solve it. Well, now you have two problems.
Offline
I had some ideas, but you have already tried those .
Re-reading your post I noticed you don't mention what methods you tried to start the converted guests .
Were all your efforts with libvirt clients like virt-manager and virsh ?
If yes, try starting the guests with qemu from commandline .
That should help to narrow down where things go south.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I should have mentioned that I tried every tool available to boot the images. (I actually started with qemu). One other thing I didn't mention was that I also tried using MS tool, disk2vhd, to convert the machines into images, with the same level of success.
Eventually, I found the problem, but hadn't been able to fix it. I tried booting from a windows installation iso that I attached as a cdrom and tinkering with MS recovery tools on raw images. Turns out all the images have broken boot partition (which, surprisingly, doesn't prevent them from booting with no problem whatsoever from within VMWare!). So, I used MS recovery tools to fix them. The problem is that for some inexplicable reason my recovery does not persist on the images: I fix the boot partition, exit, boot from HD, it doesn't boot, I boot from cdrom again and it turns out the boot partition is broken again, the same way it was before I fixed it! There's no way you can dd the fixed partition from within the MS recovery tools, alas.
Ultimately, I washed hands. Now trying to bring in old tools from the VMs to the freshly installed VM on my new laptop. The solution is not without its perks in that I have to leave behind some rarely used stuff, resulting in a leaner system. But I still feel pretty much beaten and don't feel like marking the thread 'solved'.
It's one of those things about MS products that pushed me towards using Linux almost 20 years ago. For which I am grateful to MS and to the world of commercial software in general. ![]()
Suppose you have a problem and you decide to use regular expressions to solve it. Well, now you have two problems.
Offline
I tried booting from a windows installation iso [..]
Did you do the required step to load the virtio drivers during install for a Windows install with QEMU? You should be able to do a new Windows install with QEMU.
I wonder if the missing virtio driver is the problem with the migrated images as well? The Wiki has a step on how to add those to existing VMs.
Offline
You should be able to do a new Windows install with QEMU.
That's exactly what I ended up doing. No problem with that. The reason I used the installation ISO, though, was not to install a new VM, but to get access to Windows repair tools available on the ISO and to use those tools to try and repair the raw image of my old, pre-existing VM, exported from VMWare Workstation.
The Wiki has a step on how to add those to existing VMs.
If you read the guidance under the link, it says in pertinent part:
Run the original Windows guest (with the boot disk still in IDE mode) with the fake disk (in virtio mode) and a CD-ROM with the driver.
....
Windows will detect the fake disk and look for a suitable driver.
I think it is pretty clear that by "original Windows guest" they mean the Windows guest that has already been running under KVM but was not using the virtio drivers, and not a raw or vmdk image that I was trying to bring into KVM. You see, that was my problem: it just didn't boot. So, it wasn't able to "detect the fake disk and look for a suitable driver".
And maybe for the better. I am now getting some comfort in getting rid of all the bloat of the old machine as I gradually transfer legacy apps from it to the newly-installed VM.
Suppose you have a problem and you decide to use regular expressions to solve it. Well, now you have two problems.
Offline