MoonLightOS

Opas

Latauksesta toimivaan asennukseen, ja mitä tehdä kun jokin menee pieleen.

Ennen kuin aloitat

Mikä tahansa 64-bittinen x86-kone. Asennusohjelma vaatii vähintään 1,7 gigatavua muistia ja 18 gigatavua levytilaa; alla olevat arvot ovat ne, joilla järjestelmä toimii mukavasti.

VähintäänSuositus
Muisti2 Gt4 Gt
Levy18 Gt30 Gt
Suoritinmikä tahansa 64-bittinen x86-suoritinkaksiytiminen
Näytönohjainmikä tahansa näytönohjain, jossa on kehyspuskurimikä tahansa viidentoista viime vuoden näytönohjain

Sama levykuva tukee sekä UEFIä että vanhaa BIOSia. Secure Boot voi jäädä käyttöön.

Lataus ja tarkistus

Levykuva on yksi tiedosto, moonlightos-26.04.5-bengunur-amd64.iso, ja sen vieressä toinen tiedosto sisältää SHA-256-tarkistussumman. Tarkista summa ennen kuin kirjoitat levykuvan: kesken jäänyt lataus tuottaa tikun, joka käynnistyy ja epäonnistuu sitten hämmentävillä tavoilla.

Linuxissa tai macOS:ssä siinä kansiossa, johon latasit tiedoston:

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

Windowsissa PowerShellissä: vertaa tulostettua tiivistettä .sha256-tiedoston tiivisteeseen:

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

Ensimmäinen komento tulostaa OK; toinen tulostaa tiivisteen, jonka on vastattava tiedostossa olevaa. Mikä tahansa muu tarkoittaa, että lataus on vioittunut.

Lataa 26.04.5

Levykuvan kirjoitus USB-tikulle

Levykuva on hybridi-ISO, joten pelkkä lohkokopio riittää: erityistä työkalua ei tarvita, ja sama tikku käynnistyy sekä UEFI- että BIOS-koneissa. Kaikki tikulla oleva pyyhkiytyy. Tarvitset vähintään 8 gigatavun tikun.

Linuxissa tai macOS:ssä: etsi ensin laitteen nimi (lsblk Linuxissa, diskutil list macOS:ssä) ja sitten:

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

Tarkista laitteen nimi kahdesti: dd kirjoittaa sille laitteelle, joka sille annetaan.

Windows

Käytä Rufusta DD-tilassa, balenaEtcheriä tai Ventoyta. Jos Rufus kysyy kirjoitetaanko ISO- vai DD-tilassa, valitse DD.

Käynnistys USB-tikulta

Käynnistä kone tikku paikallaan ja avaa kertaluonteinen käynnistysvalikko (F12, F8, F2, Esc tai Del, valmistajasta riippuen), tai aseta USB-laite ensimmäiseksi käynnistyslaitteeksi laiteohjelmiston asetuksista. Secure Bootia ei tarvitse muuttaa.

Käynnistysvalikko

  • Try or Install MoonLightOS

    Tavallinen valinta. Käynnistää live-istunnon käynnistysanimaatioineen.

  • Try or Install MoonLightOS (safe graphics)

    Sama, mutta ytimen näyttötilan asetus pois käytöstä. Käytä tätä, jos näyttö jää mustaksi tai kuva on sekaisin.

  • MoonLightOS in RAM (needs 6 GB+)

    Kopioi koko järjestelmän muistiin, jolloin tikun voi irrottaa.

  • Check this medium for defects

    Tarkistaa jokaisen tikulla olevan tiedoston käännösvaiheessa tallennettuja tarkistussummia vasten.

  • Verbose boot (no splash, logs to serial)

    Näyttää jokaisen viestin ruudulla ja ensimmäisessä sarjaportissa; ainoa tapa lukea käynnistys, joka epäonnistuu ennen kuin näyttö on käytettävissä.

  • UEFI firmware settings

    Käynnistää uudelleen laiteohjelmiston asetuksiin.

Kuvakaappaus MoonLightOS:stä
Sitten tulee käynnistysanimaatio: logo pysyy paikallaan, kehä sykkii ja edistymispalkki täyttyy.

Live-istunto

