Wer erstellt /dev/net/tun

Wer erstellt /dev/net/tun

Ich versuche, ein benutzerdefiniertes Image für Beaglebone zu erstellen. Eine der Funktionen ist die Aktivierung von OpenVPN. Das Problem ist, dass beim ersten Booten keine Datei /dev/net/tun vorhanden ist, obwohl ich sie beim Erstellen des Root-FS mit Folgendem erstellt habe:

mkdir -p /dev/net
chroot rootfs/ mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun

Wenn ich es auf die gleiche Weise erstelle, bleibt die Systemdatei von beaglbone bestehen und OpenVPN funktioniert. Die Fragen sind also, wer für die Pflege dieser Datei verantwortlich ist und wie man das System dazu bringt, sie automatisch zu erstellen, außer durch die Verwendung eines benutzerdefinierten systemd-Dienstes?

Danke schön!

Antwort1

Der Inhalt von /dev in Ihrem Rootfs wird für nichts verwendet. Während des frühen Bootvorgangs wird eindevtmpfsDas virtuelle Dateisystem wird auf /dev gemountet und macht den vorherigen Inhalt unsichtbar, wie jedes andere gemountete Dateisystem. Ab diesem Punkt sind in /dev nur noch die Dateien sichtbar, die a) vom Kernel selbst erstellt wurden oder b) von einem Dienst bei jedem Bootvorgang erstellt wurden.

Bei modularen Kerneln (wobei „tun“ ein Modul ist) werden bestimmte Geräteknoten durch eine Kombination aus kmod-static-nodes.serviceund vorab erstellt systemd-tmpfiles-setup-dev.service:

  1. kmod-static-nodes liest /lib/modules und generiert eine Liste von Geräteknoten, die vorab erstellt werden sollen;
  2. systemd-tmpfiles erstellt sie als Teil seiner „tmpfiles.d“-Verarbeitung.

verwandte Informationen