MoonLightOS

Průvodce

Od stažení k funkční instalaci, a co dělat, když se něco nepovede.

Než začnete

Jakýkoli 64bitový počítač x86. Instalátor potřebuje alespoň 1,7 GB paměti a 18 GB místa na disku; hodnoty v tabulce jsou ty, se kterými systém běží bez trápení.

MinimumDoporučeno
Operační paměť2 GB4 GB
Disk18 GB30 GB
Procesorjakýkoli 64bitový procesor x86dvě jádra
Grafikajakýkoli grafický adaptér s framebufferemjakákoli grafika z posledních 15 let

Tentýž obraz zvládne UEFI i starší BIOS. Secure Boot může zůstat zapnutý.

Stažení a ověření

Obraz je jediný soubor, moonlightos-26.04.5-bengunur-amd64.iso, a vedle něj leží druhý soubor s jeho kontrolním součtem SHA-256. Součet ověřte, ještě než obraz zapíšete: z nedokončeného stahování vznikne flash disk, který nastartuje a pak se začne chovat nepochopitelně.

Na Linuxu nebo v macOS ve složce, kam jste soubor stáhli:

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

Ve Windows v PowerShellu. Vypsaný součet pak porovnejte s tím v souboru .sha256:

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

První příkaz vypíše OK, druhý vypíše součet, který musí souhlasit s tím v souboru. Cokoli jiného znamená poškozené stahování.

Stáhnout 26.04.5

Zápis obrazu na flash disk

Obraz je hybridní ISO, takže stačí obyčejná kopie po blocích: žádný zvláštní nástroj není potřeba a tentýž disk nastartuje na počítačích s UEFI i s BIOSem. Všechno, co na disku je, se smaže. Potřebujete disk s kapacitou alespoň 8 GB.

Na Linuxu nebo v macOS si nejdřív zjistěte označení zařízení (lsblk na Linuxu, diskutil list v macOS) a potom:

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

Označení zařízení si zkontrolujte dvakrát: dd zapíše na to zařízení, které dostane.

Windows

Použijte Rufus v režimu obrazu DD, balenaEtcher nebo Ventoy. Když se Rufus zeptá, jestli zapisovat v režimu ISO, nebo DD, zvolte DD.

Spuštění z flash disku

Zapněte počítač se zapojeným flash diskem a vyvolejte jednorázovou nabídku spouštění (podle výrobce F12, F8, F2, Esc nebo Del), nebo v nastavení firmwaru nastavte zařízení USB jako první v pořadí. Se Secure Bootem nemusíte nic dělat.

Nabídka zavaděče

  • Try or Install MoonLightOS

    Běžná volba. Spustí živé prostředí i s animací při startu.

  • Try or Install MoonLightOS (safe graphics)

    Totéž, ale s vypnutým nastavováním grafického režimu v jádře. Použijte ji, když obrazovka zůstane černá nebo je obraz rozsypaný.

  • MoonLightOS in RAM (needs 6 GB+)

    Nakopíruje celý systém do paměti, takže flash disk můžete vytáhnout.

  • Check this medium for defects

    Porovná každý soubor na disku s kontrolními součty zapsanými při sestavení.

  • Verbose boot (no splash, logs to serial)

    Vypisuje všechny zprávy na obrazovku i na první sériový port. Jinak se start, který selže ještě před zapnutím obrazovky, přečíst nedá.

  • UEFI firmware settings

    Restartuje počítač do nastavení firmwaru.

Snímek obrazovky MoonLightOS
Pak se objeví animace startu: logo stojí, záře okolo pulzuje a ukazatel průběhu se plní.

Živé prostředí

První, co uvidíte, je úvodní průvodce: vyberte jazyk systému, potvrďte rozložení klávesnice (do pole si ho můžete vyzkoušet) a připojte se k Wi-Fi. Pak se můžete buď rozhlédnout, nebo rovnou instalovat. Všechno, co průvodce nastaví, je skutečné nastavení systému a instalátor pracuje se stejnými volbami.

Snímek obrazovky MoonLightOS

Živé prostředí je celý systém bez jakýchkoli úprav: stejná plocha, stejné nástroje, stejné stránky nastavení. Uživatel se jmenuje moonlight a nemá heslo. Nic z toho, co tu uděláte, se disku nedotkne, dokud nespustíte instalátor.

Instalaci spustíte dvojklikem na ikonu Instalovat MoonLightOS na ploše, nebo znovu otevřete úvodního průvodce a zvolte instalaci.

Instalace

