MoonLightOS

Посібник

Від завантаження до робочої системи — і що робити, коли щось пішло не так.

Перед початком

Будь-який 64-бітний комп’ютер x86. Встановлювачу потрібно щонайменше 1,7 ГБ оперативної пам’яті та 18 ГБ на диску; значення нижче — ті, з якими системі працюється вільно.

МінімумРекомендовано
Оперативна пам’ять2 ГБ4 ГБ
Диск18 ГБ30 ГБ
Процесорбудь-який 64-бітний x86двоядерний
Графікабудь-який графічний адаптер із кадровим буферомбудь-який GPU за останні 15 років

Той самий образ працює і на UEFI, і на давньому BIOS. Secure Boot можна не вимикати.

Завантаження та перевірка

Образ — це один файл, moonlightos-26.04.5-bengunur-amd64.iso, а поряд із ним лежить другий файл із його контрольною сумою SHA-256. Перевірте суму, перш ніж записувати образ: неповне завантаження дає флешку, яка запускається, а потім ламається незрозумілим чином.

У Linux або macOS — у теці, куди ви завантажили файл:

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

У Windows, у PowerShell, порівняйте виведений хеш із тим, що у файлі .sha256:

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

Перша команда виводить OK; друга виводить хеш, який має збігтися з тим, що у файлі. Будь-що інше означає, що завантаження зіпсоване.

Завантажити 26.04.5

Запис образу на флешку

Образ — гібридний ISO, тому достатньо простого побайтового копіювання: жодних особливих програм не потрібно, і та сама флешка запускається і на UEFI, і на BIOS. Усе, що було на флешці, буде стерто. Потрібна флешка щонайменше на 8 ГБ.

У Linux або macOS спершу дізнайтеся назву пристрою (lsblk у Linux, diskutil list у macOS), а потім:

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

Двічі перевірте назву пристрою: dd пише на той пристрій, який йому назвали.

Windows

Скористайтеся Rufus у режимі DD-образу, balenaEtcher або Ventoy. Якщо Rufus запитає, записувати в режимі ISO чи DD, виберіть DD.

Завантаження з флешки

Увімкніть комп’ютер із вставленою флешкою й відкрийте одноразове меню завантаження (F12, F8, F2, Esc або Del — залежно від виробника) чи поставте USB-пристрій першим у налаштуваннях мікропрограми. Secure Boot змінювати не потрібно.

Меню завантаження

  • Try or Install MoonLightOS

    Звичайний пункт. Запускає живий сеанс з анімацією запуску.

  • Try or Install MoonLightOS (safe graphics)

    Те саме, але з вимкненим перемиканням режимів у ядрі. Беріть його, якщо екран залишається чорним або зображення сипеться.

  • MoonLightOS in RAM (needs 6 GB+)

    Копіює всю систему в пам’ять, тому флешку можна вийняти.

  • Check this medium for defects

    Зіставляє кожен файл на флешці з контрольними сумами, записаними під час збірки.

  • Verbose boot (no splash, logs to serial)

    Показує кожне повідомлення на екрані й у першому послідовному порту — єдиний спосіб прочитати запуск, який падає ще до появи зображення.

  • UEFI firmware settings

    Перезавантажує комп’ютер у налаштування мікропрограми.

Знімок екрана MoonLightOS
Далі з’являється анімація запуску: логотип стоїть нерухомо, сяйво пульсує, а смуга поступу заповнюється.

Живий сеанс

Перше, що ви побачите, — це «Початкове налаштування»: виберіть мову системи, підтвердьте розкладку клавіатури (наберіть щось у полі, щоб перевірити), під’єднайтеся до Wi-Fi, а потім або роздивляйтеся систему, або встановлюйте її. Усе, що тут задається, — справжні системні налаштування, і встановлювач спирається на ті самі відповіді.

Знімок екрана MoonLightOS

Живий сеанс — це повна, нічим не урізана система: той самий робочий стіл, ті самі програми, ті самі сторінки налаштувань. Користувача живого сеансу звати moonlight, пароля в нього немає. Ніщо з того, що ви тут робите, не торкається диска, поки ви не запустите встановлювач.

Щоб встановити систему, двічі клацніть «Встановити MoonLightOS» на робочому столі або знову відкрийте «Початкове налаштування» й виберіть встановлення.

