Whonix-Host Operating System (OS) ISO

Using update-initramfs fails in Calamares installer due to the fact that the installed target still has live-boot related packages (by choice and by design, to allow live-mode in the installed target).

I’ll try and look at that again.

1 Like

Great, thanks for your review!

Host, gw and ws should be visually distinguishable as of now: greyish background for the host, dark blue for the gw, and greenish for the ws.

Indeed, this is way below the minimal requirement to run Whonix-Host. I would not expect a smooth experience with less than 4gigs of RAM, see:
https://phabricator.whonix.org/T976

2 Likes

thanks for your work.

i’ll check again. may be worth considering the color choices because it didn’t stand out. perhaps “black” for the gateway?

it is. however, i’d gotten to work on the same machine in the past without this issue. however, that may have been with stretch as the host, gnome as the de and vbox as virtual machine base. like i said, i don’t think it’s a project issue. simply sharing. if you want, i have a “nonfree” based buster installed on a usb2 drive. could install the kvm packages for whonix on there and see if the same issue occurs. but, i doubt it’s worth it.

1 Like

update-initramfs isn’t “totally destroyed”.

ls -la /usr/sbin/update-initramfs*

lrwxrwxrwx 1 root root 26 Dec 7 2017 /usr/sbin/update-initramfs → /bin/live-update-initramfs
-rwxr-xr-x 1 root root 7332 Jul 27 2019 /usr/sbin/update-initramfs.orig.initramfs-tools

/usr/sbin/update-initramfs was modified by pacakge live-tools to be a symlink to /bin/live-update-initramfs

The orignal update-initramfs is still available as /usr/sbin/update-initramfs.orig.initramfs-tools

Could you please have a look at both scripts? Maybe we’ll find the best way to deal with this. Maybe some way to “trick” /bin/live-update-initramfs into calling /usr/sbin/update-initramfs.orig.initramfs-tools (it does that under some conditions).

We can to undo and restore the original update-initramfs or use the original update-initramfs. Full details here: Whonix-Host Operating System (OS) ISO - #231 by Patrick

Either before running the calamares installer:

sudo unlink /usr/sbin/update-initramfs
sudo cp /usr/sbin/update-initramfs.orig.initramfs-tools /usr/sbin/update-initramfs

That might work well enough as a workaround. Something similar could be applied during the build process.

Or modify main.py.dist to run /usr/sbin/update-initramfs.orig.initramfs-tools (with paramater -u? similar to default).

Maybe VirtualBox can be a good tool to conveniently test EFI booting during development? Never tried that yet. Not even with Debian.

Also as weird as that might seem, I guess I am going to add some opt-in debug option to install VirtualBox guest additions on on Whonix-Host KVM iso because that would help during development.

Default is update-initramfs -k all -c -t
→ for all installed kernels
→ create new initramfs
→ last flag I have actually no idea!! (-t)

But @Patrick you were right!

Simply update-initramfs by update-initramfs.orig.initramfs-tools in the original main.py script did the trick! :slight_smile:

Should I modify the git file accordingly?

1 Like

onion_knight via Whonix Forum:

But @Patrick you were right!

Did this help with EFI issues?

Simply update-initramfs by update-initramfs.orig.initramfs-tools in the original main.py script did the trick! :slight_smile:

Should I modify the git file accordingly?

Yes, please. That change seems sane either way. Closer to defaults. More
reliable, future proof.

Didn’t test it yet, but I doubt it.

Done.

1 Like

Thanks! Merged. :slight_smile:

I guess so.

tempest via Whonix Forum:

so far, this is working great. here’s some of the issues i ran into, most being minor:

  1. on a couple laptops that need a synaptics driver, tap-to-click on a touchpad isn’t an easy configuration option. no, this is not a whonix problem. it’s a documented debian buster issue that is fixable with dropping a config file into /etc/apt/xorg.conf.d/. as release gets closer to final, it may be an issue worth addressing for user friendliness.

debian - Activate tap to click on touchpad? - Unix & Linux Stack Exchange

Could you send a pull request against
GitHub - Kicksecure/usability-misc: Misc usability improvements please?

for the most part, so far, so good. honestly, i’m really excited for “whonix host.” it simplifies so much that, in the past, has taken a lot of pages to document for people.

Yay! :slight_smile:

Note that the libvirt xml file is just

<cpu mode='host-passthrough'/>

before it gets imported. So this should be changed if this operation is applied to an already imported VM vs the files shipped and unzipped.

1 Like

Doing something about already imported VMs is not implemented.

/usr/lib/whonix-libvirt/install is simplistic.

