/dev/net/tun을 만드는 사람

/dev/net/tun을 만드는 사람

beaglbone에 대한 사용자 정의 이미지를 만들려고 합니다. 기능 중 하나가 openvpn을 활성화합니다. 문제는 다음을 사용하여 rootfs를 생성하는 동안 생성했음에도 불구하고 처음 부팅할 때 /dev/net/tun 파일이 없다는 것입니다.

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

beaglbone 시스템 파일에 로그인하는 것과 같은 방식으로 생성하면 유지되고 openvpn이 작동합니다. 그렇다면 이 파일을 유지 관리하는 책임은 누구에게 있고 사용자 정의 systemd 서비스를 사용하는 경우를 제외하고 시스템이 자동으로 파일을 생성하도록 만드는 방법에 대한 질문이 있습니까?

감사합니다!

답변1

rootfs의 /dev 내용은 전혀 사용되지 않습니다. 초기 부팅 중에devtmpfs가상 파일 시스템은 /dev에 마운트되어 다른 마운트된 파일 시스템처럼 이전 내용을 보이지 않게 만듭니다. 이 시점 이후에는 /dev에 표시되는 유일한 파일은 a) 커널 자체에 의해 생성되거나 b) 모든 부팅 프로세스 중에 서비스에 의해 생성됩니다.

kmod-static-nodes.service모듈식 커널("tun"은 모듈임)에서 특정 장치 노드는 및 다음의 조합으로 미리 생성됩니다 systemd-tmpfiles-setup-dev.service.

  1. kmod-static-nodes는 /lib/modules를 읽고 사전 생성할 장치 노드 목록을 생성합니다.
  2. systemd-tmpfiles는 "tmpfiles.d" 처리의 일부로 이를 생성합니다.

관련 정보