User guide · Chapter 1 of 9 · Deutschnullos.de

Try NULLos in QEMU

You do not need a computer of your own for NULLos. QEMU is a free program that emulates a whole PC. NULLos starts inside it in a window, and nothing changes on your computer.

What is checked (as of 30 Oct 2026, NULLos 0.3.2): On a Mac with Apple chip and QEMU 11.1.2, NULLos starts into the desktop with the command below. The steps for Windows and Linux are only put together from the QEMU instructions and the package lists of the Linux systems, not tested.

1. Install QEMU

SystemHow
macOSWith Homebrew: brew install qemu (tested)
WindowsDownload the installer from qemu.weilnetz.de/w64, linked from qemu.org (not tested). Windows may warn about the installer's signature: according to that page, the newer installers are signed with an expired certificate
Debian, Ubuntusudo apt install qemu-system-x86 ovmf (not tested)
Fedorasudo dnf install qemu-system-x86 edk2-ovmf (not tested)
Archsudo pacman -S qemu-desktop edk2-ovmf (not tested)

ovmf or edk2-ovmf is the UEFI firmware. NULLos only starts with UEFI.

2. Download and check NULLos

Download the image nullos-0.3.2-x86_64.img and the file SHA256SUMS from nullos.de into the same folder. Then check that the file is complete and unchanged:

SystemCommand in the download foldergood if
macOSshasum -a 256 --ignore-missing -c SHA256SUMSnullos-0.3.2-x86_64.img: OK
Linuxsha256sum --ignore-missing -c SHA256SUMSnullos-0.3.2-x86_64.img: OK
Windows (PowerShell)Get-FileHash .\nullos-0.3.2-x86_64.imgthe same number as in SHA256SUMS

For Windows: Get-FileHash at Microsoft.

3. Start

Open a terminal (Windows: PowerShell) in the folder with the image and enter the command for your system.

macOS (tested):

qemu-system-x86_64 -machine q35,i8042=off -m 1G \
  -drive if=pflash,format=raw,readonly=on,file=$(brew --prefix)/share/qemu/edk2-x86_64-code.fd \
  -vga none -device VGA,xres=1280,yres=800,edid=on -display cocoa,zoom-to-fit=on \
  -device qemu-xhci -device usb-kbd -device usb-tablet -device virtio-rng-pci \
  -drive format=raw,file=nullos-0.3.2-x86_64.img

Then make the window bigger. Thanks to zoom-to-fit the picture grows with it.

Linux (not tested): as on the Mac, but with your system's firmware file and -display gtk:

qemu-system-x86_64 -machine q35,i8042=off -m 1G \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd \
  -vga none -device VGA,xres=1280,yres=800,edid=on -display gtk \
  -device qemu-xhci -device usb-kbd -device usb-tablet -device virtio-rng-pci \
  -drive format=raw,file=nullos-0.3.2-x86_64.img
SystemFirmware file (per package list)
Debian, Ubuntu/usr/share/OVMF/OVMF_CODE_4M.fd
Fedora/usr/share/edk2/ovmf/OVMF_CODE.fd
Arch/usr/share/edk2/x64/OVMF_CODE.4m.fd

Windows (not tested), in PowerShell as one line:

& "C:\Program Files\qemu\qemu-system-x86_64.exe" -machine q35,i8042=off -m 1G -drive "if=pflash,format=raw,readonly=on,file=C:\Program Files\qemu\share\edk2-x86_64-code.fd" -vga none -device VGA,xres=1280,yres=800,edid=on -device qemu-xhci -device usb-kbd -device usb-tablet -device virtio-rng-pci -drive format=raw,file=nullos-0.3.2-x86_64.img

The install folder C:\Program Files\qemu and the location of the firmware inside it are not verified. If you find edk2-x86_64-code.fd somewhere else, use that path.

i8042=off turns off the old PS/2 keyboard and mouse. That way the mouse does not stay trapped in the window.

4. First start

After a few seconds the desktop appears, with two windows on top:

  1. „Neues Eingabegerät“ ("new input device"): NULLos asks whether it may use the mouse. Allow it, otherwise the mouse does not move.
  2. „Passwort festlegen“ ("set password"): here you set your password and enter it twice. **There is no default password.**

The password must have at least 12 characters, with upper- and lower-case letters, at least one digit and one special character. Ideally build it from a long, easy-to-remember word or a short sentence, such as Sunflower7!Garden, Coffee+2Croissants or Bicycle#Berlin1987. Do not use these examples: since they are published here, many people know them – which makes them insecure. In 0.3.2, NULLos only checks the length.

From then on you use this password to unlock the screen and to log in.

Important: NULLos keeps the password only while it is running. After switching off it is gone, and on the next start you set a new one.

5. The text console

Ctrl+Alt+F1 switches from the desktop to the text console (checked on 30 Oct 2026). There NULLos asks:

Benutzer:

Type root. If you have not set a password yet, NULLos asks for a new one now, otherwise for your password:

Benutzer: root
Erststart: root hat noch kein Passwort.
Neues Passwort für root (mindestens 12 Zeichen):
Nochmal:
Passwort für root gesetzt.
root@nullos:~ $

For 0.4 the plan is that the question for the user goes away. Then the password is enough.

How to go on from there: First steps.

Keys in QEMU

WhatMacWindows, Linux
Release mouse and keyboard from the windowCtrl+Option+GCtrl+Alt+G
Fullscreen on and offmenu „View“ → „Enter Fullscreen“Ctrl+Alt+F
Quit NULLosclose the QEMU windowthe same

The keys are listed in the QEMU documentation, the Mac version in the source code of QEMU's Mac interface. On the Mac, QEMU uses the Option key instead of Alt. The keys in this table were not tried out ourselves.

If it does not work

What you seeWhat to do
Shell> (UEFI shell) instead of NULLoscheck the path to the image file in the command
The mouse does not moveallow it in the window „Neues Eingabegerät“
The mouse stays trapped in the windowuse the release keys above; keep i8042=off in the command
No desktop, only „Benutzer:“you started the ISO: from CD and USB stick, 0.3.2 starts only the text console. Use the .img

More options, for example SSH from your own computer: QEMU and SSH. Programs other than QEMU: Virtualization.