MoonLightOS

Anleitung

Vom Download bis zur fertigen Installation, und was zu tun ist, wenn etwas nicht klappt.

Bevor Sie anfangen

Jeder 64-Bit-Rechner mit x86-Prozessor. Das Installationsprogramm verlangt mindestens 1,7 GB Arbeitsspeicher und 18 GB Platz auf der Festplatte; die Werte unten sind die, mit denen das System bequem läuft.

MindestensEmpfohlen
Arbeitsspeicher2 GB4 GB
Festplatte18 GB30 GB
Prozessorjeder 64-Bit-x86-Prozessorzwei Kerne
Grafikjede Grafikeinheit mit Framebufferjede GPU der letzten 15 Jahre

UEFI und das alte BIOS beherrscht dasselbe Abbild. Secure Boot kann aktiv bleiben.

Herunterladen und prüfen

Das Abbild ist eine einzige Datei, moonlightos-26.04.5-bengunur-amd64.iso, und daneben liegt eine zweite Datei mit der SHA-256-Prüfsumme. Prüfen Sie die Summe, bevor Sie das Abbild schreiben: Ein unvollständiger Download ergibt einen USB-Stick, der startet und dann auf verwirrende Weise scheitert.

Unter Linux oder macOS, im Ordner mit dem Download:

sha256sum -c moonlightos-26.04.5-bengunur-amd64.iso.sha256

Unter Windows in der PowerShell; vergleichen Sie den ausgegebenen Hash mit dem in der .sha256-Datei:

Get-FileHash .\moonlightos-26.04.5-bengunur-amd64.iso -Algorithm SHA256
Get-Content .\moonlightos-26.04.5-bengunur-amd64.iso.sha256

Der erste Befehl gibt OK aus, der zweite einen Hash, der mit dem in der Datei übereinstimmen muss. Alles andere heißt, dass der Download beschädigt ist.

26.04.5 herunterladen

Abbild auf den USB-Stick schreiben

Das Abbild ist ein hybrides ISO, deshalb genügt eine einfache blockweise Kopie: Es braucht kein besonderes Werkzeug, und derselbe Stick startet auf UEFI- wie auf BIOS-Rechnern. Alles, was auf dem Stick liegt, wird gelöscht. Sie brauchen einen Stick mit mindestens 8 GB.

Unter Linux oder macOS zuerst den Gerätenamen herausfinden (lsblk unter Linux, diskutil list unter macOS), dann:

sudo dd if=moonlightos-26.04.5-bengunur-amd64.iso of=/dev/sdX bs=4M status=progress oflag=direct conv=fsync
sudo dd if=moonlightos-26.04.5-bengunur-amd64.iso of=/dev/rdiskN bs=4m   # macOS

Prüfen Sie den Gerätenamen zweimal: dd schreibt auf genau das Gerät, das es bekommt.

Windows

Nehmen Sie Rufus im DD-Modus, balenaEtcher oder Ventoy. Fragt Rufus, ob im ISO- oder im DD-Modus geschrieben werden soll, wählen Sie DD.

Vom USB-Stick starten

Starten Sie den Rechner mit eingestecktem Stick und öffnen Sie das einmalige Startmenü (je nach Hersteller F12, F8, F2, Esc oder Entf), oder legen Sie das USB-Gerät in den Firmware-Einstellungen als erstes Startgerät fest. An Secure Boot muss nichts geändert werden.

Das Startmenü

  • Try or Install MoonLightOS

    Der normale Eintrag. Startet die Live-Sitzung mit der Startanimation.

  • Try or Install MoonLightOS (safe graphics)

    Dasselbe, nur mit abgeschaltetem Kernel-Mode-Setting. Nehmen Sie ihn, wenn der Bildschirm schwarz bleibt oder das Bild verzerrt ist.

  • MoonLightOS in RAM (needs 6 GB+)

    Kopiert das ganze System in den Arbeitsspeicher, danach können Sie den Stick abziehen.

  • Check this medium for defects

    Prüft jede Datei auf dem Stick gegen die Prüfsummen, die beim Bauen festgehalten wurden.

  • Verbose boot (no splash, logs to serial)

    Zeigt jede Meldung auf dem Bildschirm und auf der ersten seriellen Schnittstelle. Nur so lässt sich ein Start lesen, der scheitert, bevor die Anzeige bereitsteht.

  • UEFI firmware settings

    Startet neu in die Firmware-Einstellungen.

Bildschirmfoto von MoonLightOS
Dann erscheint die Startanimation: Das Logo steht still, der Halo pulsiert, und der Fortschrittsbalken füllt sich.

Die Live-Sitzung

