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.service
nfs를 통해 시스템을 시작할 때 네트워크 연결이 끊어지는 이유를 알고 싶습니다 .
networkd
부팅할 때 IP 주소를 철회한 다음 구성 파일을 읽으려고 시도하는 것 같습니다 . 이 시점에서 nfs 마운트가 중단되어 구성 파일을 읽을 수 없습니다.
내 추측이 맞다면 이 문제를 어떻게 "수정"하거나 "해결"할 수 있습니까?
답변1
systemd-networkd
이는 IP를 공개하지 않는 옵션을 제공하는 것으로 밝혀졌습니다 .
구성에 다음을 추가합니다.
[DHCP]
CriticalConnection=true
그러면 IP가 해제되지 않고 NFS가 중단되지 않습니다.
답변2
2년 전의 질문인데 아직도 여기서 검색하고 있습니다. 마침내 더 나은 해결책을 얻었습니다NFS 루트 디렉터리 및 SYSTEMD
[Match]
Name=eth*
KernelCommandLine=!nfsroot