MoonLightOS

Vejledning

Fra download til en installation, der virker – og hvad du gør, når noget går skævt.

Før du går i gang

En vilkårlig 64-bit x86-computer. Installationsprogrammet kræver mindst 1,7 GB RAM og 18 GB ledig plads; tallene nedenfor er dem, systemet kører behageligt med.

MinimumAnbefalet
RAM2 GB4 GB
Disk18 GB30 GB
Processoren vilkårlig 64-bit x86-processorto kerner
Grafiket vilkårligt grafikkort med framebufferenhver GPU fra de seneste 15 år

Både UEFI og gammeldags BIOS starter den samme ISO-fil. Secure Boot kan blive ved med at være slået til.

Hent og kontrollér

ISO-filen er én fil, moonlightos-26.04.5-bengunur-amd64.iso, og ved siden af den ligger en fil med dens SHA-256-sum. Kontrollér summen, før du skriver filen til nøglen: en halv download giver en USB-nøgle, der starter og derefter fejler på forvirrende måder.

På Linux eller macOS – i den mappe, hvor du har gemt filen:

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

På Windows, i PowerShell – sammenlign den viste hashværdi med den, der står i .sha256-filen:

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

Den første kommando skriver OK; den anden skriver en hashværdi, som skal være identisk med den i filen. Alt andet betyder, at filen er beskadiget.

Hent 26.04.5

Skriv ISO-filen til en USB-nøgle

ISO-filen er hybrid, så en helt almindelig blokkopi er nok: der skal ikke noget særligt værktøj til, og den samme nøgle starter både på UEFI- og BIOS-computere. Alt på nøglen bliver slettet. Du skal have en nøgle på mindst 8 GB.

På Linux eller macOS – find først enhedsnavnet (lsblk på Linux, diskutil list på macOS), og så:

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

Tjek enhedsnavnet to gange: dd skriver til lige præcis den enhed, den får besked på.

Windows

Brug Rufus i DD-tilstand, balenaEtcher eller Ventoy. Spørger Rufus, om der skal skrives i ISO- eller DD-tilstand, så vælg DD.

Start fra USB-nøglen

Start computeren med nøglen i, og åbn den opstartsmenu, der kun gælder denne ene gang (F12, F8, F2, Esc eller Del alt efter producent), eller sæt USB-enheden først i opstartsrækkefølgen i firmwarens indstillinger. Secure Boot skal ikke ændres.

Opstartsmenuen

  • Try or Install MoonLightOS

    Det normale valg. Starter live-sessionen med opstartsanimationen.

  • Try or Install MoonLightOS (safe graphics)

    Det samme, men med kernens tilstandsskift for grafikken slået fra. Brug det, hvis skærmen bliver sort eller billedet er forvrænget.

  • MoonLightOS in RAM (needs 6 GB+)

    Kopierer hele systemet over i hukommelsen, så nøglen kan tages ud.

  • Check this medium for defects

    Kontrollerer hver enkelt fil på nøglen mod de summer, der blev gemt, da ISO-filen blev bygget.

  • Verbose boot (no splash, logs to serial)

    Viser hver besked på skærmen og på den første serielport – den eneste måde at læse en opstart, der fejler, før skærmen er klar.

  • UEFI firmware settings

    Genstarter ind i firmwarens indstillinger.

Skærmbillede af MoonLightOS
Så kommer opstartsanimationen: logoet står stille, lysringen pulserer, og statuslinjen fyldes.

Live-sessionen

Det første, du ser, er førstegangsopsætningen: vælg systemets sprog, bekræft tastaturlayoutet (skriv i feltet for at prøve det), kom på et trådløst netværk, og vælg så, om du vil se dig omkring eller installere. Alt, hvad guiden sætter, er en rigtig systemindstilling, og installationsprogrammet bruger de samme valg.

Skærmbillede af MoonLightOS

Live-sessionen er hele systemet, uændret: samme skrivebord, samme værktøjer, samme indstillingssider. Live-brugeren hedder moonlight og har ingen adgangskode. Intet af det, du gør her, rører disken, før du starter installationsprogrammet.

Du installerer ved at dobbeltklikke på Installér MoonLightOS på skrivebordet eller ved at åbne førstegangsopsætningen igen og vælge Installér.

Installation

