So far, I’ve primarily been working on the approach of importing Whonix VM disks into Qubes.
I’ve worked with the Whonix 8.2 (.ova/.vmdk & .qcow2) and Whonix 8.6.2.8 (.ova/.vmdk & .libvirt/.qcow2) downloads.
After some trial and error, I’ve been able to successfully extract, convert to raw .img, transfer into Qubes dom0, and create new Qubes Standalone HVMs with these raw .img files.
But these Whonix VM images ultimately do not seem to work with Qubes HVMs, at least unmodified in raw format.
The HVM begins to boot up fine and the normal blue GNU GRUB screen shows up with the various kernel boot options.
After the “3.2.0-4-686-pae” option proceeds on the GNU GRUB screen, then a lot of startup boot text starts scrolling.
This startup process gets to a point of the following error text:
Gave up waiting for root device. Common problems:
- Boot args (cat /proc/cmdline)
- Check rootdelay= (did the system wait for the right device?)
- Check root= (did the system wait for the right device?)
- Missing modules (cat /proc/modules; Is /dev)
ALERT! /dev/sda1 does not exist. Dropping to shell!
Then it goes into a BusyBox shell prompt without booting the Debian/Whonix OS
BusyBox v1.20.2 (Debian 1:1.20.0-7) built-in shell (ash)
(initramfs)
It seems as that the issue is due to this lack of “/dev/sda1” device when booting in Qubes HVM.
ALERT! /dev/sda1 does not exist. Dropping to shell!
When doing a “ls /dev” in VirtualBox Whonix, the “/dev/sda” and “/dev/sda1” are present. In Qubes they are not present. Maybe Whonix is programmed to explicitly look for this “/dev/sda1” device to boot from, but somehow unavailable in Qubes?
In Qubes the “/dev/xvda”, “/dev/xvda1”, “/dev/xvdb” devices are present instead.
Overview of VM block devices:
https://wiki.qubes-os.org/wiki/TemplateImplementation
In another test of mine, I was able to convert a standard (non-Whonix) Debian Wheezy VM .vmdk disk to raw .img and able to successfully boot it up as fully operational in a Qubes Standalone HVM. This had “/dev/sdaX” devices present in the OS though.
Ultimately not sure exactly why the Whonix VM download images are not fully booting up in Qubes. Though it seems to be an issue with these disk devices inside of Whonix/Debian while using Qubes.
Maybe someone more familiar with Linux / Whonix / Qubes would know what the issue is and it can be easily resolved, like maybe by making Whonix code work with Qubes disk expectations?
Or maybe it’s not worth it and proceeding to the approach of Qubes HVM + Debian Wheezy Install + Whonix Physical Isolation Build is more workable?