systemd-nspawn: продолжаем знакомство
Краткое резюме
systemd-nspawn — это инструмент для запуска одного дистрибутива Linux под управлением другого, использующий Linux namespaces для разделения систем. Управлять «машинами» можно через systemd-nspawn или machinectl, который предоставляет удобный интерфейс для запуска, остановки и управления автозапуском «машин»..
Здравствуйте, это Егор Гаврилов. Сегодня я продолжу рассказ о systemd-nspawn. Прежде чем читать эту статью, ознакомьтесь с моим предыдущим материалом, посвящённым этой технологии.
**Как функционирует systemd-nspawn?**
systemd-nspawn — это усовершенствованная версия инструмента chroot, знакомого многим пользователям Linux. Эта утилита позволяет запускать один дистрибутив Linux под управлением другого, используя общее ядро.
Однако systemd-nspawn не ограничивается функциональностью chroot. Он применяет Linux namespaces для реализации chroot-подобной функциональности и полного разделения гостевой и хост-систем. По сути, это аналог контейнеризации, например, Podman или Docker, но более интегрированный с экосистемой systemd.
Работать с «машинами» в systemd-nspawn можно двумя способами: непосредственно через systemd-nspawn или через machinectl. Первая утилита представляет собой прямую команду для запуска «машин», а вторая — удобный интерфейс для управления ими.
**Управление «машинами» с помощью machinectl**
Machinectl — это полноценный инструмент для работы с «машинами». С его помощью можно запускать и останавливать «машины», а также управлять их автозапуском.
Для запуска «машины» используется команда machinectl start, а для остановки — machinectl stop. Корень «машины» должен находиться в /var/lib/machines/container-name. Все команды, связанные с запуском и остановкой «машин», выполняются от имени суперпользователя.
Чтобы получить список запущенных «машин», можно использовать команду machinectl list.
Для входа в «машину» можно вызвать интерактивную login-сессию с помощью команды machinectl login container-name или войти напрямую в shell, минуя login-сессию, с помощью команды machinectl shell [username@]container-name.
Автозапуск «машины» включается командой machinectl enable container-name, а отключается — machinectl disable container-name.
**Выводы**
systemd-nspawn — это один из лучших инструментов для работы с контейнеризированными виртуальными машинами. Именно поэтому каждый раз при включении моего ноутбука запускается две операционные системы: основная (Arch Linux) и Debian 13, работающая в среде systemd-nspawn. Последняя используется для доступа к Фидонет через изолированное, надёжное и стабильное окружение, с возможностью подключения по SSH через PuTTY для удобной работы с КОИ-8, который до сих пор применяется в GoldED+.