Installationsprogrammet er Calamares. Syv sider, og så kopieringen til disken.

  1. Velkommen

    Installationsprogrammets sprog og henvisningerne til denne vejledning.

  2. Placering

    Din region og tidszone – sprogområde og talformater følger med.

  3. Tastatur

    Står allerede på det, du valgte i guiden. Skriv i feltet for at tjekke det.

  4. Partitioner

    Slet disken er forvalgt og laver et ext4-filsystem med en swapfil; btrfs, xfs og f2fs kan også vælges, og du kan partitionere i hånden. Sæt flueben i Kryptér systemet for LUKS2-kryptering af hele disken, og vælg en adgangssætning: du skal skrive den ved hver opstart, og glemmer du den, er den tabt. På en UEFI-computer bliver der lavet en EFI-partition på 512 MiB.

  5. Brugere

    Dit navn, computerens navn, et brugernavn og en adgangskode på mindst otte tegn fra to tegnklasser. Den første konto administrerer computeren gennem sudo; root-kontoen bliver ved med at være låst, og der er ingen automatisk logind, medmindre du selv slår det til.

  6. Oversigt

    Alt, hvad installationsprogrammet er ved at gøre, på én liste. Der er endnu ikke skrevet noget.

  7. Installér

    Systemet bliver kopieret over på disken, opstartsindlæseren bliver installeret (som MoonLightOS i firmwarens opstartsliste på UEFI), og live-sessionens rester bliver ryddet væk. Så genstarter du og tager nøglen ud.

Andre styresystemer på computeren bliver fundet af os-prober ved den første opstart og lagt ind i GRUB-menuen.

Den første opstart

Et installeret system begynder som en nøjagtig kopi af den ISO-fil, alle andre installationer også kommer fra. Alt, der skal være unikt for netop denne computer, bliver lavet ved den første opstart, før logindskærmen kommer frem, af en tjeneste, der derefter slår sig selv fra:

  • et nyt maskin-id, så ingen på netværket kan koble to installationer sammen;
  • nye SSH-værtsnøgler, for en nøgle, der var ens på hver eneste hentede installation, ville gøre værtskontrollen meningsløs;
  • GRUB-menuen, nu hvor de rigtige diske og de andre styresystemer på dem er synlige;
  • et initramfs, der er bygget til den hardware, computeren faktisk har, så det er mindre, og opstartsanimationen kommer hurtigere frem;
  • cachen for ikoner, skrifttyper og skrivebord, så det første logind ikke er sløvt;
  • firewallen, slået til igen.

Hvad tjenesten gør, bliver skrevet til /var/log/moonlight-firstboot.log. Så kommer logindskærmen – og efter det første logind dukker Velkommen-vinduet op.

Skærmbillede af MoonLightOS

De første skridt

  • Vælg et udseende

    Mørkt eller lyst, direkte i Velkommen. Alt det andet ligger i MoonLight Tweaks: skrivebordsopsætningen, tapetet, tidsplanen og widgets.

  • Drivere

    Velkommen → Drivere åbner Driverhåndtering. På en computer med NVIDIA-kort ligger den lukkede driver på ISO-filen, så den virker uden internetforbindelse.

  • Software

    Softwarecentret viser snaps, Ubuntu-arkivet og Flathub samlet. Thunderbird, Steam, Spotify og mange andre ligger en søgning væk.

  • Fingeraftryk og ansigt

    Velkommen → Fingeraftryk, eller Systemindstillinger → Din konto, hvis du vil registrere et fingeraftryk eller sætte ansigtsoplåsning op.

  • Sikkerhedskopier

    Timeshift tager snapshots af systemet efter en tidsplan. Sæt det op, før du får brug for det.

  • Sikkerhed

    Systemindstillinger → Sikkerhed viser, hvad der beskytter denne computer, og hvad der ikke gør. Hver linje har den knap, der retter det.

  • Udviklerpakker

    Virtuelle maskiner, PHP med databaser og LaTeX: ét klik hver i Velkommen, installeret fra det arkiv, der allerede er sat op.

  • Windows-programmer

    Åbn Windows-programmer én gang: det klargør Wine med DXVK, VKD3D, skrifttyper og runtimes. Derefter åbner .exe-filer bare.

Virtuelle maskiner

VirtualBox

VirtualBox skal have tre indstillinger lavet om, ellers starter den slet ikke denne ISO-fil. Fejlen ligner et hukommelsesproblem, men er det ikke: GRUB skifter til en grafiktilstand for at kunne tegne den tematiserede menu, og med VirtualBox' standard på 16 MB videohukommelse mislykkes det med beskeden »Out of memory. You need to load the kernel first.«