/usr/lib/whonix-libvirt/install started during boot (whonix-libvirt-install.service) after libvirt.

  • during Whonix ISO live boot
  • during first boot of Whonix-Host installed (live [1] or persistent)

And /usr/lib/whonix-libvirt/install is started only once. Because it creates a done file /var/lib/whonix-libvirt/install.done and if that done file exists it won’t run again. That is to get the initial setup done but from then not interfere with the user.

The iso itself is compressed but the contents of the iso aren’t compressed.

/usr/lib/whonix-libvirt/install expects libvirt xml files in folder /usr/share/whonix-libvirt/xml. If QEMU is detected [2], it applies these changes to temporary files before importing the xml files for the first time.

If someone upgrades from non-KVM capability to KVM capability, already imported (manually or at first boot) VMs aren’t automatically upgraded to be using KVM. Maybe if KVM failed to be detected there should be a one time popup pointing that out? Warn against performance issues and future non-auto-upgrade to KVM? Warn against security too? Is QEMU considered less secure than KVM in the age of spectre / meltdown?


[1] only if no previous persistent boot.
[2] or better said if KVM is not detected.

I would like to tackle some networking issues/questions I didn’t really pay attention to until now (thus I don’t know if the below described behavior is recent or has always been this way on Whonix-Host).

On installed Whonix-Host in KVM there is a (expected) conflict between the host (i.e. the physical machine) and the guest (i.e. the KVM Whonix-Host VM) virtual virbr0 NAT interfaces as both by default use 192.168.122.0/24.

Problem: I cannot bring up eth0 on installed KVM Whonix-Host even after disabling virbr0:

user@host:~$ sudo ifup eth0
No DHCP client software found!
ifup: failed to bring eth0

Is it related to dhcpcanon which has its own syntax? (btw I still don’t understand why we insist on using dhcpcanon instead of network-manager for DHCP).

Then I noticed that eth0 is defined in /etc/network/interfaces.d/30-kicksecure

auto eth0
iface eth0 inet dhcp

This raises a (maybe very naive and stupid) question:
Why do we need to define the default Ethernet interface on Whonix-Host (and using the old naming system instead of new predictable ones)? Isn’t is supposed to be automatically taken care of by NetworkManager?

I also had a similar issue. “Host” networing was functional (in
VirtualBox) but couldn’t start gateway due to eth0 already being in use.

onion_knight via Whonix Forum:

Is it related to dhcpcanon which has its own syntax? (btw I still don’t understand why we insist on using dhcpcanon instead of network-manager for DHCP).

dhcpcanon might not even be starting due to upstream bugs. Linked in the
dhcpcanon discussion forum. network-manager currently does DHCP.

Why do we need to define the default Ethernet interface on Whonix-Host (and using the old naming system instead of new predictable ones)? Isn’t is supposed to be automatically taken care of by NetworkManager?

Good question. I don’t remember. Notes

Disable Predictable Network Interface Names as these are problematic.
Whonix 14.0.0.0.7 developers-only - #4 by Patrick
Disabling them as per
zless /usr/share/doc/udev/README.Debian.gz

Need to rewrap my head around it. Maybe these weren’t stable among
different virtualizers, vbox, kvm, qubes. Can be re-considered.

Then I don’t know why it failed. Will investigate some more.

Definitely not worth changing it for gw/ws (hardcoded and currently stable across different virtualizers). Maybe worth reconsidering for Whonix-Host though (enable predictable network interface names + remove eth0 definition in /etc/network/interfaces.d/30-kicksecure).

This needs more testing on real hardware I suppose.

1 Like

(still in KVM)
virbr0 is inactive on Whonix-Host ISO, but active on Installed Whonix-Host.

Any idea why?

1 Like

Try…

virsh -c qemu:///system net-start "default"

Post output here. Then maybe someone has an idea how to fix?

Happening for me similar. But for me not default is inactive. For me Whonix-External is inactive.

Whonix-Host, testing in VirtualBox:

virsh -c qemu:///system net-start "Whonix-External"

getting

error: failed to start network Whonix-External
error: internal error: Network is already in use by interface eth0

https://github.com/Whonix/whonix-libvirt/blob/master/usr/share/whonix-libvirt/xml/Whonix-External.xml

Why’s that happening?

user@host:~$ virsh -c qemu:///system net-start "default"
error: Failed to start network default
error: internal error: Network is already in use by interface eth0

The VBOX NAT default interface connecting the Whonix-Host VM to your host uses the same IP range maybe?

Anyway not a blocker I think since Whonix-Host is not really designed to run in a VM.

1 Like

Would be good to fix anyhow for ease of development. @HulaHoop any idea how to fix this?

Fun fact, and maybe useful during development: one can upgrade Whonix-Host from developers repository before installing using calamares. Untested.