Кто создает /dev/net/tun

Кто создает /dev/net/tun

Я пытаюсь создать собственный образ для beaglbone. Одна из функций — это включенный openvpn. Проблема в том, что при первой загрузке нет файла /dev/net/tun, несмотря на то, что я создал его при создании rootfs с помощью:

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

Если я создам его таким же образом, как войдя в систему, файл beaglbone system сохраняется, а openvpn работает. Поэтому вопросы в том, кто отвечает за поддержание этого файла и как заставить систему создавать его автоматически, кроме как с помощью пользовательской службы systemd?

Спасибо!

решение1

Содержимое /dev на вашем rootfs вообще ни для чего не используется. Во время ранней загрузки,devtmpfsВиртуальная файловая система монтируется на /dev и делает предыдущее содержимое невидимым, как и любая другая смонтированная файловая система. После этого момента в /dev видны только файлы, а) созданные самим ядром или б) созданные службой во время каждого процесса загрузки.

В модульных ядрах (где «tun» — это модуль) определенные узлы устройств создаются заранее с помощью комбинации kmod-static-nodes.serviceи systemd-tmpfiles-setup-dev.service:

  1. kmod-static-nodes считывает /lib/modules и генерирует список узлов устройств для предварительного создания;
  2. systemd-tmpfiles создает их как часть обработки "tmpfiles.d".

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