Ensimmäisenä näet alkuasetukset: valitse järjestelmän kieli, vahvista näppäimistöasettelu (kokeile sitä kirjoittamalla kenttään), yhdistä Wi-Fi-verkkoon, ja sitten joko tutustu tai asenna. Kaikki mitä se asettaa on aitoa järjestelmän asetusta, ja asennusohjelma käyttää samoja valintoja.

Kuvakaappaus MoonLightOS:stä

Live-istunto on koko järjestelmä muuttamattomana: sama työpöytä, samat työkalut, samat asetussivut. Live-käyttäjän nimi on moonlight eikä sillä ole salasanaa. Mikään täällä tekemäsi ei kosketa levyä ennen kuin käynnistät asennusohjelman.

Asenna kaksoisnapsauttamalla työpöydän kohtaa Install MoonLightOS, tai avaa alkuasetukset uudelleen ja valitse asennus.

Asennus

Asennusohjelma on Calamares. Seitsemän sivua, ja sitten kopiointi levylle.

  1. Tervetuloa

    Asennusohjelman kieli ja linkit tähän oppaaseen.

  2. Sijainti

    Alueesi ja aikavyöhykkeesi; maa-asetukset ja lukumuodot seuraavat niistä.

  3. Näppäimistö

    Valmiiksi se, minkä valitsit alkuasetuksissa. Kokeile kirjoittamalla kenttään.

  4. Osiot

    Levyn tyhjennys on oletus ja luo ext4-tiedostojärjestelmän sivutustiedostoineen; tarjolla ovat myös btrfs, xfs ja f2fs sekä osioiden käsinmäärittely. Valitse järjestelmän salaus, jos haluat koko levyn LUKS2-salauksen, ja valitse salalause: kirjoitat sen joka käynnistyksellä, eikä sitä voi palauttaa jos unohdat sen. UEFI-koneeseen luodaan 512 mebitavun EFI-osio.

  5. Käyttäjät

    Nimesi, koneen nimi, käyttäjätunnus ja vähintään kahdeksan merkin salasana kahdesta merkkiluokasta. Ensimmäinen tili ylläpitää konetta sudon kautta; root-tili pysyy lukittuna, eikä automaattista kirjautumista ole ellet ota sitä käyttöön.

  6. Yhteenveto

    Kaikki, mitä asennusohjelma on tekemässä, yhtenä listana. Mitään ei ole vielä kirjoitettu.

  7. Asennus

    Järjestelmä kopioidaan levylle, käynnistyslatain asennetaan (UEFI-koneessa nimellä MoonLightOS laiteohjelmiston käynnistysluetteloon), ja live-istunnon jäänteet poistetaan. Käynnistä sitten uudelleen ja irrota tikku.

Koneen muut käyttöjärjestelmät tunnistaa os-prober ensimmäisellä käynnistyksellä ja lisää ne GRUBin valikkoon.

Ensimmäinen käynnistys

Asennettu järjestelmä alkaa tarkkana kopiona siitä levykuvasta, josta jokainen muukin asennus tulee. Kaikki, minkä on oltava tälle koneelle ainutkertaista, luodaan ensimmäisellä käynnistyksellä ennen kirjautumisnäkymää, palvelulla joka sen jälkeen poistaa itsensä käytöstä:

  • uusi koneen tunniste, jottei kukaan verkkoa tarkkaileva voi yhdistää kahta asennusta toisiinsa;
  • uudet SSH-avaimet, koska kaikkien levykuvan ladanneiden kesken jaettu avain tekisi koneen varmentamisesta turhaa;
  • GRUBin valikko, nyt kun oikeat levyt ja niiden muut käyttöjärjestelmät ovat näkyvissä;
  • initramfs uudelleen rakennettuna sille laitteistolle, joka koneessa oikeasti on, jolloin se on pienempi ja käynnistysanimaatio tulee näkyviin aiemmin;
  • kuvake-, fontti- ja työpöytävälimuistit, jottei ensimmäinen kirjautuminen ole hidas;
  • palomuuri, otettuna taas käyttöön.

Sen tuloste kirjoitetaan tiedostoon /var/log/moonlight-firstboot.log. Sitten tulee kirjautumisnäkymä, ja ensimmäisen kirjautumisen jälkeen Tervetuloa-ikkuna.