TypeLinux / Ubuntu (64-bit)
Hukommelse4096 MB (2048 som minimum)
Processorer2 eller flere
Videohukommelse128 MB – den indstilling, der faktisk betyder noget
3D-accelerationslået til
GrafikstyringVMSVGA
Aktivér EFIslået fra: BIOS fungerer fint, og VirtualBox' EFI er ufærdig
Spring uovervåget installation oversat til
Disk30 GB eller mere

Fra kommandolinjen:

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

VirtualBox kalder mediet »Ubuntu«, fordi den finder en /casper-mappe på det. Det er kun en etiket i VirtualBox' brugerflade; selve mediet melder sig som MoonLightOS. Sæt gæstetypen til Ubuntu alligevel – det vælger det rigtige chipsæt og de rigtige grafikindstillinger.

QEMU

UEFI, sådan som de fleste computere starter. Lav først de skrivbare firmwarevariabler og en disk at installere på:

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

Med Secure Boot rigtigt slået til, altså med den firmware, hvor Microsofts nøgler er lagt ind. Når systemet er startet, melder mokutil --sb-state SecureBoot enabled, og det samme gør Indstillinger → Om:

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

Gammeldags BIOS: ISO-filen er hybrid, så den samme fil starter også på den gamle måde:

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

Vil du efterprøve påstanden om 2 GB, så start uden acceleration og med mindst mulig hukommelse, og se så i live-sessionen, at zram optræder som swap, og at hukommelsespresset holder sig lavt:

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

Gæsteværktøjerne til VirtualBox, QEMU/SPICE og VMware ligger allerede på ISO-filen, og det er dem, der sørger for, at skærmen tilpasser sig størrelsen, og at udklipsholderen deles.

Tastaturgenveje

Hele tabellen står på funktionssiden. Dem, det er værd at lære den første dag:

Superåbner menuen; Super+Space åbner den med markøren i søgefeltet
Super+Vhistorik i udklipsholderen
Super+Nnoter
Print / Shift+Printskærmbillede af skærmen / af et udsnit; Shift+Super+5 åbner optagelsespanelet
Super+Left / Rightlægger et vindue i halv skærm
Ctrl+Upalle vinduer; Ctrl+Down, alle skriveborde
Super+Llåser skærmen; Ctrl+Alt+T åbner en terminal; Ctrl+Shift+Esc åbner systemovervågningen

Hele tabellen

Når noget går skævt

  • Skærmen bliver sort efter opstartsmenuen

    Vælg punktet med sikker grafik. Starter systemet, så installér derfra, og slå bagefter den lukkede driver til fra Drivere-siden.

  • »Out of memory. You need to load the kernel first.«

    En VirtualBox-maskine med 16 MB videohukommelse. Giv den 128 MB og slå 3D-acceleration til – se Virtuelle maskiner ovenfor.

  • Skrivebordet føles sløvt

    Se under Indstillinger → Om, hvilken OpenGL-renderer der er i brug. Kører grafikken i software, bliver animationerne slået fra automatisk ved logind; Tweaks → Ydelse slår dem fra i hånden.

  • Nøglen starter, men fejler derefter på forvirrende måder

    Kør Check this medium for defects fra opstartsmenuen, og kontrollér SHA-256-summen på den fil, du har hentet.

  • Ingen wi-fi

    Åbn Drivere-siden: Broadcom-driveren ligger på ISO-filen. For andre adaptere viser netværksmenuen, hvad kernen har fundet.

  • Fingeraftrykslæseren bliver ikke fundet

    Åbn Fingeraftryk. Det fortæller, hvem der har lavet sensoren, om den er understøttet direkte, om den sammenligner på chippen, eller om den kræver en binær fil fra producenten – og hvad du kan gøre.

  • Sådan læser du loggene

    Hvad opstarten klagede over, logindhåndteringens log, loggen fra den første opstart og navnet på det aktive opstartstema:

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

Til en fejlrapport lægger Om → Kopiér rapport udgivelsen og hardwaren i udklipsholderen, og moonlight-selftest skriver, hvad skrivebordet faktisk gør.

moonlight-selftest | less

Byg det selv

Hele distributionen ligger i ét arkiv: grafikken er afledt af ét kildelogo, temaerne bliver genereret ud fra én palet, og ét script laver det hele til en ISO-fil, der kan starte med Secure Boot. Du skal have Docker (på et vilkårligt styresystem, for bygningen kører i en container) og omkring 25 GB fri plads.

