Обновить

Комментарии 15

ЗакрепленныеЗакреплённые комментарии

Автор кратко показывает, как с помощью debootstrap создать минимальную систему Debian (или совместимую) и затем запустить её на хосте с Arch Linux через systemd-nspawn.

Основная идея: использовать контейнерную среду (что-то среднее между chroot и полноценным контейнером) для запуска узла сети FidoNet/FidoIP без изменений основной системы.

Зачем это нужно?

чтобы запустить старый или специфичный сервис (FidoIP) в изолированной среде, не вмешиваясь в Arch Linux

чтобы использовать systemd-nspawn как лёгкий контейнер без сложной настройки, в отличие от Docker или LXC

чтобы снизить риски: даже при ошибках хост-система останется нетронутой

чтобы протестировать, восстановить или использовать старое ПО, которое лучше работает в Debian

потому что некоторые версии “родных” пакетов в Arch либо более свежие и несовместимые, либо отсутствуют, а в Debian они есть и стабильнее — поэтому сервис проще запустить именно в Debian-окружении

(В статье автор намекает, что под Arch возникали сложности, а в Debian всё “завелось сходу”.)

Ответ: systemd-nspawn создаёт изолированный контейнер с собственными пространствами имён (PID, IPC, файловая система). Это похоже на chroot, но расширено: автоматическое подключение /proc, /sys, /dev, возможность запуска systemd внутри и управление контейнером как сервисом через systemd.

“Лучше” — потому что systemd-nspawn позволяет запускать полноценную систему с systemd, управлять ею через machinectl, интегрируется с systemd на хосте, и контейнер можно запускать/перезапускать как юнит. Это удобнее и чище, чем “голый” chroot.

Не раскрыт смысл systemd-nspawn: что за зверь такой и что дает.

После debootstrap достаточно просто chmod в каталог с установленным debian и можно спокойно работать в нем, даже в случае отличающейся архитектуры при некоторых условиях.

debootstrap --foreign --include=qemu-user-static --arch <ARCH> bookworm ./rootfs/
chroot ./rootfs/ /debootstrap/debootstrap --second-stage
chroot ./rootfs/ /bin/bash

Просто nspawn имеет лучшую интеграцию с systemd, и может запускать инит без проблем.

В каком смысле лучше работает? Просто pid namespace другой? Все равно не понятно зачем нужен nspawn.

Ну, мне nspawn просто удобнее. Не нужно вручную маунтить /sys, /proc, и прочее. Вот и всё.

Автор кратко показывает, как с помощью debootstrap создать минимальную систему Debian (или совместимую) и затем запустить её на хосте с Arch Linux через systemd-nspawn.

Основная идея: использовать контейнерную среду (что-то среднее между chroot и полноценным контейнером) для запуска узла сети FidoNet/FidoIP без изменений основной системы.

Зачем это нужно?

чтобы запустить старый или специфичный сервис (FidoIP) в изолированной среде, не вмешиваясь в Arch Linux

чтобы использовать systemd-nspawn как лёгкий контейнер без сложной настройки, в отличие от Docker или LXC

чтобы снизить риски: даже при ошибках хост-система останется нетронутой

чтобы протестировать, восстановить или использовать старое ПО, которое лучше работает в Debian

потому что некоторые версии “родных” пакетов в Arch либо более свежие и несовместимые, либо отсутствуют, а в Debian они есть и стабильнее — поэтому сервис проще запустить именно в Debian-окружении

(В статье автор намекает, что под Arch возникали сложности, а в Debian всё “завелось сходу”.)

Ответ: systemd-nspawn создаёт изолированный контейнер с собственными пространствами имён (PID, IPC, файловая система). Это похоже на chroot, но расширено: автоматическое подключение /proc, /sys, /dev, возможность запуска systemd внутри и управление контейнером как сервисом через systemd.

“Лучше” — потому что systemd-nspawn позволяет запускать полноценную систему с systemd, управлять ею через machinectl, интегрируется с systemd на хосте, и контейнер можно запускать/перезапускать как юнит. Это удобнее и чище, чем “голый” chroot.

Спасибо! Тот случай, когда комменты полезнее самой статьи :-)

Ну что за ужас?!? Как из того мема: "Дорисовываем недостающее..."

Из статьи не понял ничего. Спасибо.

Я просто писал статью по-быстрому, как некую заметку для себя :)

понять бы о чем...

Можно сказать, это поймут только те, кто хорошо знают systemd :)

НЛО прилетело и опубликовало эту надпись здесь

Фидо без модема не интересно. Нет того самого ожидания рабочих часов ноды, времени на загрузку нетмыла и эх. Плюсы только для фэх.

Я еще умудряюсь по модему на 33.6 выкачивать фидошку, дома валяется стенд на V.90, но все ни как руки не доходят выставить его в ГТС.

Ну, как сказать, неинтересно: есть у меня парочка девайсов, скажем так, кривоватых.
То есть, они работают, там внутри вполне вменяемо работает Линукс, но вот сетевой интерфейс безбожно глючит, похоже - аппаратно.

Делать на них что-то сетевое - так себе идея, а вот запустить фидошную ноду, "как раньше - с обрывами и реконнектами" - почему бы и нет?

(да и кто его знает, с этими "белыми списками", не придётся ли возвращаться к истокам, но на более другом уровне...)

Так что решил вот посмотреть на это fidoip. Пока что очень странные впечатления...

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации