[systemd-devel] mknod forbidden in systemd-nspawn container

Johan Ouwerkerk jm.ouwerkerk at gmail.com
Wed Dec 23 21:45:10 PST 2015


On Thu, Dec 24, 2015 at 12:45 AM, Lennart Poettering
<lennart at poettering.net> wrote:
>
> Why does debootstrap create device nodes at all? Does Debian support
> setups with /dev being on persistent media? Note that udev has not
> supported non-devtmpfs boots since a long time. If Debian requires
> udev, then there's really no point in ever creating a device node in
> debootstrap, because devtmpfs does that...
>
> Lennart
>

Well I don't know but I can guess. To start with: Debian doesn't
require udev, AFAIK. It's just commonly pulled in by default during
installation but not actually required. At any rate the package
priority is "important" which is less important than "required" and
it's not an "essential" package either.

And objectively it's not required because if you are prepared to deal
with the hassle and accept the corner cases where it goes wrong, then
manual intervention and mknod can replace udev of course. That's how
it was done in the "olden days" that kernel programming books would
have you start out with (character devices and mknodr before you level
up towards automatic device creation using udev...)

So it's probably a compatibility thing from the days before udev and
of course Debian supports running the FreeBSD kernel (kfreebsd).

But from the perspective of a modern Linux distro, setting up device
nodes is of course a wrong-headed thing to do and should probably be
filed as a RFE bug against debootstrap. (A switch like --no-devices to
simply skip unpacking the tar.gz file and everybody wins.) Some
related bug reports:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=571136
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=731802
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698347

>From what I can see, as things stand if you want to bootstrap a Debian
image as a normal user you probably should use multistrap or
brickstrap (a more highlevel frontend to multistrap)
https://wiki.debian.org/Multistrap
https://blog.mister-muffin.de/2014/01/11/why-do-i-need-superuser-privileges-when-i-just-want-to-write-to-a-regular-file/
https://github.com/ev3dev/brickstrap


More information about the systemd-devel mailing list