systemd-networkd가 시작된 후 nfs 시작이 중단됨

systemd-networkd가 시작된 후 nfs 시작이 중단됨

tftp 커널 + nfs rootfs, 내 bootargs를 통해 systemd에서 관리하는 Linux를 nfs 부팅하려고 합니다.

root=/dev/nfs rw nfsroot=192.168.0.10:/nfsroot/rootfs,nolock ip=192.168.0.60:192.168.0.10:192.168.0.10:255.255.255.0

커널과 rootfs가 모두 성공적으로 로드되었으며 시스템은 systemd-networkd부팅할 때까지 실행됩니다. 그 후에는 할 수 있어핑을 할 수 없습니다머신과 NFS 마운트가 중단됩니다(분명히).

systemd-networkd네트워크 초기화를 위해 네트워크 구성을 추가해 보았지만 작동하지 않습니다.

직렬 콘솔 로그:

         Starting Network Service...
...
[  OK  ] Started Network Service.
[  OK  ] Reached target Network.
...
[  *   39.330000] nfs: server 192.168.0.10 not responding, still trying

네트워크 구성:

[Match]
Name=eth0
[Network]
Address=192.168.0.60/24
Gateway=192.168.0.10
[Route]
Gateway=192.168.0.10
Destination=192.168.0.0

systemd-networkd.servicenfs를 통해 시스템을 시작할 때 네트워크 연결이 끊어지는 이유를 알고 싶습니다 .

networkd부팅할 때 IP 주소를 철회한 다음 구성 파일을 읽으려고 시도하는 것 같습니다 . 이 시점에서 nfs 마운트가 중단되어 구성 파일을 읽을 수 없습니다.

내 추측이 맞다면 이 문제를 어떻게 "수정"하거나 "해결"할 수 있습니까?

답변1

systemd-networkd이는 IP를 공개하지 않는 옵션을 제공하는 것으로 밝혀졌습니다 .

구성에 다음을 추가합니다.

[DHCP]
CriticalConnection=true

그러면 IP가 해제되지 않고 NFS가 중단되지 않습니다.

답변2

2년 전의 질문인데 아직도 여기서 검색하고 있습니다. 마침내 더 나은 해결책을 얻었습니다NFS 루트 디렉터리 및 SYSTEMD

[Match]
Name=eth*
KernelCommandLine=!nfsroot

관련 정보