Встановлення

Встановлювач — Calamares. Сім сторінок, а потім копіювання на диск.

  1. Вітання

    Мова встановлювача й посилання на цей посібник.

  2. Розташування

    Ваш регіон і часовий пояс; локаль і формати чисел беруться з них.

  3. Клавіатура

    Уже стоїть те, що ви вибрали в помічнику. Наберіть щось у полі, щоб перевірити.

  4. Розділи

    Типово вибрано «Стерти диск»: створюється файлова система ext4 із файлом підкачки; доступні також btrfs, xfs і f2fs, а ще розбиття вручну. Позначте «Зашифрувати систему», щоб отримати шифрування всього диска LUKS2, і виберіть пароль: його доведеться вводити при кожному запуску, і відновити його, якщо забудете, неможливо. На комп’ютері з UEFI створюється розділ EFI на 512 МіБ.

  5. Користувачі

    Ваше ім’я, назва комп’ютера, ім’я користувача й пароль щонайменше з восьми символів двох різних класів. Перший обліковий запис адмініструє комп’ютер через sudo; root залишається заблокованим, а автоматичного входу немає, поки ви його не ввімкнете.

  6. Підсумок

    Усе, що встановлювач зараз зробить, одним списком. Нічого ще не записано.

  7. Встановлення

    Система копіюється на диск, встановлюється завантажувач (на UEFI — як MoonLightOS у списку завантаження мікропрограми), а залишки живого сеансу видаляються. Далі перезавантажтеся й вийміть флешку.

При першому запуску os-prober знаходить інші операційні системи на комп’ютері й додає їх до меню GRUB.

Перший запуск

Щойно встановлена система — точна копія того самого образу, з якого постає кожне інше встановлення. Усе, що має бути унікальним саме для цього комп’ютера, створюється при першому запуску, ще до появи екрана входу, службою, яка потім сама себе вимикає:

  • новий ідентифікатор машини, щоб жоден спостерігач у мережі не пов’язав два встановлення;
  • нові ключі хоста SSH, бо ключ, спільний для всіх, хто завантажив образ, зробив би перевірку хоста безглуздою;
  • меню GRUB — тепер, коли видно справжні диски й інші операційні системи на них;
  • initramfs, перезібраний під наявне обладнання, тому він менший, а анімація запуску з’являється швидше;
  • кеші піктограм, шрифтів і робочого стола, щоб перший вхід не був повільним;
  • і брандмауер, знову ввімкнений.

Її вивід потрапляє до /var/log/moonlight-firstboot.log. Потім з’являється екран входу, а після першого входу — вікно «Вітаємо».

Знімок екрана MoonLightOS

Перші кроки

  • Виберіть оформлення

    Темне чи світле — просто у «Вітаємо». Решта в MoonLight Tweaks: розкладка робочого стола, шпалери, розклад і віджети.

  • Драйвери

    «Вітаємо» → «Драйвери» відкриває менеджер драйверів. На комп’ютері з картою NVIDIA закритий драйвер лежить на образі ISO, тому працює й без інтернету.

  • Програми

    Магазин показує разом snap, репозиторій Ubuntu і Flathub. Thunderbird, Steam, Spotify і багато інших — за одним пошуком.

  • Відбиток і обличчя

    «Вітаємо» → «Відбиток пальця» або «Системні налаштування» → «Ваш обліковий запис», щоб зареєструвати відбиток чи налаштувати розблокування обличчям.

  • Резервні копії

    Timeshift робить знімки системи за розкладом. Налаштуйте його, поки він вам не знадобився.

  • Безпека

    «Системні налаштування» → «Безпека» показує, що захищає цей комп’ютер, а що ні, і в кожному рядку — кнопка, яка це виправляє.

  • Набори для розробника

    Віртуальні машини, PHP з базами даних і LaTeX: по одному натисканню у «Вітаємо», встановлюються з уже налаштованого репозиторію.

  • Програми з Windows

    Відкрийте «Програми Windows» один раз: вони готують Wine з DXVK, VKD3D, шрифтами та бібліотеками. Після цього файли .exe просто відкриваються.

Віртуальні машини

VirtualBox