Instalátor je Calamares. Sedm stránek a pak kopírování na disk.

  1. Vítejte

    Jazyk instalátoru a odkazy na tohoto průvodce.

  2. Umístění

    Oblast a časové pásmo; podle nich se nastaví lokalizace a formáty čísel.

  3. Klávesnice

    Už je nastavená podle toho, co jste zvolili v průvodci. V poli si ji vyzkoušejte.

  4. Oddíly

    Výchozí volbou je smazání disku: vytvoří souborový systém ext4 s odkládacím souborem. K dispozici jsou i btrfs, xfs a f2fs a také ruční rozdělení disku. Zaškrtnutím volby Zašifrovat systém zapnete šifrování LUKS2 na celém disku a zvolíte heslo. Budete ho zadávat při každém startu a když ho zapomenete, nedá se obnovit. Na počítači s UEFI vznikne oddíl EFI o velikosti 512 MiB.

  5. Uživatelé

    Vaše jméno, název počítače, uživatelské jméno a heslo alespoň o osmi znacích ze dvou různých skupin. První účet spravuje počítač přes sudo, účet root zůstává zamčený a automatické přihlášení zůstane vypnuté, pokud si ho sami nezapnete.

  6. Souhrn

    Všechno, co se instalátor chystá udělat, v jednom seznamu. Zapsáno dosud nebylo nic.

  7. Instalace

    Systém se nakopíruje na disk, nainstaluje se zavaděč (na UEFI pod názvem MoonLightOS v seznamu spouštění ve firmwaru) a zbytky živého prostředí se odstraní. Pak restartujte a vytáhněte flash disk.

Ostatní operační systémy v počítači najde při prvním startu os-prober a přidá je do nabídky GRUB.

První start

Nainstalovaný systém začíná jako přesná kopie obrazu, ze kterého vychází každá jiná instalace. O všechno, co musí být pro tento počítač jedinečné, se postará při prvním startu služba, která se pak sama vypne. Ještě před přihlašovací obrazovkou vytvoří:

  • nový identifikátor počítače, aby nikdo na síti nemohl spojit dvě instalace;
  • nové klíče hostitele SSH, protože klíč společný všem, kdo si obraz stáhli, by z ověřování hostitele udělal prázdné gesto;
  • nabídku GRUB, protože teprve teď jsou vidět skutečné disky a systémy na nich;
  • initramfs přestavěný pro hardware, který v počítači skutečně je, takže je menší a animace startu se objeví dřív;
  • mezipaměti ikon, fontů a plochy, aby první přihlášení netrvalo dlouho;
  • znovu zapnutý firewall.

Výstup zapisuje do /var/log/moonlight-firstboot.log. Pak se objeví přihlašovací obrazovka a po prvním přihlášení okno Vítejte.

Snímek obrazovky MoonLightOS

První kroky

  • Vyberte si vzhled

    Tmavý, nebo světlý, přímo ve Vítejte. Všechno ostatní je v MoonLight Tweaks: rozvržení plochy, tapeta, časový plán a widgety.

  • Ovladače

    Vítejte → Ovladače otevře Správce ovladačů. U karet NVIDIA je uzavřený ovladač přímo na ISO, takže funguje i bez připojení k internetu.

  • Software

    Obchod nabízí snapy, repozitář Ubuntu a Flathub pohromadě. Thunderbird, Steam, Spotify a mnoho dalších najdete na jedno vyhledání.

  • Otisk prstu a obličej

    Prst zaregistrujete a odemknutí obličejem nastavíte ve Vítejte → Otisk prstu nebo v Nastavení systému → Váš účet.

  • Zálohování

    Timeshift pořizuje snímky systému podle plánu. Nastavte si ho dřív, než ho budete potřebovat.

  • Zabezpečení

    Nastavení systému → Zabezpečení ukáže, co tento počítač chrání a co ne, a u každého řádku je tlačítko, které to spraví.

  • Vývojářské sady

    Virtuální stroje, PHP s databázemi a LaTeX: každá sada na jedno kliknutí ve Vítejte, instaluje se z repozitáře, který je už nastavený.

  • Programy pro Windows

    Jednou otevřete Aplikace Windows: připraví Wine včetně DXVK, VKD3D, fontů a běhových knihoven. Od té chvíle soubory .exe prostě spustíte.

Virtuální stroje

VirtualBox

Ve VirtualBoxu je potřeba změnit tři výchozí nastavení, jinak se obraz nespustí vůbec. Chyba vypadá na nedostatek paměti, ale o ten nejde: GRUB přepne do grafického režimu, aby nabídku nakreslil ve vzhledu systému, a při výchozích 16 MB videopaměti to selže se zprávou „Out of memory. You need to load the kernel first.“

