Как установить CBL-Mariner в VirtualBox

Что такое CBL-Mariner
CBL‑Mariner (Common Base Linux Mariner) — это внутренний дистрибутив Linux, разработанный Microsoft для унификации платформенных образов в облачных и edge-решениях. Ключевые особенности:
- Минималистичность: базовый набор пакетов, рассчитанный на безопасность и предсказуемость.
- Открытый исходный код: репозиторий на GitHub под свободными лицензиями (GPL, MIT и др.).
- Фокус на обновлениях и защите: усиление ядра, подписанные обновления, использование компиляторных hardening-флагов.
Определение: CBL-Mariner — лёгкий, минималистичный дистрибутив Linux от Microsoft для внутреннего и облачного применения.
Зачем запускать CBL-Mariner в VirtualBox
- Проверить поведение дистрибутива без изменения основной ОС.
- Изучить пакетную базу и систему обновлений Microsoft.
- Подготовить тестовые образы для CI/CD или edge-устройств.
Важно: официальных ISO-сборок для настольной установки нет — придётся собрать ISO из исходников.
Требования и подготовка
Минимальные рекомендации для VM:
- ОЗУ: 1 ГБ (рекомендуется 2–4 ГБ для комфортной работы).
- Диск: 10 ГБ минимум для VDI; больше — если планируете ставить дополнительные пакеты.
- VirtualBox установлен на хосте (Windows/Mac/Linux).
- В хост-системе доступен интернет для загрузки исходников и зависимостей.
Необходимые инструменты на Debian/Ubuntu-подобных системах:
- git, make, tar, wget, curl, rpm, qemu-utils, golang-go, genisoimage, python2, bison, gawk
Короткая проверка: наличие места на диске и прав sudo/администратора.
Подход: собрать ISO из исходников
Основной рабочий сценарий — клонировать репозиторий Microsoft CBL-Mariner, установить зависимости, собрать инструменты и пакеты, затем создать ISO-образ и загрузить его в VirtualBox.
Когда этот способ не подходит:
- У вас нет возможности установить зависимости или запускать make на хосте. Тогда рассмотрите контейнерные образы (если доступны) или сборку на другом хосте.
- Нужна GUI-среда из коробки — придётся устанавливать дополнительные пакеты после установки минимального образа.
Шаги по установке в VirtualBox
Шаг 1 — Установите VirtualBox (если ещё не установлен)
Скачайте и установите Oracle VirtualBox с официального сайта и установите расширения, если используете USB/графику.
Скачать: Oracle VirtualBox
Шаг 2 — Установка зависимостей на Linux-хосте
Убедитесь, что у вас установлены необходимые пакеты. На Debian/Ubuntu выполните (как sudo):
sudo apt-get update
sudo apt-get install -y git make tar wget curl rpm qemu-utils golang-go genisoimage python2 bison gawkОжидаемый результат: все пакеты установлены, команда make и git доступны.
Вывод установки (пример):
.jpg?q=50&fit=crop&w=825&dpr=1.5)
Важно: на некоторых современных дистрибутивах python2 может быть недоступен по умолчанию — установите пакет python2 или обеспечьте совместимость.
Шаг 3 — Клонирование репозитория
Клонируйте официальный репозиторий CBL-Mariner:
git clone https://github.com/microsoft/CBL-Mariner.gitПример вывода клонирования:
Шаг 4 — Сборка ISO-образа
Перейдите в каталог toolkit и выполните сборку ISO. Команда ниже собирает ISO без пересборки пакетов (ускоряет процесс), но при необходимости можно пересобрать и пакеты.
cd CBL-Mariner/toolkit
sudo make iso REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/full.jsonЭта команда создаст ISO и поместит его в каталог /out/images/full после успешной сборки.
Пример вывода сборки ISO:
Если сборка завершилась с ошибками, проверьте лог в выводе make, убедитесь, что все зависимости установлены, и повторите сборку.
Шаг 5 — Создание виртуальной машины в VirtualBox
- Откройте VirtualBox и нажмите «Создать» (New).
- Введите имя виртуальной машины, например CBL-Mariner. Тип — Linux, версия — Other Linux (64-bit).
- Выделите память: минимум 1 ГБ; желательно 2–4 ГБ.
- Создайте виртуальный диск — VDI, Dynamically allocated, размер по умолчанию 10 ГБ (можно увеличить).
- Укажите место сохранения VDI и размер диска (рекомендуется 10 ГБ или больше).
Нажмите «Создать».
Шаг 6 — Подключение ISO и запуск VM
- Откройте настройки созданной VM, перейдите в Storage → щёлкните по контроллеру оптического диска и присоедините ISO, который вы получили в /out/images/full.
- Сохраните настройки и нажмите Start.
Шаг 7 — Установка CBL-Mariner внутри VM
При старте выберите Graphical Installer.
Варианты установки:
- CBL-Mariner Full — полный набор пакетов, ближе к полноценной машине.
- Core installation — минимальная система без пакетов.
Выберите CBL-Mariner Full для первого знакомства.
Примите лицензионные условия и настройте разметку диска (по умолчанию можно оставить схему, предложенную установщиком).
Укажите имя хоста, пользователя и пароль. Дождитесь завершения установки и перезагрузите виртуальную машину. Войдите под указанным пользователем.
Поздравляем — CBL-Mariner установлен. По умолчанию вы попадёте в консоль (CLI).
Первичные шаги после установки
- Обновление системы:
sudo tdnf makecache
sudo tdnf update -y- Установите дополнительные пакеты (если нужны):
sudo tdnf install -y bash nano openssh-server sudo- Настройте публичные ключи для SSH и включите службу sshd при необходимости.
Тесты и критерии приёмки
Критерии приёмки установки VM:
- VM успешно загружается с созданного ISO и завершает установку без критических ошибок.
- После перезагрузки доступен указанный пользователь и возможен вход в систему.
- Команды tdnf выполняются и обновления скачиваются.
- Минимальный набор сетевых инструментов (ping, curl) работает.
Тестовые шаги:
- Проверить загрузку ISO в VirtualBox и старт VM.
- Пройти установку до логина.
- Выполнить sudo tdnf update и проверить отсутствие ошибок.
- Установить и запустить sshd (если нужно подключение извне).
Отладка и распространённые проблемы
- Ошибка сборки ISO: проверить логи make, убедиться в наличии python2 и go. Иногда помогает очистка каталога toolkit/out и повторная сборка.
- VM не видит ISO: убедитесь, что в настройках VM выбран правильный оптический привод и ISO-файл доступен хосту.
- Низкий объём памяти: при старте инсталлятора добавьте больше ОЗУ (2 ГБ+).
- Установка останавливается на разделе диска: попробуйте ручную разметку или создайте VDI большего размера.
Инструмент для диагностики: просмотрите /var/log/installer и системные журналы через journalctl после загрузки.
Безопасность и hardening
Рекомендации после установки:
- Отключите ненужные сервисы.
- Включите автоматические обновления пакетов (если это применимо в вашей среде).
- Проверьте политики безопасности ядра и используемые компиляторные флаги.
- Настройте брандмауэр и ограничьте SSH доступ по IP / ключам.
Альтернативы и когда не стоит собирать ISO
Альтернативные подходы:
- WSL2 (Windows) — если цель — запуск Linux-приложений в Windows, WSL2 удобнее, но это не CBL-Mariner.
- Контейнеризация (Docker/Podman) — если нужно тестировать отдельные пакеты без полной ОС.
- Использовать готовые образы (если появятся официальные) — проще и быстрее.
Когда не собирать ISO:
- Если вам нужна GUI-среда «из коробки» или много предустановленных приложений.
- Если у вас нет прав или ресурсов для сборки зависимостей.
Ментальные модели и чеклист для ролей
Чеклист для администратора перед сборкой ISO:
- Доступ к хост-машине с правами sudo
- Достаточно памяти и места на диске
- Установлены git, make, go и прочие зависимости
- VirtualBox установлен и протестирован
Роль разработчика (быстрый список):
- Клонировать репозиторий
- Собрать образ с REBUILD_PACKAGES=n для быстрой проверки
- Запустить VM и проверить базовую функциональность
Роль оператора (быстрый список):
- Интегрировать сборочный сценарий в CI
- Проверять LVL безопасности и подписи обновлений
- Автоматизировать деплой образов на таргетные хосты
Мини‑методология: как организовать повторяемую сборку
- Автоматизировать установку зависимостей в контейнере CI (например, Ubuntu 20.04 LTS).
- Кэшировать /out/images между сборками.
- Прописать версионирование конфигов imageconfigs (git tags).
- Параллелить сборку пакетов, где это безопасно.
Сравнение: CBL-Mariner vs обычные дистрибутивы (кратко)
- Debian/Ubuntu: богата экосистема пакетов, удобна для рабочего стола. Не столь минималистична.
- Alpine: минимализм и маленький размер образа, используется в контейнерах. Отличается системой управления пакетами.
- CBL-Mariner: ориентирована на внутренние и облачные сценарии Microsoft, упор на безопасность и подписывание обновлений.
Совместимость и миграция
- Пакеты в CBL-Mariner собираются в rpm-формате. Для миграции приложений проверьте зависимости и наличие библиотек.
- Для интеграции с инфраструктурой Azure — проверяйте совместимость агента/инструментов Microsoft.
Тест-кейсы приёмки
- ISO монтируется в VirtualBox и инсталлятор запускается.
- Установка до логина проходит без ошибок.
- Система обновляется через tdnf.
- Служба SSH (если установлена) принимает ключи и позволяет подключиться.
Резервное копирование и откат
- Перед внесением изменений в систему снимите снапшот VirtualBox.
- Если сборка ISO дала некорректный образ — удалите /out и пересоберите образ с REBUILD_TOOLS=y.
Короткий факт-бокс
- Формат пакетов: RPM
- Менеджер пакетов: tdnf (в опытах близок к dnf)
- Рекомендованный диск VM: ≥10 ГБ
- Рекомендованная ОЗУ: ≥1 ГБ (рекомендуется 2–4 ГБ)
Сводка
CBL‑Mariner — интересный минималистичный дистрибутив от Microsoft, который имеет смысл тестировать в виртуальной среде. Сборка ISO из исходников требует установки зависимостей и корректной работы make‑сценариев, но в результате вы получите лёгкий, безопасный образ для облачных и тестовых задач.
Важно: если вам нужен быстрый путь — рассмотрите альтернативы (WSL, готовые образы или контейнеры). Для production‑деплоя исследуйте политику обновлений и подписи пакетов.
Краткие рекомендации:
- Для тестирования используйте VirtualBox с 2 ГБ ОЗУ и 10 ГБ диска.
- Автоматизируйте сборку ISO в CI для воспроизводимости.
- Делайте снапшоты VM перед экспериментами.
Пояснение: приведённая инструкция ориентирована на энтузиастов и инженеров, желающих протестировать CBL‑Mariner. Для крупных развёртываний потребуется дополнительная проверка безопасности и совместимости.
Важно: перед каждой сборкой проверяйте актуальность репозитория и конфигурационных файлов imageconfigs.
Похожие материалы
Синхронизировать напоминания Cortana с iPhone и Android
Включение и защита Удалённого рабочего стола Windows
Смотреть только пилот: оправдано ли это?
Как перезапустить пакеты на Synology NAS
Почему вас могут уволить и как этого избежать