The following steps summarize basic troubleshooting instructions, which are described in greater detail below. In basic terms:
- Exclude basic hardware issues.
- Ensure the virtual machine images have been imported into a supported virtualizer listed on the Download page.
- In case of connectivity issues: Check if Tor Browser [archive] works on the host. Reason: Network Obstacle
- In case of connectivity issues: Check if other virtual machines have Internet connectivity, such as newly created ones or those from a different vendor.
Whonix ™ Network Connectivity Problems
If networking is unavailable inside Whonix ™, then try:
- Installing an operating system in a non-Whonix ™ virtual machine or downloading a regular image without Tor enforcement.
- Testing network functionality in a freshly downloaded non-Whonix ™ virtual machine.
If networking is still not functional, then Whonix ™ will not work either. The user must first resolve this issue, which might require re-installation of the virtualizer, followed by a reboot and further connectivity test(s).
If networking is functional, then users should note that networking is working in non-Whonix ™ VMs as part of the support request or bug report.
Run whonixcheck to verify that the Whonix ™ system is up-to-date and that everything is in proper working order.
The first step should be completed on the host to ensure the host clock is set to the correct time.
Clearnet Connectivity Test
It is possible to check if a non-torified, non-anonyomus, direct connection to check.torproject.org is functional. 
On Whonix-Gateway ™, run.
sudo -u clearnet UWT_DEV_PASSTHROUGH=1 curl --tlsv1.2 --proto =https -H 'Host: check.torproject.org' -k https://18.104.22.168
Complete the following steps:
- Shut down
- Change the
sys-whonixNetVM setting from
- Restart sys-whonix.
This procedure might help, but should not be considered a final solution. 
Low RAM Issues
When available RAM is insufficient to meet the Whonix ™ VM requirements, problems can emerge which make the VM(s) unusable. Factors that commonly contribute to low RAM issues in Whonix ™ include:
- Unnecessary processes running and/or multi-tasking on the host OS.
- Multiple browser tabs being open.
- Unnecessary processes running in the Whonix ™ VM(s).
- Allocating more RAM to the Whonix ™ VM than is available; this prevents the VM from booting.
- Insufficient RAM allocated to the Whonix ™ VM(s).
- Other non-Whonix ™ VMs running in parallel.
While insufficient RAM can cause a host of issues, behaviors most commonly seen with low memory resources include:
- Applications are slow or unresponsive.
- The virtual machine, mouse and/or keyboard freeze.
- Scrolling causes window staggers or jumps.
- Issues become worse when additional browser tabs or processes are spawned.
- Overall performance is poor.
See also Advice for Systems with Low RAM.
Free up Additional Memory Resources
If additional memory is needed for the virtual machine, then free up resources and/or add more RAM to the virtual machine:
- Terminate any non-essential processes on the host.
- Shutdown any non-essential VMs.
- Shutdown and/or close non-essential processes and browser tabs in Whonix ™ VMs.
- Non-Qubes-Whonix ™ only: If low memory issues are experienced in Whonix-Workstation ™, additional resources can be freed by reducing RAM in Whonix-Gateway ™ with rads.
To add additional RAM to the Whonix ™ VM(s), follow the platform-specific advice below.
Utilize Qube Manager:
- To add RAM in VirtualBox the VM must first be powered down.
See also VirtualBox/Troubleshooting.
Why can't I Ping the Whonix-Gateway ™?
The Whonix-Gateway ™ does not respond to ping or similar commands because it is firewalled for security reasons; see /usr/bin/whonix_firewall or refer to the Whonix ™ source code. In most cases it is unnecessary to ping the Whonix-Gateway ™ anyhow.
If you insist on pinging the Whonix-Gateway ™ or have a unique setup that requires it, then this can be tested by clearing all firewall rules with the dev_clearnet [archive] script. Alternatively, a script can be run to try and unload / remove every iptables rule, or the Whonix ™ firewall can be hacked to not load at all. The latter method is only for experts and it is necessary to comment out exit 0 at the beginning.
Check Systemd Journal Log of Current Boot
To inspect the systemd journal log of the current boot, run.
sudo journalctl -b
This command requires pressing arrow keys like ↑, ↓, ←, →, as well as
PgDn for scrolling.
For convenient reading of the log (until the command is issued), the log can be dumped to file. For example, the following command would write the log to file
sudo journalctl -b > ~/systemd-log
Use any available editor to read the log file, such as
Watch Systemd Journal Log of Current Boot
It is possible to to watch the systemd journal log as it is written.
sudo journalctl -b -f
Enable Persistent Systemd Journal Log
By default, a persistent systemd journal log is not enabled in Debian.  To enable persistent systemd journal log, apply the following steps.
Platform specific notes:
- Non-Qubes-Whonix: No special steps are required. Follow steps below as is.
- Qubes users: The following changes must be applied in a VM with a persistent root image such as TemplateVM or StandaloneVM. It could be confusing if applied in TemplateBasedVMs since the systemd journal log might be mixed up with boots by the TemplateVM, while the AppVM systemd journal logs would not be persistent. bind-dirs [archive] might be helpful, but that requires further research.
Check Systemd Journal Log of Previous Boot
After following the Enable Persistent Systemd Journal Log steps, it is possible to inspect the systemd journal log of the previous boot.
sudo journalctl -b -1
This command requires pressing arrow keys like ↑, ↓, ←, →, as well as
PgDn for scrolling.
For convenient reading of the log until the time of issuing the command, the log can be dumped to file. For example, the following command would write the log to file
sudo journalctl -b -1 > ~/systemd-log-previous
Use any available editor to read the log file, such as
View List of Systemd Journal Logs
sudo journalctl --list-boots
Configure systemd to start lightdm in debug mode
lightdm restart method
Alternatively could also reboot but then you would need to Enable Persistent Systemd Journal Log.
sudo journalctl -b -1 -u lightdm
To view the log of a specific systemd unit. Syntax:
sudo journalctl -b --no-pager -u unit-name
sudo journalctl -b --no-pager -u sdwdate
To view the status of a specific systemd unit. Syntax:
sudo systemctl status --no-pager unit-name
sudo systemctl status --no-pager sdwdate
Check Systemd Journal Log of Failed Boot
An easier and more lightweight solution as alternative to recovery mode might be virtual consoles. If the graphical user interface is no longer starting, login to a virtual console might still be possible.
Prerequisite knowledge: Virtual Consoles. Try to login in a virtual console in a functional VM (virtual machine) as an exercise. If that works, try login to virtual console in the broken VM.
In case no virtual console is available:
1. Boot into Recovery Mode.
2. Enable Persistent Systemd Journal Log (If not already previously enabled persistent systemd journal log.)
3. Reboot into normal mode so a log for the failed boot will be written. (If not already previously enabled persistent systemd journal log.)
4. Boot again into recovery mode.
Tip: If something does not work, do not arbitrarily try to use sudo / root without indication that this would be appropriate. That only risks messing up user home folder permissions. See also Safely Use Root Commands.
Open a terminal.
sudo chown --recursive user:user /home/user
- When was the last time a qualified person disassembled your computer or notebook and removed dust from the fan and checked the cooling system of your CPU?
- How often such maintenance should be done?
- What is your CPU temperature under heavy system load?
- What is the temperature is it in the room?
- Make sure your computer or notebook had the proper maintenance.
- Monitor CPU temperature. There are tools for your host operating system showing the temperature of your CPU.
- Cooling the room might help.
- Better placement (more air space) of your computer or notebook.
- Consider a passive or active (notebook) cooling pad. Do you own research.
None of these issues are Whonix ™ issues. Therefore please do not ask thees questions at Whonix ™ support (until there is a Whonix-Host operating system) as per Free Support Principle.
- Advice for Systems with Low RAM
- Recovery Mode
- System Recovery using SysRq Key
- Core Dumps
By using ping.
For example, ping
22.214.171.124.. On the host, run.
google.comand other websites.
and so on.
- This process can be lengthy.
- Since Whonix 14.
- A non-zero exit codes signifies an error, while
0means it succeeded.
- Also see:
- This test only uses TCP and not DNS.
- This procedure was useful for Qubes-Whonix ™ R3.2 users, although the Qubes bug report is now resolved: https://github.com/QubesOS/qubes-issues/issues/2141 [archive]
- "user support template": https://forums.whonix.org/t/workstation-keeps-freezing/7693/6 [archive]
- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=801906 [archive]
Example debug log
sudo journalctl -b -u lightdm -o cat Condition check resulted in Light Display Manager being skipped. Starting Light Display Manager... [+0.00s] DEBUG: Logging to /var/log/lightdm/lightdm.log [+0.00s] DEBUG: Starting Light Display Manager 1.26.0, UID=0 PID=933 [+0.00s] DEBUG: Loading configuration dirs from /usr/share/lightdm/lightdm.conf.d [+0.00s] DEBUG: Loading configuration from /usr/share/lightdm/lightdm.conf.d/01_debian.conf [+0.00s] DEBUG: Loading configuration dirs from /usr/local/share/lightdm/lightdm.conf.d [+0.00s] DEBUG: Loading configuration dirs from /etc/xdg/lightdm/lightdm.conf.d [+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf.d/autologin.conf [+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf.d/whonix-autologin.conf [+0.00s] DEBUG: [SeatDefaults] is now called [Seat:*], please update this configuration [+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf [+0.00s] DEBUG: Registered seat module local [+0.00s] DEBUG: Registered seat module xremote [+0.00s] DEBUG: Registered seat module unity [+0.00s] DEBUG: Using D-Bus name org.freedesktop.DisplayManager [+0.01s] DEBUG: Monitoring logind for seats [+0.01s] DEBUG: New seat added from logind: seat0 [+0.01s] DEBUG: Seat seat0: Loading properties from config section Seat:* [+0.01s] DEBUG: Seat seat0: Starting [+0.01s] DEBUG: Seat seat0: Creating user session [+0.01s] WARNING: Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .ser [+0.01s] DEBUG: Loading user config from /etc/lightdm/users.conf [+0.01s] DEBUG: User user added [+0.01s] DEBUG: Seat seat0: Creating display server of type x [+0.01s] DEBUG: posix_spawn avoided (fd close requested) [+0.02s] DEBUG: Could not run plymouth --ping: Failed to execute child process ?plymouth? (No such file or directory) [+0.02s] DEBUG: Using VT 7 [+0.02s] DEBUG: Seat seat0: Starting local X display on VT 7 [+0.02s] DEBUG: XServer 0: Logging to /var/log/lightdm/x-0.log [+0.02s] DEBUG: XServer 0: Writing X server authority to /var/run/lightdm/root/:0 [+0.02s] DEBUG: XServer 0: Launching X Server [+0.02s] DEBUG: Launching process 941: /usr/bin/X :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch [+0.02s] DEBUG: XServer 0: Waiting for ready signal from X server :0 [+0.02s] DEBUG: Acquired bus name org.freedesktop.DisplayManager [+0.02s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat0 Started Light Display Manager. [+0.98s] DEBUG: Got signal 10 from process 941 [+0.98s] DEBUG: XServer 0: Got signal from X server :0 [+0.98s] DEBUG: XServer 0: Connecting to XServer :0 [+0.99s] DEBUG: posix_spawn avoided (fd close requested) (child_setup specified) [+0.99s] DEBUG: Seat seat0: Display server ready, starting session authentication [+0.99s] DEBUG: Session pid=970: Started with service 'lightdm-autologin', username 'user' Error getting user list from org.freedesktop.Accounts: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.Accounts was not provided by any .service files [+1.01s] DEBUG: Session pid=970: Authentication complete with return value 0: Success [+1.01s] DEBUG: Seat seat0: Session authenticated, running command [+1.01s] DEBUG: Registering session with bus path /org/freedesktop/DisplayManager/Session0 [+1.01s] DEBUG: posix_spawn avoided (fd close requested) (child_setup specified) [+1.02s] DEBUG: Session pid=970: Running command /etc/X11/Xsession startxfce4 [+1.02s] DEBUG: Creating shared data directory /var/lib/lightdm/data/user [+1.02s] DEBUG: Session pid=970: Logging to .xsession-errors pam_unix(lightdm-autologin:session): session opened for user user by (uid=0) pam_exec(lightdm-autologin:session): Calling /usr/lib/security-misc/permission-lockdown ... [+1.23s] DEBUG: Activating VT 7 [+1.23s] DEBUG: Activating login1 session 1 [+1.23s] DEBUG: Seat seat0 changes active session to 1 [+1.23s] DEBUG: Session 1 is already active [+839.74s] DEBUG: Seat seat0 changes active session to [+842.35s] DEBUG: Seat seat0 changes active session to 3 [+852.02s] DEBUG: Got signal 15 from process 1 [+852.02s] DEBUG: Caught Terminated signal, shutting down [+852.02s] DEBUG: Stopping display manager [+852.02s] DEBUG: Seat seat0: Stopping [+852.02s] DEBUG: Seat seat0: Stopping display server [+852.02s] DEBUG: Sending signal 15 to process 941 [+852.02s] DEBUG: Seat seat0: Stopping session [+852.02s] DEBUG: Terminating login1 session 1 Stopping Light Display Manager... [+852.05s] DEBUG: Session pid=970: Sending SIGTERM [+852.05s] DEBUG: Session pid=970: Exited with return value 0 [+852.05s] DEBUG: Seat seat0: Session stopped [+852.05s] DEBUG: Process 941 exited with return value 0 [+852.05s] DEBUG: XServer 0: X server stopped [+852.05s] DEBUG: Releasing VT 7 [+852.05s] DEBUG: XServer 0: Removing X server authority /var/run/lightdm/root/:0 [+852.05s] DEBUG: Seat seat0: Display server stopped [+852.05s] DEBUG: Seat seat0: Stopped [+852.05s] DEBUG: Display manager stopped [+852.05s] DEBUG: Stopping daemon [+852.05s] DEBUG: Exiting with return value 0 lightdm.service: Succeeded. Stopped Light Display Manager.
echo " [Service] ExecStart= ExecStart=/usr/sbin/lightdm --debug " | sudo tee /lib/systemd/system/lightdm.service.d/40_debug-misc.conf
ExecStart=is required to clear the original
ExecStart=so it can be overwritten by
This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! Read, understand and agree to Conditions for Contributions to Whonix ™, then Edit! Edits are held for moderation. Policy of Whonix Website and Whonix Chat and Policy On Nonfreedom Software applies.
Copyright (C) 2012 - 2020 ENCRYPTED SUPPORT LP. Whonix ™ is a trademark. Whonix ™ is a licensee [archive] of the Open Invention Network [archive]. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Freedom Software license as Whonix ™ itself. (Why?)