TypLinux / Ubuntu (64bitový)
Paměť4096 MB (minimum 2048)
Procesory2 a více
Videopaměť128 MB, nastavení, na kterém skutečně záleží
3D akceleracezapnutá
Grafický adaptérVMSVGA
Zapnout EFIvypnuto: BIOS funguje dobře a EFI ve VirtualBoxu není hotové
Přeskočit bezobslužnou instalacizaškrtnuto
Disk30 GB a více

Z příkazové řádky:

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

VirtualBox označí médium jako „Ubuntu“, protože na něm najde složku /casper. Je to jen popisek v jeho rozhraní, samotné médium se hlásí jako MoonLightOS. Typ hosta přesto nastavte na Ubuntu, protože podle něj VirtualBox zvolí správný čipset a výchozí nastavení grafiky.

QEMU

UEFI, tedy způsob, jakým startuje většina počítačů. Nejdřív si vytvořte zapisovatelné proměnné firmwaru a cílový disk:

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

Se skutečně zapnutým Secure Bootem, tedy s firmwarem, do kterého jsou zavedené klíče Microsoftu. Po spuštění hlásí mokutil --sb-state stav SecureBoot enabled a totéž potvrdí Nastavení → O systému:

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

Starší BIOS: ISO je hybridní, takže tentýž soubor nastartuje i starým způsobem:

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

Když si chcete ověřit tvrzení o 2 GB, spusťte stroj bez akcelerace a s nejmenší pamětí a pak si v živém prostředí zkontrolujte, že se zram hlásí jako odkládací prostor a že tlak na paměť zůstává nízký:

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

Nástroje pro hosty ve VirtualBoxu, QEMU/SPICE a VMware jsou už na obrazu, a právě díky nim se přizpůsobuje rozlišení obrazovky a schránka je společná.

Klávesové zkratky

Celá tabulka je na stránce Funkce. Tyhle se vyplatí znát od prvního dne:

Superotevře nabídku; Super+Mezerník ji otevře s kurzorem ve vyhledávacím poli
Super+Vhistorie schránky
Super+Npoznámky
Print / Shift+Printsnímek celé obrazovky / výřezu; Shift+Super+5 otevře panel snímků
Super+Vlevo / Vpravopřichytí okno k polovině obrazovky
Ctrl+Nahoruvšechna okna; Ctrl+Dolů všechny plochy
Super+Lzamkne obrazovku; Ctrl+Alt+T otevře terminál; Ctrl+Shift+Esc otevře sledování systému

Celá tabulka

Když něco nefunguje

  • Po nabídce zavaděče zůstane obrazovka černá

    Zvolte položku s bezpečnou grafikou. Když naskočí, instalujte systém odtud a potom na stránce Ovladače zapněte uzavřený ovladač.

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

    Stroj ve VirtualBoxu s 16 MB videopaměti. Dejte mu 128 MB a zapněte 3D akceleraci, viz Virtuální stroje výše.

  • Prostředí se zdá pomalé

    Podívejte se v Nastavení → O systému, co vykresluje OpenGL. Při softwarovém vykreslování se animace vypnou samy už při přihlášení, ručně je vypnete v Tweaks → Výkon.

  • Flash disk nastartuje, ale pak se děje něco nepochopitelného

    Z nabídky zavaděče spusťte kontrolu média, tedy položku Check this medium for defects, a ověřte kontrolní součet SHA-256 staženého souboru.

  • Nefunguje Wi-Fi

    Otevřete stránku Ovladače: ovladač Broadcom je součástí obrazu. U ostatních adaptérů uvidíte v nabídce sítí, co jádro našlo.

  • Čtečka otisků prstů není vidět

    Otevřete Otisk prstu. Nástroj pojmenuje výrobce senzoru, řekne, jestli jde o senzor s přímou podporou, se srovnáváním v čipu, nebo s binárkou od výrobce, a vysvětlí, co se s tím dá dělat.

  • Jak se dostat k záznamům

    Na co si stěžoval start, záznam správce přihlášení, záznam z prvního startu a název aktivního vzhledu startu:

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

Do hlášení o chybě se hodí dvě věci: O systému → Kopírovat hlášení vloží do schránky vydání a hardware a moonlight-selftest vypíše, co prostředí skutečně dělá.

moonlight-selftest | less

Sestavení ze zdrojů