Das Erste, was Sie sehen, ist der Assistent zur Einrichtung: Sprache des Systems wählen, Tastaturbelegung bestätigen (zum Ausprobieren ins Feld tippen), WLAN verbinden und dann entweder umsehen oder installieren. Alles, was dabei gesetzt wird, ist eine echte Systemeinstellung, und das Installationsprogramm verwendet dieselben Angaben.

Bildschirmfoto von MoonLightOS

Die Live-Sitzung ist das vollständige, unveränderte System: derselbe Desktop, dieselben Werkzeuge, dieselben Einstellungsseiten. Der Live-Benutzer heißt moonlight und hat kein Passwort. Nichts, was Sie hier tun, berührt die Festplatte, solange Sie das Installationsprogramm nicht starten.

Zum Installieren doppelklicken Sie auf dem Desktop auf „MoonLightOS installieren“, oder Sie öffnen die Einrichtung erneut und wählen „Installieren“.

Installation

Das Installationsprogramm ist Calamares. Sieben Seiten, dann wird auf die Festplatte kopiert.

  1. Willkommen

    Die Sprache des Installationsprogramms und die Verweise auf diese Anleitung.

  2. Standort

    Ihre Region und Zeitzone; Sprachregion und Zahlenformate ergeben sich daraus.

  3. Tastatur

    Schon auf das eingestellt, was Sie im Assistenten gewählt haben. Zum Prüfen ins Feld tippen.

  4. Partitionen

    Vorgegeben ist „Festplatte löschen“; dabei entsteht ein ext4-Dateisystem mit Auslagerungsdatei. Auch btrfs, xfs und f2fs stehen bereit, ebenso die Partitionierung von Hand. Für die vollständige LUKS2-Verschlüsselung setzen Sie das Häkchen bei „System verschlüsseln“ und wählen eine Passphrase: Sie geben sie bei jedem Start ein, und wenn Sie sie vergessen, ist sie nicht wiederherstellbar. Auf einem UEFI-Rechner wird eine 512 MiB große EFI-Partition angelegt.

  5. Benutzer

    Ihr Name, der Name des Rechners, ein Benutzername und ein Passwort aus mindestens acht Zeichen und zwei Zeichenklassen. Das erste Konto verwaltet den Rechner über sudo; das Konto root bleibt gesperrt, und es gibt keine automatische Anmeldung, solange Sie sie nicht einschalten.

  6. Zusammenfassung

    Alles, was das Installationsprogramm vorhat, in einer Liste. Geschrieben wurde bis hierher nichts.

  7. Installation

    Das System wird auf die Festplatte kopiert, der Bootloader wird eingerichtet (auf UEFI als MoonLightOS in der Startliste der Firmware), und die Reste der Live-Sitzung werden entfernt. Danach neu starten und den Stick abziehen.

Andere Betriebssysteme auf dem Rechner erkennt os-prober beim ersten Start und nimmt sie ins GRUB-Menü auf.

Der erste Start

Ein installiertes System beginnt als genaue Kopie des Abbilds, aus dem jede andere Installation ebenfalls stammt. Alles, was auf diesem Rechner einzigartig sein muss, entsteht beim ersten Start, noch vor dem Anmeldebildschirm, durch einen Dienst, der sich danach selbst abschaltet:

  • eine neue Maschinenkennung, damit niemand im Netz zwei Installationen miteinander verbinden kann;
  • neue SSH-Host-Schlüssel, denn ein Schlüssel, den alle hätten, die das Abbild geladen haben, würde die Prüfung des Rechners sinnlos machen;
  • das GRUB-Menü, nun da die echten Festplatten und die anderen Betriebssysteme darauf sichtbar sind;
  • ein neu gebautes Initramfs, das nur die tatsächlich vorhandene Hardware abdeckt und deshalb kleiner ist, sodass die Startanimation früher erscheint;
  • die Zwischenspeicher für Symbole, Schriften und Desktop, damit die erste Anmeldung nicht lange dauert;
  • die Firewall, wieder eingeschaltet.

Seine Ausgabe landet in /var/log/moonlight-firstboot.log. Danach erscheint der Anmeldebildschirm und nach der ersten Anmeldung das Willkommensfenster.

Bildschirmfoto von MoonLightOS