Kuvakaappaus MoonLightOS:stä

Ensiaskeleet

  • Valitse ulkoasu

    Tumma tai vaalea suoraan Tervetuloa-sovelluksessa. Kaikki muu on MoonLight Tweaksissa: työpöydän asettelu, taustakuva, aikataulu ja pienoisohjelmat.

  • Ajurit

    Tervetuloa → Ajurit avaa ajurien hallinnan. NVIDIA-näytönohjaimen koneessa suljettu ajuri on levykuvassa, joten se toimii ilman verkkoyhteyttä.

  • Ohjelmistot

    Kauppa listaa snapit, Ubuntun pakettivaraston ja Flathubin yhdessä. Thunderbird, Steam, Spotify ja moni muu on yhden haun päässä.

  • Sormenjälki ja kasvot

    Tervetuloa → Sormenjälki, tai järjestelmäasetukset → Oma tili, sormenjäljen tallennukseen tai kasvontunnistuksen käyttöönottoon.

  • Varmuuskopiot

    Timeshift ottaa ajastettuja tilannevedoksia järjestelmästä. Ota se käyttöön ennen kuin tarvitset sitä.

  • Tietoturva

    Järjestelmäasetukset → Tietoturva näyttää, mikä suojaa tätä konetta ja mikä ei, ja jokaisella rivillä on painike joka korjaa asian.

  • Kehittäjäpaketit

    Virtuaalikoneet, PHP tietokantoineen ja LaTeX: kukin yhdellä napsautuksella Tervetuloa-sovelluksesta, asennettuna valmiiksi määritellystä pakettivarastosta.

  • Windows-ohjelmat

    Avaa Windows-sovellukset kerran: se valmistelee Winen, DXVK:n, VKD3D:n, fontit ja ajonaikaiset kirjastot. Sen jälkeen .exe-tiedostot vain aukeavat.

Virtuaalikoneet

VirtualBox

VirtualBoxissa on muutettava kolme asetusta oletuksistaan, muuten se ei käynnistä tätä levykuvaa lainkaan. Vika näyttää muistiongelmalta, mutta ei ole sitä: GRUB vaihtaa grafiikkatilaan piirtääkseen teemoitetun valikon, ja VirtualBoxin oletuksena olevalla 16 megatavun näyttömuistilla se epäonnistuu viestiin ”Out of memory. You need to load the kernel first.”

TyyppiLinux / Ubuntu (64-bit)
Muisti4096 Mt (vähintään 2048)
Suorittimet2 tai enemmän
Näyttömuisti128 Mt, se asetus jolla oikeasti on merkitystä
3D-kiihdytyskäytössä
NäytönohjainVMSVGA
EFI käyttöönpois: BIOS toimii hyvin, ja VirtualBoxin EFI on keskeneräinen
Ohita valvomaton asennusvalittuna
Levyvähintään 30 Gt

Komentoriviltä:

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

VirtualBox merkitsee tietovälineen nimellä ”Ubuntu”, koska se löytää siltä /casper-kansion. Se on vain nimilappu VirtualBoxin käyttöliittymässä; tietoväline itse tunnistautuu MoonLightOS:ksi. Aseta vieraan tyypiksi silti Ubuntu, koska se valitsee oikean piirisarjan ja oikeat grafiikka-asetukset.

QEMU

UEFI, kuten useimmat koneet käynnistyvät. Luo ensin kirjoitettavat laiteohjelmiston muuttujat ja kohdelevy:

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

Secure Boot oikeasti käytössä, laiteohjelmistolla johon Microsoftin avaimet on rekisteröity. Käynnistyksen jälkeen mokutil --sb-state ilmoittaa SecureBoot enabled, samoin Asetukset → Tietoja:

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

Vanha BIOS: ISO on hybridi, joten sama tiedosto käynnistyy myös vanhalla tavalla:

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

Kahden gigatavun väitteen voi testata käynnistämällä ilman kiihdytystä ja vähimmäismuistilla, ja tarkistamalla sitten live-istunnossa, että zram näkyy sivutuksena ja että muistipaine pysyy matalana:

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

