systemd-networkd를 사용하는 nfsroot에 DNS 서버가 없습니다.

systemd-networkd를 사용하는 nfsroot에 DNS 서버가 없습니다.

나는 Yocto를 사용하여 나만의 Sysroot를 만들고 이를 ARM 보드에 NFS를 통해 마운트했습니다. 네트워킹을 위해 systemd-networkd 및 systemd-resolved를 사용합니다. 나는 다음과 같이 보드를 시작합니다 :

U-Boot 부트로더는 tftp를 통해 커널과 장치 트리를 로드하고 전달합니다.

루트=/dev/nfs nfsroot=192.168.xx:/Path/To/Sysroot,vers=3,tcp rootwait ro ip=dhcp

커널에. 커널은 로컬 DHCP 서버에서 IP와 DNS를 시작하고 수신합니다.

IP-Config: Complete:
 device=eth0, hwaddr=XX:XX:XX:XX:XX:XX, ipaddr=192.168.X.X, mask=255.255.255.0, gw=192.168.X.X
 host=192.168.XX.XX, domain=XXX.XX, nis-domain=(none)
 bootserver=0.0.0.0, rootserver=192.168.XX.XX, rootpath=
 nameserver0=192.168.XX.XX, nameserver1=192.168.XX.XX

그 후 커널은 NFS-Sysroot를 마운트하고 SystemD를 시작합니다. 이 시점에서 systemd-networkd 서비스는 DHCP로부터 IP를 인계받아 요청합니다. 커널이 이전에 수신한 것과 동일한 IP를 수신하더라도 이로 인해 nfs-mount가 중단됩니다. systemd-networkd 구성 파일을 다음과 같이 변경하여 이 문제를 방지하고 있습니다.

[Match]
Name=eth0
KernelCommandLine=!nfsroot

[Network]
DHCP=ipv4

따라서 구성 파일은 nfsroot를 사용하지 않을 때만 적용됩니다.

하지만 지금은 DNS가 작동하지 않습니다. 다음을 사용하여 이전에 감지된 DNS 서버를 볼 수 있습니다.

cat /proc/net/pnp 
#PROTO: DHCP
domain XXX.XX
nameserver 192.168.XX.XX
nameserver 192.168.XX.XX
bootserver 0.0.0.0

하지만 시스템에서는 이를 사용하지 않는 것 같습니다. 이 DNS 서버를 어떻게 사용할 수 있나요?

관련 정보