Celá distribuce je jeden repozitář: grafika vychází z jednoho zdrojového loga, vzhledy se generují z jedné palety a jediný skript ze všeho udělá ISO, ze kterého počítač nastartuje i se zapnutým Secure Bootem. Potřebujete Docker (na jakémkoli operačním systému, protože sestavení běží v kontejneru) a asi 25 GB místa.

./build.shvšechno: základ → úpravy → komprese → ISO
./build.sh rootfsskončí po úpravách systému
./build.sh imagez hotového kořenového souborového systému udělá nové ISO
./build.sh finishjen zavaděče a ISO, squashfs použije znovu
./build.sh shellshell uvnitř sestavovacího prostředí
./build.sh cleansmaže pracovní svazek

ISO se zapíše do out/ a vedle něj kontrolní součet SHA-256. Ve Windows spusťte sestavení z Git Bashe nebo použijte build.ps1.

Jak je sestavení rozvržené

build.shvstupní bod na hostiteli; všechno spouští v kontejneru
build/Dockerfile.buildersestavovací prostředí, pevně svázané s cílovým vydáním
build/mkiso.shzáklad, vytažení jádra, squashfs, zavaděče, ISO
build/inchroot.shvšechno, co se děje v chrootu, ve čtrnácti etapách
config/moonlight.confvšechny texty, které vydání definují
packages/*.listco se na obraz dostane a co se z něj odebere
rootfs/soubory kopírované do systému tak, jak jsou, včetně aplikací MoonLight
brand/source/zdrojové logo a tapety; brand/out/ se generuje
tools/gen-branding.pyzdrojové logo → animace startu, GRUB, přihlašovací obrazovka, ikony
tools/gen-themes.pyjedna paleta → oba úplné vzhledy
po/překlady aplikací MoonLight
installer/konfigurace a vzhled Calamares

Než ISO vznikne, projde sestavení uvnitř obrazu více než 120 povinných kontrol: jádro, podepsaný shim, oba vzhledy, každý z MoonTools, kodeky, ovladače Wi-Fi, překlady a to, že odemknutí obličejem i nouzové heslo jsou vypnuté. Když některá kontrola selže, sestavení se zastaví. Pracovní prostor je svazek Dockeru, ne složka připojená z hostitele: vlastnictví souborů, symbolické odkazy ani soubory zařízení by takové připojení ve Windows ani v macOS nepřežily.

Úpravy

  • Identita vydání

    V config/moonlight.conf jsou všechny texty, které distribuci definují.

  • Grafika

    Vyměňte zdrojové logo nebo tapetu, znovu spusťte tools/gen-branding.py a animace startu, GRUB, přihlašovací obrazovka, ikony i grafika instalátoru se vygenerují znovu.

  • Barvy

    V tools/gen-themes.py je jedna tmavá a jedna světlá paleta a podle stejných pravidel z nich vznikají oba úplné vzhledy.

  • Nainstalované balíčky

    packages/*.list, jeden balíček na řádek, instalují se v pořadí názvů souborů; v 99-purge.list je to, co se nakonec odebere.

  • Výchozí nastavení plochy

    rootfs/etc/dconf/db/moonlight.d/ ve formátu klíčových souborů dconf. Jsou to výchozí hodnoty, ne zámky: uživatel může změnit kteroukoli z nich.

  • Rychlé přestavění

    Po změně v rootfs/ nebo v seznamech balíčků zopakuje build.sh rootfs etapu v chrootu nad uloženým základem a build.sh image znovu zabalí ISO; build.sh finish je na práci s nabídkou zavaděče.

Pomoc a hlášení chyb

Užitečné hlášení říká, co jste čekali, co se stalo místo toho a na jakém počítači. Tu třetí část vám MoonLightOS usnadní:

  • O systému MoonLightOS → Kopírovat hlášení zkopíruje do schránky vydání, hardware, způsob vykreslování grafiky a stav Secure Bootu, a to jako text.
  • moonlight-selftest vypíše, jaká nastavení vzhledu platí, jestli se správně načetl styl prostředí, který grafický ovladač je aktivní a které služby selhaly.
  • U potíží se startem vypíše položka Verbose boot všechny zprávy na obrazovku i na první sériový port.
  • U instalátoru se podívejte do /var/log/moonlight-firstboot.log na nainstalovaném systému a do výpisu journalctl -b -p warning.

Kam hlášení poslat

Veřejnou evidenci chyb a kanál pro podporu tady oznámíme. Do té doby si hlášení uschovejte: všechno, co má obsahovat, dodají oba nástroje výše.