Посібник
Від завантаження до робочої системи — і що робити, коли щось пішло не так.
Перед початком
Будь-який 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; друга виводить хеш, який має збігтися з тим, що у файлі. Будь-що інше означає, що завантаження зіпсоване.
Запис образу на флешку
Образ — гібридний 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
Перезавантажує комп’ютер у налаштування мікропрограми.
Живий сеанс
Перше, що ви побачите, — це «Початкове налаштування»: виберіть мову системи, підтвердьте розкладку клавіатури (наберіть щось у полі, щоб перевірити), під’єднайтеся до Wi-Fi, а потім або роздивляйтеся систему, або встановлюйте її. Усе, що тут задається, — справжні системні налаштування, і встановлювач спирається на ті самі відповіді.
Живий сеанс — це повна, нічим не урізана система: той самий робочий стіл, ті самі програми, ті самі сторінки налаштувань. Користувача живого сеансу звати moonlight, пароля в нього немає. Ніщо з того, що ви тут робите, не торкається диска, поки ви не запустите встановлювач.
Щоб встановити систему, двічі клацніть «Встановити MoonLightOS» на робочому столі або знову відкрийте «Початкове налаштування» й виберіть встановлення.
Встановлення
Встановлювач — Calamares. Сім сторінок, а потім копіювання на диск.
- Вітання
Мова встановлювача й посилання на цей посібник.
- Розташування
Ваш регіон і часовий пояс; локаль і формати чисел беруться з них.
- Клавіатура
Уже стоїть те, що ви вибрали в помічнику. Наберіть щось у полі, щоб перевірити.
- Розділи
Типово вибрано «Стерти диск»: створюється файлова система ext4 із файлом підкачки; доступні також btrfs, xfs і f2fs, а ще розбиття вручну. Позначте «Зашифрувати систему», щоб отримати шифрування всього диска LUKS2, і виберіть пароль: його доведеться вводити при кожному запуску, і відновити його, якщо забудете, неможливо. На комп’ютері з UEFI створюється розділ EFI на 512 МіБ.
- Користувачі
Ваше ім’я, назва комп’ютера, ім’я користувача й пароль щонайменше з восьми символів двох різних класів. Перший обліковий запис адмініструє комп’ютер через sudo; root залишається заблокованим, а автоматичного входу немає, поки ви його не ввімкнете.
- Підсумок
Усе, що встановлювач зараз зробить, одним списком. Нічого ще не записано.
- Встановлення
Система копіюється на диск, встановлюється завантажувач (на UEFI — як MoonLightOS у списку завантаження мікропрограми), а залишки живого сеансу видаляються. Далі перезавантажтеся й вийміть флешку.
При першому запуску os-prober знаходить інші операційні системи на комп’ютері й додає їх до меню GRUB.
Перший запуск
Щойно встановлена система — точна копія того самого образу, з якого постає кожне інше встановлення. Усе, що має бути унікальним саме для цього комп’ютера, створюється при першому запуску, ще до появи екрана входу, службою, яка потім сама себе вимикає:
- новий ідентифікатор машини, щоб жоден спостерігач у мережі не пов’язав два встановлення;
- нові ключі хоста SSH, бо ключ, спільний для всіх, хто завантажив образ, зробив би перевірку хоста безглуздою;
- меню GRUB — тепер, коли видно справжні диски й інші операційні системи на них;
- initramfs, перезібраний під наявне обладнання, тому він менший, а анімація запуску з’являється швидше;
- кеші піктограм, шрифтів і робочого стола, щоб перший вхід не був повільним;
- і брандмауер, знову ввімкнений.
Її вивід потрапляє до /var/log/moonlight-firstboot.log. Потім з’являється екран входу, а після першого входу — вікно «Вітаємо».
Перші кроки
- Виберіть оформлення
Темне чи світле — просто у «Вітаємо». Решта в 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.
Куди надсилати
Публічний трекер помилок і канал підтримки буде оголошено тут. Доки цього не сталося, збережіть звіт: усе, що має в ньому бути, дають два інструменти вище.