Erste Schritte

  • Erscheinungsbild wählen

    Dunkel oder hell, direkt in Willkommen. Alles Weitere steckt in MoonLight Tweaks: die Anordnung des Desktops, das Hintergrundbild, der Zeitplan und die Widgets.

  • Treiber

    Willkommen → Treiber öffnet die Treiberverwaltung. Auf einem Rechner mit NVIDIA-Karte liegt der herstellereigene Treiber auf dem ISO und funktioniert deshalb ohne Internetverbindung.

  • Software

    Der Store führt Snaps, das Ubuntu-Repository und Flathub gemeinsam auf. Thunderbird, Steam, Spotify und viele andere sind nur eine Suche entfernt.

  • Fingerabdruck und Gesicht

    Willkommen → Fingerabdruck oder Systemeinstellungen → Ihr Konto, um einen Fingerabdruck einzulesen oder die Gesichtsentsperrung einzurichten.

  • Datensicherung

    Timeshift legt nach Zeitplan Sicherungspunkte des Systems an. Richten Sie es ein, bevor Sie es brauchen.

  • Sicherheit

    Systemeinstellungen → Sicherheit zeigt, was diesen Rechner schützt und was nicht, und zu jeder Zeile die Schaltfläche, die das Problem behebt.

  • Entwicklerpakete

    Virtuelle Maschinen, PHP mit Datenbanken und LaTeX: je ein Klick in Willkommen, installiert aus dem Repository, das schon eingerichtet ist.

  • Windows-Programme

    Öffnen Sie einmal das Werkzeug Windows-Anwendungen: Es bereitet Wine mit DXVK, VKD3D, Schriften und Laufzeitumgebungen vor. Danach öffnen sich .exe-Dateien ohne weiteres Zutun.

Virtuelle Maschinen

VirtualBox

Bei VirtualBox müssen drei Einstellungen von den Vorgaben abweichen, sonst startet dieses Abbild überhaupt nicht. Der Fehler sieht nach einem Speicherproblem aus, ist aber keines: GRUB schaltet in einen Grafikmodus, um das gestaltete Menü zu zeichnen, und mit den voreingestellten 16 MB Grafikspeicher von VirtualBox scheitert das mit der Meldung „Out of memory. You need to load the kernel first.“

TypLinux / Ubuntu (64-bit)
Hauptspeicher4096 MB (mindestens 2048)
Prozessoren2 oder mehr
Grafikspeicher128 MB, die Einstellung, auf die es wirklich ankommt
3D-Beschleunigungeingeschaltet
Grafik-ControllerVMSVGA
EFI aktivierenaus: BIOS arbeitet einwandfrei, und das EFI von VirtualBox ist unvollständig
Unbeaufsichtigte Installation überspringenangekreuzt
Festplatte30 GB oder mehr

Auf der Befehlszeile:

VBoxManage modifyvm "MoonLightOS" \
    --ostype Ubuntu24_LTS_64 --memory 4096 --cpus 4 \
    --vram 128 --graphicscontroller vmsvga --accelerate3d on \
    --boot1 dvd --boot2 disk

VirtualBox bezeichnet das Medium als „Ubuntu“, weil es darauf einen Ordner /casper findet. Das ist nur eine Beschriftung in der Oberfläche von VirtualBox; das Medium selbst gibt sich als MoonLightOS aus. Stellen Sie den Gasttyp trotzdem auf Ubuntu, denn damit werden der richtige Chipsatz und sinnvolle Vorgaben für die Grafik gewählt.

QEMU

UEFI, so wie die meisten Rechner starten. Legen Sie zuerst die schreibbaren Firmware-Variablen und eine Zielfestplatte an:

cp /usr/share/OVMF/OVMF_VARS.fd .
qemu-img create -f qcow2 disk.qcow2 30G
qemu-system-x86_64 \
  -enable-kvm -m 4096 -smp 4 \
  -machine q35 -cpu host \
  -device virtio-vga-gl -display gtk,gl=on \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=moonlightos-26.04.5-bengunur-amd64.iso,media=cdrom \
  -drive file=disk.qcow2,if=virtio

Mit wirklich aktivem Secure Boot, also mit der Firmware, in der Microsofts Schlüssel hinterlegt sind. Nach dem Start meldet mokutil --sb-state „SecureBoot enabled“, und Einstellungen → Über MoonLightOS tut es ebenso:

cp /usr/share/OVMF/OVMF_VARS_4M.ms.fd OVMF_VARS.fd
qemu-system-x86_64 \
  -enable-kvm -m 4096 -smp 4 -machine q35,smm=on -cpu host \
  -global driver=cfi.pflash01,property=secure,value=on \
  -drive if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.secboot.fd \
  -drive if=pflash,format=raw,file=OVMF_VARS.fd \
  -drive file=moonlightos-26.04.5-bengunur-amd64.iso,media=cdrom

Altes BIOS: Das ISO ist hybrid, deshalb startet dieselbe Datei auch auf dem alten Weg:

qemu-system-x86_64 -enable-kvm -m 2048 -cdrom moonlightos-26.04.5-bengunur-amd64.iso

Um die Aussage mit den 2 GB nachzuprüfen: ohne Beschleunigung und mit dem kleinsten Speicher starten, dann in der Live-Sitzung nachsehen, ob zram als Auslagerungsspeicher auftaucht und der Speicherdruck niedrig bleibt:

qemu-system-x86_64 -enable-kvm -m 2048 -smp 2 -vga std -cdrom moonlightos-26.04.5-bengunur-amd64.iso

# in the live session:
free -h                      # zram appears as swap
swapon --show                # /dev/zram0, zstd
cat /proc/pressure/memory    # "some avg10" under about 10 means it is keeping up
systemctl is-active earlyoom

Die Gasterweiterungen für VirtualBox, QEMU/SPICE und VMware liegen schon auf dem Abbild; sie sorgen dafür, dass sich die Anzeige anpasst und die Zwischenablage gemeinsam genutzt wird.

Tastenkürzel

Die vollständige Tabelle steht auf der Seite „Funktionen“. Diese hier lohnen sich am ersten Tag:

Superöffnet das Menü; Super+Leertaste öffnet es mit dem Cursor im Suchfeld
Super+VVerlauf der Zwischenablage
Super+NNotizen
Druck / Umschalt+DruckBildschirmfoto des Bildschirms oder eines Bereichs; Umschalt+Super+5 öffnet das Bedienfeld für Aufnahmen
Super+Links / Rechtslegt ein Fenster auf eine Bildschirmhälfte
Strg+Hochalle Fenster; Strg+Runter alle Arbeitsflächen
Super+Lsperrt den Bildschirm; Strg+Alt+T öffnet ein Terminal; Strg+Umschalt+Esc öffnet die Systemüberwachung

Die vollständige Tabelle

Wenn etwas nicht klappt

  • Der Bildschirm bleibt nach dem Startmenü schwarz

    Wählen Sie den Eintrag mit der sicheren Grafik. Startet er, installieren Sie von dort aus und schalten anschließend auf der Treiberseite den herstellereigenen Treiber ein.

  • „Out of memory. You need to load the kernel first.“

    Eine VirtualBox-Maschine mit 16 MB Grafikspeicher. Geben Sie ihr 128 MB und schalten Sie die 3D-Beschleunigung ein, siehe oben unter „Virtuelle Maschinen“.

  • Der Desktop wirkt träge

    Sehen Sie unter Einstellungen → Über MoonLightOS nach dem OpenGL-Renderer. Wird per Software gezeichnet, sind die Animationen schon bei der Anmeldung abgeschaltet; unter Tweaks → Leistung schalten Sie sie von Hand ab.

  • Der Stick startet, scheitert dann aber auf verwirrende Weise

    Lassen Sie im Startmenü „Check this medium for defects“ laufen und prüfen Sie die SHA-256-Summe des Downloads.

  • Kein WLAN

    Öffnen Sie die Treiberseite: Der Broadcom-Treiber liegt auf dem Abbild. Für andere Adapter zeigt das Netzwerkmenü, was der Kernel erkannt hat.

  • Das Fingerabdrucklesegerät wird nicht erkannt

    Öffnen Sie das Werkzeug Fingerabdruck. Es nennt den Hersteller des Sensors, sagt, ob er direkt unterstützt wird, im Chip abgleicht oder eine Binärdatei des Herstellers braucht, und erklärt, was sich tun lässt.

  • Protokolle lesen

    Was der Start zu beklagen hatte, das Protokoll der Anmeldeverwaltung, das Protokoll des ersten Starts und der Name des aktiven Starttheme:

journalctl -b -p warning          # what the boot complained about
journalctl -b -u lightdm
cat /var/log/moonlight-firstboot.log
plymouth-set-default-theme        # should print: moonlightos

Für einen Fehlerbericht legt „Über MoonLightOS“ → „Bericht kopieren“ Version und Hardware in die Zwischenablage, und moonlight-selftest gibt aus, was der Desktop tatsächlich tut.

moonlight-selftest | less

Selbst bauen

Die ganze Distribution steckt in einem Repository: Die Grafiken entstehen aus einem einzigen Quelllogo, die Themes aus einer einzigen Palette, und ein Skript macht daraus ein startfähiges ISO, das mit Secure Boot funktioniert. Sie brauchen Docker und etwa 25 GB freien Platz; welches Betriebssystem Sie verwenden, spielt keine Rolle, weil der Build in einem Container läuft.