У VirtualBox треба змінити три типові налаштування, інакше цей образ не запуститься взагалі. Збій виглядає як проблема з пам’яттю, але це не так: GRUB перемикається в графічний режим, щоб намалювати оформлене меню, а з типовими для VirtualBox 16 МБ відеопам’яті це не вдається й з’являється повідомлення «Out of memory. You need to load the kernel first.»

ТипLinux / Ubuntu (64-bit)
Пам’ять4096 МБ (мінімум 2048)
Процесори2 або більше
Відеопам’ять128 МБ — саме це налаштування й має значення
3D-прискоренняувімкнено
Графічний контролерVMSVGA
Увімкнути EFIвимкнено: BIOS працює добре, а EFI у VirtualBox неповний
Пропустити автоматичне встановленняпозначено
Диск30 ГБ або більше

З командного рядка:

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

VirtualBox позначає носій як «Ubuntu», бо знаходить на ньому теку /casper. Це лише напис в інтерфейсі VirtualBox — сам носій ідентифікує себе як MoonLightOS. Тип гостьової системи все одно поставте Ubuntu: від цього залежать правильний чипсет і типові налаштування графіки.

QEMU

UEFI — так запускається більшість комп’ютерів. Спершу створіть записувані змінні мікропрограми та цільовий диск:

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, на мікропрограмі із зареєстрованими ключами Microsoft. Після запуску mokutil --sb-state повідомляє SecureBoot enabled — те саме покаже «Налаштування» → «Про MoonLightOS»:

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

Давній BIOS: образ гібридний, тому той самий файл запускається й по-старому:

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

Щоб перевірити заявлені 2 ГБ, запустіть без прискорення й із мінімумом пам’яті, а потім перевірте в живому сеансі, що zram з’явився як підкачка й тиск на пам’ять залишається низьким:

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

Гостьові доповнення для VirtualBox, QEMU/SPICE і VMware уже є на образі — саме вони дають зміну розміру екрана й спільний буфер обміну.

Клавіатурні скорочення

Повна таблиця — на сторінці можливостей. Ось ті, які варто вивчити першого ж дня:

Superвідкриває меню; Super+Space відкриває його з курсором у полі пошуку
Super+Vісторія буфера обміну
Super+Nнотатки
Print / Shift+Printзнімок екрана / області; Shift+Super+5 відкриває панель знімків
Super+Left / Rightприкріплює вікно до половини екрана
Ctrl+Upусі вікна; Ctrl+Down — усі робочі столи
Super+Lблокує екран; Ctrl+Alt+T відкриває термінал; Ctrl+Shift+Esc — системний монітор

Повна таблиця

Якщо щось не так

  • Після меню завантаження екран залишається чорним

    Виберіть пункт із безпечною графікою. Якщо запуститься — встановлюйте з нього, а потім увімкніть закритий драйвер на сторінці драйверів.

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

    Це машина VirtualBox із 16 МБ відеопам’яті. Дайте їй 128 МБ і ввімкніть 3D-прискорення; див. «Віртуальні машини» вище.

  • Робочий стіл працює повільно

    Погляньте на рендерер OpenGL у «Налаштування» → «Про MoonLightOS». При програмному рендерингу анімації вимикаються автоматично при вході; Tweaks → «Швидкодія» вимикає їх вручну.

  • Флешка запускається, а потім усе ламається незрозумілим чином

    Запустіть «Check this medium for defects» з меню завантаження й перевірте контрольну суму SHA-256 завантаженого файла.

  • Немає Wi-Fi

    Відкрийте сторінку драйверів: драйвер Broadcom є на образі. Для інших адаптерів меню мережі показує те, що розпізнало ядро.

  • Сканер відбитків не розпізнається

    Відкрийте «Відбиток пальця». Програма назве виробника сенсора, скаже, якого він типу — підтримуваний напряму, із зіставленням на чипі чи на закритому драйвері виробника, — і пояснить, що можна зробити.

  • Як читати журнали

    На що скаржився запуск, журнал менеджера входу, журнал першого запуску та назва активної теми запуску:

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

Для звіту про помилку «Про MoonLightOS» → «Копіювати звіт» кладе випуск і обладнання в буфер обміну, а moonlight-selftest виводить, що насправді робить робочий стіл.

moonlight-selftest | less

Зібрати самостійно