Vieraslisäosat VirtualBoxille, QEMU/SPICElle ja VMwarelle ovat jo levykuvassa, ja juuri ne tuovat näytön mukautumisen ja yhteisen leikepöydän.

Näppäinyhdistelmät

Koko taulukko on Ominaisuudet-sivulla. Nämä kannattaa opetella heti ensimmäisenä päivänä:

Superavaa valikon; Super+Space avaa sen kohdistin hakukentässä
Super+Vleikepöydän historia
Super+Nmuistiinpanot
Print / Shift+Printkuvakaappaus näytöstä / alueesta; Shift+Super+5 avaa kaappauspaneelin
Super+Left / Rightkiinnittää ikkunan puoleen näyttöä
Ctrl+Upkaikki ikkunat; Ctrl+Down, kaikki työpöydät
Super+Llukitsee näytön; Ctrl+Alt+T avaa päätteen; Ctrl+Shift+Esc avaa järjestelmänvalvonnan

Koko taulukko

Ongelmatilanteet

  • Näyttö jää mustaksi käynnistysvalikon jälkeen

    Valitse turvallisen grafiikan vaihtoehto. Jos se käynnistyy, asenna sieltä ja ota sitten suljettu ajuri käyttöön Ajurit-sivulta.

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

    VirtualBox-kone, jossa on 16 megatavua näyttömuistia. Anna sille 128 megatavua ja ota 3D-kiihdytys käyttöön; katso Virtuaalikoneet yllä.

  • Työpöytä tuntuu hitaalta

    Tarkista OpenGL-piirtäjä kohdasta Asetukset → Tietoja. Ohjelmistopiirrossa animaatiot kytketään pois itsestään kirjauduttaessa; Tweaks → Suorituskyky kytkee ne pois käsin.

  • Tikku käynnistyy mutta epäonnistuu sitten hämmentävillä tavoilla

    Aja käynnistysvalikosta tietovälineen tarkistus ja varmista latauksen SHA-256-tarkistussumma.

  • Wi-Fi ei toimi

    Avaa Ajurit-sivu: Broadcomin ajuri on mukana levykuvassa. Muiden sovittimien osalta verkkovalikko listaa sen, minkä ydin tunnisti.

  • Sormenjälkilukijaa ei tunnisteta

    Avaa Sormenjälki. Se kertoo anturin valmistajan, sen onko kyseessä natiivi, sirulla vertaileva vai valmistajan binääriä käyttävä anturi, ja selittää mitä asialle voi tehdä.

  • Lokien lukeminen

    Mistä käynnistys valitti, kirjautumisen hallinnan loki, ensimmäisen käynnistyksen loki ja käytössä olevan käynnistysteeman nimi:

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

Virheraporttia varten Tietoja → Kopioi raportti vie julkaisun ja laitteiston leikepöydälle, ja moonlight-selftest tulostaa mitä työpöytä oikeasti tekee.

moonlight-selftest | less

Käännä itse

Koko jakelu on yksi repositorio: grafiikka johdetaan yhdestä lähdelogosta, teemat luodaan yhdestä paletista, ja yksi skripti muuttaa kaiken käynnistyväksi ISO-levykuvaksi, joka toimii Secure Bootin kanssa. Tarvitset Dockerin (millä tahansa käyttöjärjestelmällä, koska käännös ajetaan kontissa) ja noin 25 gigatavua vapaata tilaa.

./build.shkaikki: bootstrap → muokkaus → pakkaus → ISO
./build.sh rootfspysähtyy kun järjestelmä on muokattu
./build.sh imagepaketoi olemassa olevan juuritiedostojärjestelmän uudeksi ISO-levykuvaksi
./build.sh finishvain käynnistyslataimet ja ISO, squashfs uudelleenkäytettynä
./build.sh shellkuori käännösympäristön sisällä
./build.sh cleanpoistaa työtilan

ISO kirjoitetaan hakemistoon out/, ja sen viereen tulee SHA-256-tarkistussumma. Windowsissa aja se Git Bashista tai käytä build.ps1-skriptiä.

Miten käännös on järjestetty

