MoonLightOS

Руководство

От загрузки образа до работающей системы — и что делать, если что-то пошло не так.

Перед началом

Подойдёт любой 64-битный компьютер x86. Установщику нужно не меньше 1,7 ГБ оперативной памяти и 18 ГБ на диске; в таблице ниже — то, с чем система работает спокойно.

МинимумРекомендуется
Оперативная память2 ГБ4 ГБ
Диск18 ГБ30 ГБ
Процессорлюбой 64-битный x86два ядра
Графикалюбой видеоадаптер с кадровым буферомлюбая видеокарта за последние 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

    Обычный пункт. Запускает live-сеанс с анимацией загрузки.

  • Try or Install MoonLightOS (safe graphics)

    То же самое, но с отключённым kernel mode-setting. Пригодится, если экран остаётся чёрным или картинка рассыпается.

  • MoonLightOS in RAM (needs 6 GB+)

    Копирует всю систему в память, после чего флешку можно вынуть.

  • Check this medium for defects

    Сверяет каждый файл на флешке с контрольными суммами, записанными при сборке.

  • Verbose boot (no splash, logs to serial)

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

  • UEFI firmware settings

    Перезагружает компьютер в настройки прошивки.

Снимок экрана MoonLightOS
Дальше появляется анимация запуска: логотип стоит на месте, гало пульсирует, полоса заполняется.

Live-сеанс

Первым делом открывается первоначальная настройка: выберите язык системы, подтвердите раскладку клавиатуры (наберите что-нибудь в поле, чтобы проверить), подключитесь к сети Wi-Fi, а затем смотрите систему или ставьте её. Всё, что здесь выставляется, — настоящие системные настройки, и установщик берёт те же ответы.

Снимок экрана MoonLightOS

В live-сеансе работает та же система целиком и без изменений: тот же рабочий стол, те же инструменты, те же страницы параметров. Пользователя зовут moonlight, пароля у него нет. Ничего из того, что вы здесь делаете, не касается диска, пока вы не запустите установщик.

Чтобы установить систему, дважды нажмите на значок «Установить MoonLightOS» на рабочем столе или снова откройте первоначальную настройку и выберите установку.

Установка

Установщик — Calamares. Семь страниц, а затем копирование на диск.

  1. Добро пожаловать

    Язык установщика и ссылки на это руководство.

  2. Расположение

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

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

    Уже выставлена так, как вы выбрали при первоначальной настройке. Наберите что-нибудь в поле, чтобы убедиться.

  4. Разделы

    По умолчанию диск стирается целиком и создаётся файловая система ext4 с файлом подкачки; доступны также btrfs, xfs и f2fs, а ещё разметка вручную. Галочка «Шифровать систему» включает шифрование всего диска LUKS2 — пароль придётся вводить при каждом запуске, и восстановить его, если забудете, невозможно. На компьютере с UEFI создаётся раздел EFI размером 512 МиБ.

  5. Пользователи

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

  6. Сводка

    Всё, что установщик сейчас сделает, одним списком. Пока ничего не записано.

  7. Установка

    Система копируется на диск, ставится загрузчик (на UEFI он появляется в списке загрузки прошивки как MoonLightOS), следы live-сеанса убираются. Затем перезагрузитесь и выньте флешку.

Если на компьютере есть другие операционные системы, при первом запуске их найдёт 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-разрядная)
Оперативная память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: ISO гибридный, поэтому тот же файл запускается и по-старому:

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

Чтобы проверить обещание про 2 ГБ, запустите без ускорения и с минимумом памяти, а затем убедитесь в live-сеансе, что 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 — системный монитор

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

Если что-то не работает

  • После меню загрузки экран остаётся чёрным

    Выберите пункт с безопасной графикой (safe graphics). Если система запустится, ставьте её оттуда, а потом включите проприетарный драйвер на странице «Драйверы».

  • «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, обе темы, каждое приложение MoonTools, кодеки, драйверы 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.

Куда писать

Здесь появятся адреса открытого трекера задач и канала поддержки. А пока сохраните своё сообщение: всё, что в нём должно быть, выдают две программы выше.