On 14/02/2021 03:08, Maksim Dmitrichenko wrote:
чт, 11 февр. 2021 г. в 18:51, Maxim Nikulin:
Если правильно помню, то не сработает mkdev, такое namespaces не
позволяют. Так что готовить образы должен root. Дальше их уже может
распаковывать обычный пользователь, поэтому --template
download успешно работает.
Если создается привилегированный контейнер, то с правами root все будет
работать. А fakeroot дает дополнительные накладные расходы - надо
сначала создавать дерево файловой системы во временном месте, и уже
потом распаковывать его в namespace. В этом смысле готовые образы типа
download проще.
То, что download проще, не обсуждается. Мой комментарий-вопрос относился
именно к готовке образа. Ведь вы написали: "готовить образы должен
root". Вот я и предположил, что если вы всё-таки дошли до готовки, то
нет никакой нужды на самом деле в том, чтобы это был root.
Наверно я просто не достаточно аккуратно выразился. Я назвал образом
дерево файловой системы, которое будет использоваться внутри контейнера.
В этом смысле fakeroot к стандартным шаблонам действительно не
приспособили, от обычного пользователя работает только "download". Я
пытался сказать, что не стоит ждать, что `-t debian` заработает. Хоть
это и может показаться странным.
Надеюсь, что без особых сложностей можно написать шаблон, который будет
запускаться от обычного пользователя и создавать дерево файлов с помощью
debootstrap. Заодно получится образ, который можно распаковывать, чтобы
разворачивать такие же контейнеры. Хотя пока сам не попробовал, ручаться
не могу. Повисший на семафоре fakeroot я видел больше одного раза. С
другой стороны, проблема была слишком редкой, чтобы серьезно искать причины.
P.S. Я как-то не осознавал важности того, что когда запускаешь
lxc-контейнеры руками, их надо заворачивать в systemd units. И
lxc-attach надо пускать из-под systemd-run. Без Delegate=yes systemd,
которые живут снаружи и внутри, могут между собой поругаться. И это
лучше делать не только для чистых cgroup v2, хотя такие нюансы описаны
именно там
https://wiki.debian.org/LXC/CGroupV2