Настройка системы с помощью systemd-nspawn

Настройка системы с помощью systemd-nspawn

Могу ли я использовать systemd-nspawn для настройки установки "chroot" (в этом случае Debian с использованием debootstrap) перед его загрузкой? Т.е. неконтролируемая установка и настройка.

Мне нужно установить раскладку, имя хоста, возможно, часовой пояс и локаль. И я хотел бы использовать инструменты systemd, такие как hostnamectl, localectl, timedatectl,...

Возможно ли это и как это сделать или мне следует использовать файлы конфигурации? Они вообще распознаются systemd? Например, если я укажу имя хоста в /etc/hostname, распознается ли оно правильно? Могу ли я также установить раскладку клавиатуры таким образом?

решение1

Является ли это возможным

да.

Я запустил Debian в nspawn. Работает.большойс минимальным количеством установок.

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

следует ли использовать файлы конфигурации? Они вообще распознаются systemd? Например, если я укажу имя хоста в /etc/hostname, оно будет распознано правильно?

/etc/hostname определенно работает, он поддерживается systemd, это именно то, что hostnamectlнужно редактировать. В общем, сложно понять, о чем вы здесь беспокоитесь. Debian Jessie по умолчанию использует systemd, поэтому любая документация, написанная для Debian Jessie о том, как что-то настраивать, например, в приложении debootstrap руководства по установке, должна работать и для systemd. (Хотя это приложение скорее набросок и не показывает, как заставить его работать без присмотра).


Из того, что вы сказали, вас также может заинтересовать systemd-firstboot. Я не пробовал его использовать и, насколько я понимаю, он в некотором роде ограничен, но он может быть информативным.

В любом случае, я думаю, вам нужно будет использовать systemd-nspawn --boot, добавив служебный файл, аналогичный тому, который используется systemd-firstboot. Если вы не загрузите систему, например, hostnamectlне будет работать... После того, как ваш скрипт завершится тем или иным образом, ему также нужно будет выключить систему.

Одна из заметных проблем заключается в том, что если у вас установлены какие-либо сетевые службы (включая avahi, cups, ...), вы, вероятно, захотите запустить nspawn или --net-vethэквивалент, чтобы избежать конфликтов с сетевыми службами хоста. Чтобы получить сетевой доступ на этом этапе (например, для установки дополнительных пакетов), настройте DHCP-клиент на интерфейсе host0.

Связанный контент