Acontece que systemd-networkd
fornece uma opção para não liberar o IP.
Adicionando abaixo na configuração
[DHCP]
CriticalConnection=true
Em seguida, o IP não será liberado e o NFS não será interrompido.
Estou tentando nfs-boot em um linux gerenciado com o systemd, via tftp kernel + nfs rootfs, meus bootargs:
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
O kernel e o rootfs são carregados com sucesso e o sistema está em execução, até que systemd-networkd
seja iniciado. Depois disso, eu posso não pingar a máquina e a montagem do NFS trava (obviamente).
Eu tentei adicionar a configuração de rede para systemd-networkd
para inicializar a rede, mas isso não funciona.
O log do console serial:
Starting Network Service...
...
[ OK ] Started Network Service.
[ OK ] Reached target Network.
...
[ * 39.330000] nfs: server 192.168.0.10 not responding, still trying
A configuração de rede:
[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
Eu me pergunto por que systemd-networkd.service
quebra a rede quando o sistema é iniciado via nfs?
Eu acho que quando networkd
inicia, ele retira o endereço IP e tenta ler o arquivo de configuração. Neste momento o nfs mount já quebra, e não tem a chance de ler o arquivo de configuração.
Se meu palpite for verdadeiro, como "corrigir" ou "contornar" esse problema?
Tags boot nfs systemd-networkd