Kapitel 3 von 15nullos.de

Installieren

Abbild aufs Medium, Rechner davon starten. Fertig ist das bisher nur in QEMU – auf echter Hardware noch ungetestet.

⚠ Achtung, richtiges Laufwerk! Beim Schreiben eines Abbilds wird das Ziel komplett überschrieben. Ein Tippfehler – und die falsche Platte ist leer. Vorher genau nachsehen, welches Gerät der Stick ist (auf dem Mac: diskutil list), Stick abziehen und wieder anstecken und schauen, was verschwindet und wiederkommt. Im Zweifel: lieber nicht.

Die nullos-Werkzeuge selbst schreiben deshalb auf dem Mac nie auf echte Geräte, nur in Abbild-Dateien. Auf den Stick kommt es nur von Hand.

USB-Stick

Das .img roh auf den Stick schreiben. Auf dem Mac (statt N die richtige Nummer!):

diskutil list                       # welcher ist der Stick?
diskutil unmountDisk /dev/diskN
sudo dd if=nullos-0.2-x86_64.img of=/dev/rdiskN bs=4m
diskutil eject /dev/diskN

Dann den PC vom Stick starten (Boot-Menü, meist F12, F11 oder Esc). Secure Boot muss aus sein – nb ist nicht signiert.

Stand: In QEMU startet das Abbild als USB-Stick, als SATA-Platte und als NVMe-SSD bis zur Shell, die Werkzeuge laufen. Auf einem echten PC: kommt noch

Selbst bauen geht auch mit den eigenen Werkzeugen: sh cmd/fs/usb.sh usb.img macht mit part und fs ein startfähiges Abbild aus build/esp.

Live-CD/DVD (ISO)

.iso brennen oder in VirtualBox, UTM oder QEMU als CD einlegen und starten. Nichts wird installiert.

qemu-system-x86_64 -machine q35 -m 256M \
  -drive if=pflash,format=raw,readonly=on,file=/opt/homebrew/share/qemu/edk2-x86_64-code.fd \
  -cdrom nullos-0.2-x86_64.iso

Das ISO ist „hybrid“: Mit dd wie oben auf einen Stick geschrieben, startet es auch von dort. Stand: in QEMU als CD und als USB-Stick bis zur Shell geprüft.

Festplatte oder SSD (fest installiert)

Nicht einfach das .img drüberbügeln: Dann wäre die Partition nur 63 MiB und die hintere Partitionstabelle läge mitten auf der Platte. Dafür gibt's einen Installer, der alles passend zur Platte anlegt:

sh tools/release/inst.sh -n -s 512 nullos-0.2-x86_64.img platte.img   # Probelauf
sh tools/release/inst.sh -s 512 nullos-0.2-x86_64.img platte.img      # 512-MiB-Platte

Er zeigt das Ziel mit Größe und Inhalt, und du musst den Namen des Ziels abtippen – ein „j“ reicht nicht, und es gibt keinen Schalter, der das überspringt. Diese erste Fassung schreibt absichtlich nur Abbild-Dateien (gut für virtuelle Maschinen). Ein Installer inst, der in nullos selbst auf echte Platten schreibt: kommt noch

SD-Karte / Raspberry Pi

Braucht den ARM64-Teil des Kernels. Der Compiler kann ARM64 schon, der Kernel noch nicht. kommt noch

ESP32

Erstes Kleingerät wird der ESP32-C5: Firmware per USB-Kabel flashen, später nur noch per SSH bedienen. Plan steht, gebaut ist noch nichts. kommt noch Mehr unter Läuft überall.