Przewodnik
Od pobrania pliku do działającego systemu, z podpowiedziami na wypadek, gdyby coś poszło nie tak.
Zanim zaczniesz
Dowolny 64-bitowy komputer z procesorem x86. Instalator wymaga co najmniej 1,7 GB pamięci RAM i 18 GB miejsca na dysku, a poniższe wartości to te, przy których system pracuje wygodnie.
| Minimum | Zalecane | |
|---|---|---|
| RAM | 2 GB | 4 GB |
| Dysk | 18 GB | 30 GB |
| Procesor | dowolny 64-bitowy procesor x86 | dwa rdzenie |
| Grafika | dowolna karta z buforem ramki | dowolny układ graficzny z ostatnich 15 lat |
Ten sam obraz obsługuje zarówno UEFI, jak i starszy BIOS. Secure Boot może zostać włączony.
Pobranie i sprawdzenie
Obraz to jeden plik, moonlightos-26.04.5-bengunur-amd64.iso, a obok niego leży drugi plik z sumą kontrolną SHA-256. Sprawdź sumę, zanim nagrasz obraz: po przerwanym pobieraniu pendrive wprawdzie się uruchamia, ale potem zawodzi w sposób trudny do rozszyfrowania.
W Linuksie i macOS, w katalogu z pobranym plikiem:
sha256sum -c moonlightos-26.04.5-bengunur-amd64.iso.sha256
W Windows, w programie PowerShell, porównaj wypisany skrót z tym z pliku .sha256:
Get-FileHash .\moonlightos-26.04.5-bengunur-amd64.iso -Algorithm SHA256
Get-Content .\moonlightos-26.04.5-bengunur-amd64.iso.sha256
Pierwsze polecenie wypisuje OK, drugie podaje skrót, który musi zgadzać się z zapisanym w pliku. Każdy inny wynik oznacza uszkodzony plik.
Nagranie obrazu na pendrive
Obraz jest hybrydowy, więc wystarczy zwykłe przepisanie bajt po bajcie: żaden specjalny program nie jest potrzebny, a ten sam pendrive uruchomi się na komputerze z UEFI i ze starszym BIOS-em. Wszystko, co jest na pendrivie, zostanie wymazane. Potrzebny jest nośnik o pojemności co najmniej 8 GB.
W Linuksie i macOS najpierw ustal nazwę urządzenia (lsblk w Linuksie, diskutil list w macOS), a potem:
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
Sprawdź nazwę urządzenia dwa razy: dd zapisuje tam, gdzie mu się każe.
Windows
Skorzystaj z programu Rufus w trybie obrazu DD, z balenaEtcher albo z Ventoy. Gdy Rufus zapyta, czy zapisać w trybie ISO czy DD, wybierz DD.
Uruchomienie z pendrive'a
Włącz komputer z włożonym pendrivem i otwórz jednorazowe menu uruchamiania (F12, F8, F2, Esc albo Del, zależnie od producenta) albo ustaw urządzenie USB jako pierwsze w kolejności uruchamiania w ustawieniach firmware'u. Secure Boot nie wymaga żadnych zmian.
Menu uruchamiania
- Try or Install MoonLightOS
Zwykły wpis. Uruchamia sesję live razem z animacją uruchamiania.
- Try or Install MoonLightOS (safe graphics)
To samo, z wyłączonym ustawianiem trybu graficznego w jądrze. Wybierz, gdy ekran pozostaje czarny albo obraz jest zniekształcony.
- MoonLightOS in RAM (needs 6 GB+)
Przepisuje cały system do pamięci, więc pendrive można wyjąć.
- Check this medium for defects
Sprawdza każdy plik na pendrivie wobec sum kontrolnych zapisanych podczas budowania.
- Verbose boot (no splash, logs to serial)
Wypisuje wszystkie komunikaty na ekranie i na pierwszym porcie szeregowym. To jedyny sposób, żeby odczytać uruchomienie, które kończy się błędem, zanim ekran zacznie działać.
- UEFI firmware settings
Uruchamia komputer ponownie, od razu w ustawieniach firmware'u.
Sesja live
Najpierw pojawia się kreator konfiguracji: wybierz język systemu, potwierdź układ klawiatury (możesz go sprawdzić, pisząc w polu testowym), połącz się z siecią Wi-Fi, a potem albo zwiedzaj, albo instaluj. Wszystko, co kreator ustawia, to prawdziwe ustawienia systemu, z których korzysta potem instalator.
Sesja live to kompletny, nieokrojony system: ten sam pulpit, te same narzędzia, te same panele ustawień. Użytkownik sesji live nazywa się moonlight i nie ma hasła. Dopóki nie uruchomisz instalatora, nic z tego, co tu robisz, nie dotyka dysku.
Aby zainstalować system, kliknij dwukrotnie ikonę Zainstaluj MoonLightOS na pulpicie albo otwórz kreator Konfiguracja jeszcze raz i wybierz instalację.
Instalacja
Instalatorem jest Calamares. Siedem ekranów, a potem przepisanie systemu na dysk.
- Witaj
Język instalatora i odnośniki do tego przewodnika.
- Lokalizacja
Region i strefa czasowa, a z nich wynikają ustawienia regionalne i format liczb.
- Klawiatura
Już ustawiona zgodnie z wyborem w kreatorze. Sprawdź ją, pisząc w polu testowym.
- Partycje
Domyślnie wybrane jest wymazanie dysku, które tworzy system plików ext4 z plikiem wymiany; dostępne są też btrfs, xfs i f2fs oraz ręczny podział dysku. Zaznacz szyfrowanie systemu, żeby włączyć szyfrowanie całego dysku LUKS2, i wybierz hasło: będziesz je wpisywać przy każdym uruchomieniu, a zapomnianego nie da się odzyskać. Na komputerze z UEFI powstaje partycja EFI o rozmiarze 512 MiB.
- Użytkownicy
Imię, nazwa komputera, nazwa użytkownika i hasło: co najmniej osiem znaków z dwóch klas znaków. Pierwsze konto administruje komputerem przez sudo, konto roota zostaje zablokowane, a automatycznego logowania nie ma, dopóki samodzielnie go nie włączysz.
- Podsumowanie
Wszystko, co instalator zamierza zrobić, w jednej liście. Nic nie zostało jeszcze zapisane.
- Instalacja
System trafia na dysk, instaluje się program rozruchowy (na komputerze z UEFI widoczny jako MoonLightOS na liście uruchamiania w firmware), a pozostałości sesji live są usuwane. Na koniec uruchom komputer ponownie i wyjmij pendrive.
Inne systemy operacyjne na tym komputerze os-prober wykrywa przy pierwszym uruchomieniu i dodaje je do menu GRUB-a.
Pierwsze uruchomienie
Świeżo zainstalowany system to dokładna kopia tego samego obrazu, z którego powstają wszystkie inne instalacje. Wszystko, co musi być niepowtarzalne dla tego komputera, powstaje przy pierwszym uruchomieniu, jeszcze przed ekranem logowania, a odpowiada za to usługa, która potem sama się wyłącza:
- nowy identyfikator komputera, żeby nikt podsłuchujący sieć nie powiązał dwóch instalacji;
- nowe klucze SSH, bo klucz wspólny dla wszystkich, którzy pobrali obraz, odbierałby sens weryfikacji hosta;
- menu GRUB-a, bo dopiero teraz widać prawdziwe dyski i inne systemy na nich;
- initramfs przebudowany pod rzeczywisty sprzęt, dzięki czemu jest mniejszy, a animacja uruchamiania pojawia się szybciej;
- pamięci podręczne ikon, czcionek i pulpitu, żeby pierwsze logowanie się nie wlokło;
- zapora sieciowa, włączona ponownie.
Wyniki jej pracy trafiają do /var/log/moonlight-firstboot.log. Potem pojawia się ekran logowania, a po pierwszym zalogowaniu okno Witaj.
Pierwsze kroki
- Wybierz wygląd
Ciemny albo jasny, od razu w oknie Witaj. Resztę znajdziesz w MoonLight Tweaks: układ pulpitu, tapetę, harmonogram i widżety.
- Sterowniki
Witaj → Sterowniki otwiera Menedżera sterowników. Na komputerze z kartą NVIDIA zamknięty sterownik leży na obrazie ISO, więc zadziała bez internetu.
- Programy
Sklep pokazuje razem snapy, repozytorium Ubuntu i Flathub. Thunderbird, Steam, Spotify i wiele innych wystarczy wyszukać.
- Odcisk palca i twarz
Witaj → Odcisk palca albo Ustawienia systemu → Twoje konto, żeby zarejestrować odcisk palca lub ustawić odblokowanie twarzą.
- Kopie zapasowe
Timeshift robi zaplanowane migawki systemu. Ustaw go, zanim będzie potrzebny.
- Bezpieczeństwo
Ustawienia systemu → Bezpieczeństwo pokazują, co chroni ten komputer i czego brakuje, a przy każdym wierszu czeka przycisk, który to naprawia.
- Pakiety dla programistów
Maszyny wirtualne, PHP z bazami danych i LaTeX: każdy to jedno kliknięcie w oknie Witaj, a instalacja idzie z już skonfigurowanego repozytorium.
- Programy z Windows
Otwórz raz Aplikacje Windows: przygotują Wine razem z DXVK, VKD3D, czcionkami i bibliotekami uruchomieniowymi. Potem pliki .exe po prostu się otwierają.
Maszyny wirtualne
VirtualBox
W programie VirtualBox trzeba zmienić trzy domyślne ustawienia, bo inaczej ten obraz wcale się nie uruchomi. Awaria wygląda na problem z pamięcią, ale nim nie jest: GRUB przełącza się w tryb graficzny, żeby narysować menu w motywie systemu, a przy domyślnych 16 MB pamięci wideo kończy się to komunikatem „Out of memory. You need to load the kernel first.”
| Typ | Linux / Ubuntu (64-bit) |
|---|---|
| Pamięć | 4096 MB (minimum 2048) |
| Procesory | 2 lub więcej |
| Pamięć wideo | 128 MB, czyli ustawienie, które naprawdę ma znaczenie |
| Akceleracja 3D | włączona |
| Kontroler grafiki | VMSVGA |
| Włącz EFI | wyłączone: BIOS działa bez zarzutu, a tutejsze EFI jest niedokończone |
| Pomiń nienadzorowaną instalację | zaznaczone |
| Dysk | 30 GB lub więcej |
Z wiersza polecenia:
VBoxManage modifyvm "MoonLightOS" \
--ostype Ubuntu24_LTS_64 --memory 4096 --cpus 4 \
--vram 128 --graphicscontroller vmsvga --accelerate3d on \
--boot1 dvd --boot2 disk
VirtualBox podpisuje nośnik jako „Ubuntu”, bo znajduje na nim katalog /casper. To tylko etykieta w jego interfejsie, sam nośnik przedstawia się jako MoonLightOS. Typ systemu gościa ustaw jednak na Ubuntu, bo dzięki temu program dobierze właściwy chipset i ustawienia grafiki.
QEMU
UEFI, czyli tak, jak uruchamia się większość komputerów. Najpierw utwórz zapisywalne zmienne firmware'u i dysk docelowy:
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
Z naprawdę włączonym Secure Boot, na firmware z wgranymi kluczami Microsoftu. Po uruchomieniu polecenie mokutil --sb-state zgłasza SecureBoot enabled, a to samo pokazują Ustawienia → O systemie:
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
Starszy BIOS: obraz ISO jest hybrydowy, więc ten sam plik uruchomi się także po staremu:
qemu-system-x86_64 -enable-kvm -m 2048 -cdrom moonlightos-26.04.5-bengunur-amd64.iso
Aby sprawdzić obietnicę 2 GB, uruchom maszynę bez akceleracji i z minimalną pamięcią, a potem zobacz w sesji live, czy zram pojawia się jako przestrzeń wymiany i czy obciążenie pamięci pozostaje niskie:
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
Dodatki gościa dla VirtualBox, QEMU/SPICE i VMware leżą już na obrazie i to właśnie dzięki nim rozdzielczość dopasowuje się do okna, a schowek jest wspólny.
Skróty klawiszowe
Pełna tabela znajduje się na stronie Funkcje. Warte zapamiętania już pierwszego dnia:
| Super | otwiera menu; Super+Spacja otwiera je z kursorem w polu wyszukiwania |
|---|---|
| Super+V | historia schowka |
| Super+N | notatki |
| Print / Shift+Print | zrzut całego ekranu lub wybranego obszaru; Shift+Super+5 otwiera panel zrzutów |
| Super+Lewo / Prawo | przyciąga okno do połowy ekranu |
| Ctrl+Góra | wszystkie okna; Ctrl+Dół to wszystkie pulpity |
| Super+L | blokuje ekran; Ctrl+Alt+T otwiera terminal, a Ctrl+Shift+Esc monitor systemu |
Rozwiązywanie problemów
- Po menu uruchamiania ekran pozostaje czarny
Wybierz wpis z bezpieczną grafiką. Jeśli system wstanie, zainstaluj go właśnie z tego wpisu, a potem włącz zamknięty sterownik w panelu Sterowniki.
- „Out of memory. You need to load the kernel first.”
To maszyna w VirtualBox z 16 MB pamięci wideo. Daj jej 128 MB i włącz akcelerację 3D, patrz Maszyny wirtualne powyżej.
- Pulpit działa ospale
Sprawdź w Ustawieniach → O systemie, co renderuje OpenGL. Przy renderowaniu programowym animacje wyłączają się same przy logowaniu, a ręcznie zrobisz to w Tweaks → Wydajność.
- Pendrive się uruchamia, a potem zawodzi bez wyraźnego powodu
Uruchom z menu wpis Check this medium for defects i sprawdź sumę kontrolną SHA-256 pobranego pliku.
- Brak Wi-Fi
Otwórz panel Sterowniki: sterownik Broadcom leży na obrazie. Przy innych kartach menu sieci pokaże to, co wykryło jądro.
- Czytnik odcisków palców nie jest wykrywany
Otwórz Odcisk palca. Program podaje producenta czytnika, mówi, czy jest obsługiwany bezpośrednio, czy porównuje odcisk w układzie, czy wymaga zamkniętego pliku od producenta, i wyjaśnia, co można zrobić.
- Zaglądanie do dzienników
Na co narzekało uruchamianie, dziennik menedżera logowania, dziennik pierwszego uruchomienia i nazwa aktywnego motywu uruchamiania:
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 zgłoszenia błędu: O systemie → Kopiuj raport przenosi wydanie i sprzęt do schowka, a moonlight-selftest wypisuje, co naprawdę dzieje się na pulpicie.
moonlight-selftest | less
Zbuduj samodzielnie
Cała dystrybucja to jedno repozytorium: grafika powstaje z jednego logo źródłowego, motywy z jednej palety barw, a jeden skrypt składa to wszystko w rozruchowy obraz ISO, który działa z Secure Boot. Potrzebny jest Docker (w dowolnym systemie, bo budowanie idzie w kontenerze) i około 25 GB wolnego miejsca.
./build.sh | wszystko: podstawa → dostosowanie → kompresja → ISO |
./build.sh rootfs | zatrzymaj się po dostosowaniu systemu |
./build.sh image | przepakuj istniejący główny system plików w nowy obraz ISO |
./build.sh finish | tylko programy rozruchowe i ISO, na gotowym squashfs |
./build.sh shell | powłoka w środowisku budowania |
./build.sh clean | usuń wolumin roboczy |
Obraz ISO trafia do katalogu out/, a obok niego suma kontrolna SHA-256. W Windows uruchom budowanie z Git Bash albo skorzystaj z build.ps1.
Jak zorganizowane jest budowanie
build.sh | punkt wejścia na komputerze; całą pracę wykonuje w kontenerze |
|---|---|
build/Dockerfile.builder | środowisko budowania, przypięte do docelowego wydania |
build/mkiso.sh | podstawa, wyciągnięcie jądra, squashfs, programy rozruchowe, ISO |
build/inchroot.sh | wszystko, co dzieje się w chroocie, w czternastu etapach |
config/moonlight.conf | wszystkie napisy, które definiują wydanie |
packages/*.list | co trafia na obraz i co zostaje usunięte |
rootfs/ | pliki kopiowane do systemu bez zmian, razem z programami MoonLight |
brand/source/ | logo źródłowe i tapety; katalog brand/out/ powstaje automatycznie |
tools/gen-branding.py | logo źródłowe → animacja uruchamiania, GRUB, ekran logowania, ikony |
tools/gen-themes.py | jedna paleta → oba kompletne motywy |
po/ | tłumaczenia programów MoonLight |
installer/ | konfiguracja i oprawa graficzna instalatora Calamares |
Zanim powstanie obraz ISO, budowanie przeprowadza w nim ponad 120 obowiązkowych testów: jądro, podpisany shim, oba motywy, każdy program MoonTools, kodeki, sterowniki Wi-Fi, tłumaczenia oraz to, czy odblokowanie twarzą i hasło awaryjne są wyłączone. Jeden nieudany test zatrzymuje budowanie. Przestrzeń robocza to wolumin Dockera, a nie podmontowany katalog z komputera, bo w Windows i macOS podmontowanie nie zachowuje właścicieli plików, dowiązań symbolicznych ani plików urządzeń.
Dostosowanie
- Tożsamość wydania
W pliku config/moonlight.conf są wszystkie napisy, które definiują dystrybucję.
- Grafika
Podmień logo źródłowe albo tapetę, uruchom ponownie tools/gen-branding.py i od nowa powstaną animacja uruchamiania, GRUB, ekran logowania, ikony oraz grafika instalatora.
- Kolory
Skrypt tools/gen-themes.py ma jedną paletę ciemną i jedną jasną, a z tych samych reguł tworzy oba kompletne motywy.
- Instalowane pakiety
Pliki packages/*.list, jeden pakiet w wierszu, instalowane w kolejności nazw plików; w 99-purge.list jest to, co zostaje potem usunięte.
- Domyślne ustawienia pulpitu
Katalog rootfs/etc/dconf/db/moonlight.d/, w formacie plików kluczy dconf. To ustawienia domyślne, a nie blokady: każde z nich użytkownik może zmienić.
- Szybkie przebudowanie
Po zmianie w rootfs/ albo na listach pakietów build.sh rootfs powtarza etap chroota na zapisanej podstawie, a build.sh image przepakowuje obraz ISO; build.sh finish przydaje się przy pracy nad menu uruchamiania.
Pomoc i zgłaszanie błędów
Przydatne zgłoszenie mówi, czego się spodziewano, co się stało zamiast tego i na jakim komputerze. Trzecią część MoonLightOS ułatwia:
- O systemie MoonLightOS → Kopiuj raport przenosi do schowka, jako tekst, wydanie, sprzęt, renderer grafiki i stan Secure Boot.
- moonlight-selftest wypisuje aktualne ustawienia motywu, informację, czy arkusz stylów powłoki wczytał się poprawnie, który sterownik graficzny działa i które usługi się nie uruchomiły.
- Przy problemie z uruchamianiem wpis Verbose boot wypisuje wszystkie komunikaty na ekran i na pierwszy port szeregowy.
- Przy instalatorze: plik /var/log/moonlight-firstboot.log w zainstalowanym systemie oraz journalctl -b -p warning.
Gdzie to wysłać
Publiczny system zgłoszeń i kanał pomocy ogłosimy w tym miejscu. Do tego czasu zachowaj zgłoszenie: wszystko, co powinno zawierać, dają dwa opisane wyżej narzędzia.