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