Увесь дистрибутив — це один репозиторій: графіка походить від одного вихідного логотипа, теми генеруються з однієї палітри, а один скрипт перетворює все це на завантажуваний образ ISO, який працює із Secure Boot. Потрібен Docker (на будь-якій операційній системі, бо збірка йде в контейнері) і близько 25 ГБ вільного місця.

./build.shусе: основа → доналаштування → стиснення → ISO
./build.sh rootfsзупинитися після доналаштування системи
./build.sh imageперепакувати наявну кореневу файлову систему в новий ISO
./build.sh finishтільки завантажувачі та ISO, зі старим squashfs
./build.sh shellоболонка всередині збірного середовища
./build.sh cleanвидалити робочий том

Образ ISO з’являється в out/, а поряд — контрольна сума SHA-256. У Windows запускайте з Git Bash або беріть build.ps1.

Як влаштована збірка

build.shточка входу на хості; запускає все в контейнері
build/Dockerfile.builderзбірне середовище, прив’язане до цільового випуску
build/mkiso.shоснова, видобування ядра, squashfs, завантажувачі, ISO
build/inchroot.shусе, що відбувається всередині chroot, у чотирнадцять етапів
config/moonlight.confкожен рядок, що визначає випуск
packages/*.listщо потрапляє на образ і що з нього прибирається
rootfs/файли, які копіюються в систему як є, разом із програмами MoonLight
brand/source/вихідний логотип і шпалери; brand/out/ генерується
tools/gen-branding.pyвихідний логотип → анімація запуску, GRUB, екран входу, піктограми
tools/gen-themes.pyодна палітра → обидві повні теми
po/переклади програм MoonLight
installer/конфігурація та оформлення Calamares

Перед створенням ISO збірка проганяє понад 120 обов’язкових перевірок усередині образу: ядро, підписаний shim, обидві теми, кожен MoonTool, кодеки, драйвери Wi-Fi, переклади, а також те, що розблокування обличчям і аварійний пароль вимкнені. Не проходить хоч одна перевірка — збірка зупиняється. Робочий простір — том Docker, а не прив’язаний каталог, бо у Windows чи macOS прив’язаний каталог не зберігає ні власників файлів, ні символічних посилань, ні файлів пристроїв.

Налаштування під себе

  • Назва й версія випуску

    config/moonlight.conf містить кожен рядок, що визначає дистрибутив.

  • Графіка

    Замініть вихідний логотип чи шпалери, знову запустіть tools/gen-branding.py — і анімація запуску, GRUB, екран входу, піктограми та оформлення встановлювача згенеруються заново.

  • Кольори

    У tools/gen-themes.py лежать одна темна й одна світла палітра, і з тих самих правил постають обидві повні теми.

  • Склад пакетів

    packages/*.list, по одному пакету на рядок, встановлюються за порядком назв файлів; у 99-purge.list перелічено те, що видаляється після цього.

  • Типові налаштування робочого стола

    rootfs/etc/dconf/db/moonlight.d/ у форматі keyfile для dconf. Це типові значення, а не замки: користувач може змінити будь-яке з них.

  • Швидка перезбірка

    Після зміни в rootfs/ чи у списках пакетів build.sh rootfs повторює етап chroot на закешованій основі, а build.sh image перепаковує ISO; build.sh finish потрібен, коли ви працюєте над меню завантаження.

Допомога та звіти про помилки

Корисний звіт розповідає, чого ви очікували, що сталося натомість і на якому комп’ютері. Третю частину MoonLightOS бере на себе:

  • «Про MoonLightOS» → «Копіювати звіт» кладе в буфер обміну як текст випуск, обладнання, графічний рендерер і стан Secure Boot.
  • moonlight-selftest виводить задіяні налаштування тем, чи правильно завантажилася таблиця стилів оболонки, який графічний драйвер активний і які служби не запустилися.
  • Якщо проблема виникає при запуску, пункт «Verbose boot» записує кожне повідомлення на екран і в перший послідовний порт.
  • Для встановлювача — /var/log/moonlight-firstboot.log у встановленій системі та journalctl -b -p warning.

Куди надсилати

Публічний трекер помилок і канал підтримки буде оголошено тут. Доки цього не сталося, збережіть звіт: усе, що має в ньому бути, дають два інструменти вище.