./build.shalles: Bootstrap → anpassen → komprimieren → ISO
./build.sh rootfsendet, sobald das System angepasst ist
./build.sh imagepackt ein vorhandenes Wurzeldateisystem in ein neues ISO
./build.sh finishnur Bootloader und ISO, das Squashfs wird weiterverwendet
./build.sh shelleine Shell in der Bauumgebung
./build.sh cleanlöscht den Arbeitsdatenträger

Das ISO landet in out/, mit der SHA-256-Prüfsumme daneben. Unter Windows führen Sie es in der Git Bash aus oder nehmen build.ps1.

Wie der Build aufgebaut ist

build.shEinstieg auf dem Wirtsystem; führt alles in einem Container aus
build/Dockerfile.builderdie Bauumgebung, auf die Zielveröffentlichung festgelegt
build/mkiso.shBootstrap, Kernel herauslösen, Squashfs, Bootloader, ISO
build/inchroot.shalles, was im chroot geschieht, in vierzehn Stufen
config/moonlight.confjede Zeichenkette, die die Veröffentlichung ausmacht
packages/*.listwas aufs Abbild kommt und was entfernt wird
rootfs/Dateien, die unverändert ins System kopiert werden, darunter die MoonLight-Anwendungen
brand/source/Quelllogo und Hintergrundbilder; brand/out/ wird erzeugt
tools/gen-branding.pyQuelllogo → Startanimation, GRUB, Anmeldebildschirm, Symbole
tools/gen-themes.pyeine Palette → beide vollständigen Themes
po/die Übersetzungen der MoonLight-Anwendungen
installer/Konfiguration und Gestaltung von Calamares

Bevor das ISO entsteht, führt der Build mehr als 120 verbindliche Prüfungen im Abbild aus: den Kernel, den signierten Shim, beide Themes, jedes MoonTool, die Codecs, die WLAN-Treiber, die Übersetzungen und dass Gesichtsentsperrung und Notfallpasswort abgeschaltet sind. Scheitert eine Prüfung, bricht der Build ab. Der Arbeitsbereich ist ein Docker-Volume und keine Einbindung aus dem Wirtsystem, weil Besitzrechte, symbolische Verknüpfungen und Gerätedateien eine solche Einbindung unter Windows oder macOS nicht überleben.

Anpassen

  • Die Identität der Veröffentlichung

    In config/moonlight.conf steht jede Zeichenkette, die die Distribution ausmacht.

  • Grafiken

    Tauschen Sie das Quelllogo oder ein Hintergrundbild aus, lassen Sie tools/gen-branding.py noch einmal laufen, und Startanimation, GRUB, Anmeldebildschirm, Symbole und die Grafiken des Installationsprogramms entstehen alle neu.

  • Farben

    In tools/gen-themes.py stehen eine dunkle und eine helle Palette, und daraus entstehen nach denselben Regeln beide vollständigen Themes.

  • Installierte Pakete

    packages/*.list, ein Paket je Zeile, installiert in der Reihenfolge der Dateinamen; in 99-purge.list steht, was danach entfernt wird.

  • Vorgaben für den Desktop

    rootfs/etc/dconf/db/moonlight.d/, im dconf-Keyfile-Format. Das sind Vorgaben, keine Sperren: Jede davon kann ein Benutzer ändern.

  • Schnell neu bauen

    Nach einer Änderung an rootfs/ oder an den Paketlisten wiederholt build.sh rootfs die chroot-Stufe auf der zwischengespeicherten Basis, und build.sh image packt das ISO neu; build.sh finish ist für die Arbeit am Startmenü gedacht.

Hilfe und Fehlerberichte

Ein brauchbarer Bericht sagt, was Sie erwartet haben, was stattdessen geschah und auf welchem Rechner. Den dritten Teil macht MoonLightOS einfach:

  • „Über MoonLightOS“ → „Bericht kopieren“ legt Version, Hardware, Grafik-Renderer und den Zustand von Secure Boot als Text in die Zwischenablage.
  • moonlight-selftest gibt aus, welche Theme-Einstellungen gelten, ob das Stylesheet der Shell richtig geladen wurde, welcher Grafiktreiber aktiv ist und welche Dienste gescheitert sind.
  • Bei einem Problem beim Start schreibt der Eintrag „Verbose boot“ jede Meldung auf den Bildschirm und auf die erste serielle Schnittstelle.
  • Zum Installationsprogramm: /var/log/moonlight-firstboot.log auf dem installierten System und journalctl -b -p warning.

Wohin damit

Eine öffentliche Fehlerverwaltung und eine Anlaufstelle für Fragen werden hier angekündigt. Bis dahin bewahren Sie den Bericht auf: Alles, was darin stehen muss, liefern die beiden Werkzeuge oben.