Pull to refresh

Comments 15

PinnedPinned comments

Автор кратко показывает, как с помощью 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 :)

UFO landed and left these words here

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

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

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

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

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

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

UFO landed and left these words here
UFO landed and left these words here
Sign up to leave a comment.

Articles