I can't find Whonix_external*.xml and Whonix_internal*.xml

Hello,

I tried to install Whonix for KVM, but when I extract the archive offered at Whonix Wiki for KVM I cannot find the files Whonix_external*.xml and Whonix_internal*.xml

I tried the following commands :

tar -xSvf Whonix*.libvirt.xz
tar -xvf Whonix*.libvirt.xz

The result for both is :

% tar -xvf Whonix*.libvirt.xz

WHONIX_BINARY_LICENCE_AGREEMENT
WHONIX_DISCLAIMER
Whonix-Gateway.xml
Whonix-Workstation.xml
Whonix-Gateway-LXQt-18.2.1.9.Intel_AMD64.qcow2
Whonix-Workstation-LXQt-18.2.1.9.Intel_AMD64.qcow2

And that’s it. I’m on Kicksecure.

Could someone help me please ? Thanks :3

EDIT: I could get the files with version 18.0.9.5

Hi, we’ve recently revamped the Whonix and KS setups to use the libvirt mode that doesn’t need root. It seems that the wiki needs to be updated accordingly. I will handle it soon.

2 Likes

Hi sir, the wiki is still not updated, please update the wiki as i will be helpful for proper installation.

use this for now:

gonna add up little more touches and its 100% ready.

1 Like

Using the directions here, I experienced this issue:

Error starting domain: Storage volume not found: no storage vol with matching name 'Whonix-Gateway.qcow2'

Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 67, in cb_wrapper
callback(asyncjob, *args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 101, in tmpcb
callback(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/object/domain.py", line 1446, in startup
self._backend.create()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib64/python3.14/site-packages/libvirt.py", line 1395, in create
raise libvirtError('virDomainCreate() failed')
libvirt.libvirtError: Storage volume not found: no storage vol with matching name 'Whonix-Gateway.qcow2'

I checked and the volume is there. Not sure what is causing it to not detect.

post here the steps you done like command 1 2 3..

I probably gonna make a video of only essentials commands to make it work.

The commands are (after downloading whonix in /Downloads):

cd ~/Downloads
tar -xSvf Whonix*.libvirt.xz
virsh -c qemu:///session define Whonix-Gateway*.xml
virsh -c qemu:///session define Whonix-Workstation*.xml
mkdir -p ~/.config/libvirt/
nano ~/.config/libvirt/qemu.conf
(paste and exit):

max_core = 0
max_processes = 0
max_files = 0

mkdir -p ~/.local/share/images
mv Whonix-Gateway*.qcow2 ~/.local/share/images/Whonix-Gateway.qcow2
mv Whonix-Workstation*.qcow2 ~/.local/share/images/Whonix-Workstation.qcow2
Then lastly start:

Done the same steps?

1 Like

I seem to get the same error that the user DD503 is getting. I’ve tried to install whonix for kvm multiple times and it gives me the storage volume not found error

the full error message:
Error starting domain: Storage volume not found: no storage vol with matching name 'Whonix-Gateway
.qcow2'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 71, in cb_wrapper
callback(asyncjob, *args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 107, in tmpcb
callback(*args, **kwargs)
~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57, in newfn
ret = fn(self, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/object/domain.py", line 1384, in startup
self._backend.create()
~~~~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3/dist-packages/libvirt.py", line 1390, in create
raise libvirtError('virDomainCreate() failed')
libvirt.libvirtError: Storage volume not found: no storage vol with matching name 'Whonix-Gateway.
qcow2'

I first tried to install whonix according to the wiki and then tried your commands.

Here’s the full list of commands that I have run since the first attempt:

842 sudo apt install --no-install-recommends qemu-system-x86 libvirt-daemon-system libvirt-client
s virt-manager gir1.2-spiceclientgtk-3.0 qemu-system-gui qemu-system-modules-spice dnsmasq-base qe
mu-utils ovmf swtpm swtpm-tools safe-rm xz-utils
843 sudo adduser "$(whoami)" libvirt
844 sudo adduser "$(whoami)" kvm
845 sudo systemctl restart libvirtd
846 sudo virsh -c qemu:///system net-autostart default
847 sudo virsh -c qemu:///system net-start default
850 egrep -c '(vmx|svm)' /proc/cpuinfo
852 sudo adduser "$(whoami)" libvirt
853 sudo adduser "$(whoami)" kvm
854 sudo systemctl restart libvirtd
856 sudo virsh -c qemu:///system net-autostart default
857 sudo virsh -c qemu:///system net-start default
858 cd Downloads/
861 cd .local/
862 cd opt/
864 cd tor-browser/
866 cd Browser/
868 cd browser/
872 cd Downloads/
874 apt list --installed | xz-utils
875 apt list --installed | grep xz-utils
877 gpg --verify Whonix-LXQt-18.2.1.9.Intel_AMD64.qcow2.libvirt.xz.asc
878 tar -xSvf Whonix*.libvirt.xz
880 du -h Whonix-Workstation-LXQt-18.2.1.9.Intel_AMD64.qcow2
881 du -h --apparent-size Whonix-Workstation-LXQt-18.2.1.9.Intel_AMD64.qcow2
883 sudo virsh -c qemu:///system net-define Whonix_external*.xml
888 tar tvf Whonix-LXQt-18.2.1.9.Intel_AMD64.qcow2.libvirt.xz
889 mkdir virtual
890 tar xSvf Whonix-LXQt-18.2.1.9.Intel_AMD64.qcow2.libvirt.xz
891 tar xSvf Whonix-LXQt-18.2.1.9.Intel_AMD64.qcow2.libvirt.xz -C virtual
892 cd virtual
895 mkdir virt_man
896 tar -xSvf Whonix-LXQt-18.2.1.9.Intel_AMD64.qcow2.libvirt.xz -C virtual
897 mkdir a
898 tar -xvf Whonix-LXQt-18.2.1.9.Intel_AMD64.qcow2.libvirt.xz -C a
901 sudo virsh -c qemu:///system define Whonix-Gateway*.xml
902 sudo virsh -c qemu:///system define Whonix-Workstation*.xml
903 sudo mv Whonix-Gateway*.qcow2 /var/lib/libvirt/images/Whonix-Gateway.qcow2
904 sudo mv Whonix-Workstation*.qcow2 /var/lib/libvirt/images/Whonix-Workstation.qcow2
911 sudo virsh -c qemu:///system list --all
913 sudo virsh -c qemu:///system undefine Whonix-Gateway
914 sudo virsh -c qemu:///system undefine Whonix-Workstation
919 pushd ~/Downloads/
921 popd
923 tar -xSvf Whonix*.libvirt.xz
924 ls
925 virsh -c qemu:///session define Whonix-Gateway*.xml
926 virsh -c qemu:///session define Whonix-Workstation*.xml
927 mkdir -p ~/.config/libvirt/
928 vim ~/.config/libvirt/qemu.conf
929 mkdir -p ~/.local/share/images
930 mv Whonix-Gateway*.qcow2 ~/.local/share/images/Whonix-Gateway.qcow2
931 mv Whonix-Workstation*.qcow2 ~/.local/share/images/Whonix-Workstation.qcow2
932 sudo virsh -c qemu:///system list --all
933 cd ~/Downloads
934 tar -xSvf Whonix*.libvirt.xz
935 virsh -c qemu:///session define Whonix-Gateway*.xml
936 sudo virsh -c qemu:///system list --all
937 cd Downloads/
938 virsh -c qemu:///session define Whonix-Gateway*.xml
939 virsh -c qemu:///session undefine Whonix-Gateway*.xml
940 virsh -c qemu:///session undefine Whonix-Gateway
941 virsh -c qemu:///session define Whonix-Gateway*.xml
942 virsh -c qemu:///session undefine Whonix-Workstation
943 virsh -c qemu:///session define Whonix-Workstation*.xml
944 mkdir -p ~/.config/libvirt/
945 vim ~/.config/libvirt/qemu.conf
946 mkdir -p ~/.local/share/images
947 mv Whonix-Gateway*.qcow2 ~/.local/share/images/Whonix-Gateway.qcow2
948 mv Whonix-Workstation*.qcow2 ~/.local/share/images/Whonix-Workstation.qcow2

With a few unimportant things omitted

omg you are also following /kvm, not what i have posted above, please follow:

I cant login to the previous account so I’m writing from new account. If you look at the newer commands I did go through the new instructions as well. I’ve tried over again since then. I don’t know if I should cleanup the previous attempts somehow to start fresh maybe?

Im on debian stable

You did it correct. I had the same problem. There is a typo in the instructions from @nurmagoz.

Instructions say:

mkdir -p ~/.local/share/images
mv Whonix-Gateway*.qcow2 ~/.local/share/images/Whonix-Gateway.qcow2
mv Whonix-Workstation*.qcow2 ~/.local/share/images/Whonix-Workstation.qcow2

However the default pool is at /home/$USER/.local/share/libvirt/images/ (instructions are missing the libvirt subfolder). They should read:

mkdir -p ~/.local/share/libvirt/images
mv Whonix-Gateway*.qcow2 ~/.local/share/libvirt/images/Whonix-Gateway.qcow2
mv Whonix-Workstation*.qcow2 ~/.local/share/libvirt/images/Whonix-Workstation.qcow2

So just move the files to ~/.local/share/libvirt/images/ and refresh the pool and check:

virsh -c qemu:///session pool-refresh default
virsh -c qemu:///session vol-list default
#They should be listed here.

Also, on Fedora 44, it doesn’t automatically show session vms in virt-manager so to see them you might need to:

Open virt-manager
File → Add Connection
Hypervisor: QEMU/KVM
Uncheck “Connect to remote host”
Check “User session”
Click Connect

Might be a thing for other distros and maybe worth adding to the instructions to prevent future confusion.

@nurmagoz Thank you for your hard work.

3 Likes

Yes this appears to have been the problem. Thank you @nurmagoz and @enricoelias for helping out.

1 Like

Up to you, if you are only using qemu:///session then you can start clean again, but if you use qemu:///system as well (for different project/s) then no need.

Note: If you want to morph (convert) your debian stable to Kicksecure then there is no qemu:///system.

Thats the old directory where it was qemu:///system, the qemu:///session path is as mentioned in the wiki.

Note: the default instructions in the wiki is done inside Kicksecure and debian 13, any other host distro is not tested, so the location and commands might differ.