./build.shdet hele: bootstrap → tilpasning → komprimering → ISO
./build.sh rootfsstop, når systemet er tilpasset
./build.sh imagepak et eksisterende rodfilsystem om til en ny ISO
./build.sh finishkun opstartsindlæsere og ISO, oven på den squashfs der allerede findes
./build.sh shellen skal inde i byggemiljøet
./build.sh cleanslet arbejdsdiskenheden

ISO-filen bliver skrevet til out/ med en SHA-256-sum ved siden af. På Windows kører du den fra Git Bash eller bruger build.ps1.

Sådan hænger bygningen sammen

build.shindgangen på værtsmaskinen; kører alt i en container
build/Dockerfile.builderbyggemiljøet, bundet til den version, der bygges til
build/mkiso.shbootstrap, udtræk af kernen, squashfs, opstartsindlæsere, ISO
build/inchroot.shalt det, der sker inde i chrooten, i fjorten etaper
config/moonlight.confhver eneste tekst, der definerer udgivelsen
packages/*.listhvad der kommer med på ISO-filen, og hvad der bliver fjernet
rootfs/filer, der kopieres uændret ind i systemet, blandt andet MoonLight-programmerne
brand/source/kildelogoet og tapeterne; brand/out/ bliver genereret
tools/gen-branding.pykildelogo → opstartsanimation, GRUB, logindskærm, ikoner
tools/gen-themes.pyén palet → to komplette temaer
po/oversættelserne af MoonLight-programmerne
installer/konfiguration og grafik til Calamares

Inden ISO-filen bliver lavet, kører bygningen mere end 120 obligatoriske kontroller inde i selve systemet: kernen, den signerede shim, begge temaer, hvert enkelt MoonTool, codecs, wi-fi-driverne, oversættelserne og at ansigtsoplåsning og nødadgangskoden er slået fra. Fejler bare én kontrol, stopper bygningen. Arbejdspladsen er en Docker-diskenhed og ikke en bind mount, fordi filrettigheder, symbolske links og enhedsfiler ikke overlever en bind mount på Windows eller macOS.

Tilpasning

  • Udgivelsens identitet

    config/moonlight.conf indeholder hver eneste tekst, der definerer distributionen.

  • Grafik

    Skift kildelogoet eller et tapet, kør tools/gen-branding.py igen, og opstartsanimationen, GRUB, logindskærmen, ikonerne og grafikken i installationsprogrammet bliver alle lavet om.

  • Farver

    tools/gen-themes.py indeholder én mørk og én lys palet og genererer begge komplette temaer efter de samme regler.

  • Installerede pakker

    packages/*.list, én pakke pr. linje, installeret i filnavnenes rækkefølge; 99-purge.list er listen over det, der bliver fjernet bagefter.

  • Standardindstillinger for skrivebordet

    rootfs/etc/dconf/db/moonlight.d/ i dconf-keyfile-format. Det er standardværdier, ikke låste værdier: en bruger kan ændre dem alle.

  • Hurtig genbygning

    Har du ændret noget i rootfs/ eller i pakkelisterne, gentager build.sh rootfs chroot-etapen på den base, der ligger i cachen, og build.sh image pakker ISO-filen om; build.sh finish er til, når du arbejder på opstartsmenuen.

Hjælp og fejlrapporter

En brugbar rapport fortæller, hvad du forventede, hvad der skete i stedet, og hvilken computer det skete på. Det sidste gør MoonLightOS nemt:

  • Om MoonLightOS → Kopiér rapport lægger udgivelsen, hardwaren, grafikrendereren og Secure Boot-tilstanden i udklipsholderen som tekst.
  • moonlight-selftest skriver, hvilke temaindstillinger der er i brug, om skallens stylesheet blev indlæst rigtigt, hvilken grafikdriver der er aktiv, og hvilke tjenester der fejlede.
  • Går det galt under opstarten, skriver punktet Verbose boot hver besked til skærmen og til den første serielport.
  • Til installationsprogrammet: /var/log/moonlight-firstboot.log på det installerede system og journalctl -b -p warning.

Hvor du sender det hen

Et offentligt fejlsporingssystem og en supportkanal bliver annonceret her. Indtil da: behold rapporten – alt, hvad den skal indeholde, kommer fra de to værktøjer ovenfor.