build.shaloituskohta omassa koneessasi; ajaa kaiken kontissa
build/Dockerfile.builderkäännösympäristö, kiinnitettynä kohdejulkaisuun
build/mkiso.shbootstrap, ytimen poiminta, squashfs, käynnistyslataimet, ISO
build/inchroot.shkaikki chrootin sisällä tapahtuva, neljässätoista vaiheessa
config/moonlight.confjokainen teksti, joka määrittelee julkaisun
packages/*.listmitä levykuvaan tulee ja mitä poistetaan
rootfs/tiedostot, jotka kopioidaan sellaisinaan järjestelmään, mukaan lukien MoonLight-sovellukset
brand/source/lähdelogo ja taustakuvat; brand/out/ on luotu
tools/gen-branding.pylähdelogo → käynnistysanimaatio, GRUB, kirjautumisnäkymä, kuvakkeet
tools/gen-themes.pyyksi paletti → molemmat täydet teemat
po/MoonLight-sovellusten käännökset
installer/Calamaresin asetukset ja ulkoasu

Ennen ISO-levykuvan luontia käännös ajaa levykuvan sisällä yli 120 pakollista tarkistusta: ytimen, allekirjoitetun shimin, molemmat teemat, jokaisen MoonTool-sovelluksen, koodekit, Wi-Fi-ajurit, käännökset, sekä sen että kasvontunnistus ja hätäsalasana ovat pois käytöstä. Jos yksikin tarkistus epäonnistuu, käännös pysähtyy. Työtila on Docker-taltio eikä bind mount, koska tiedostojen omistajuus, symboliset linkit ja laitetiedostot eivät säily bind mountissa Windowsissa tai macOS:ssä.

Muokkaus

  • Julkaisun tunnistetiedot

    config/moonlight.conf sisältää jokaisen tekstin, joka määrittelee jakelun.

  • Grafiikka

    Korvaa lähdelogo tai taustakuva, aja tools/gen-branding.py uudelleen, niin käynnistysanimaatio, GRUB, kirjautumisnäkymä, kuvakkeet ja asennusohjelman grafiikka luodaan kaikki uudelleen.

  • Värit

    tools/gen-themes.py sisältää yhden tumman ja yhden vaalean paletin ja luo molemmat täydet teemat samoilla säännöillä.

  • Asennettavat paketit

    packages/*.list, yksi paketti riviä kohden, asennetaan tiedostonimien järjestyksessä; 99-purge.list luettelee sen, mikä poistetaan jälkikäteen.

  • Työpöydän oletukset

    rootfs/etc/dconf/db/moonlight.d/, dconfin keyfile-muodossa. Nämä ovat oletuksia, eivät lukkoja: käyttäjä voi muuttaa mitä tahansa niistä.

  • Nopea uudelleenkäännös

    Kun rootfs/ tai pakettilistat muuttuvat, build.sh rootfs toistaa chroot-vaiheen välimuistissa olevan pohjan päälle ja build.sh image paketoi ISO:n uudelleen; build.sh finish on käynnistysvalikon työstämiseen.

Avun saaminen ja virheiden ilmoittaminen

Hyödyllinen raportti kertoo mitä odotit, mitä tapahtui sen sijaan, ja millä koneella. MoonLightOS tekee kolmannesta osasta helpon:

  • Tietoja MoonLightOS:stä → Kopioi raportti vie julkaisun, laitteiston, grafiikkapiirtäjän ja Secure Bootin tilan leikepöydälle tekstinä.
  • moonlight-selftest tulostaa käytössä olevat teema-asetukset, latautuiko kuoren tyylitiedosto oikein, mikä näytönohjaimen ajuri on käytössä ja mitkä palvelut epäonnistuivat.
  • Käynnistysongelmassa Verbose boot -valinta kirjoittaa jokaisen viestin ruudulle ja ensimmäiseen sarjaporttiin.
  • Asennusohjelman osalta /var/log/moonlight-firstboot.log asennetussa järjestelmässä, ja journalctl -b -p warning.

Minne lähettää

Julkinen vikaseuranta ja tukikanava ilmoitetaan täällä. Siihen asti säilytä raportti: kaikki mitä sen pitää sisältää tulee kahdesta yllä mainitusta työkalusta.