Estou tentando inicializar com nfs um linux gerenciado com 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
Tanto o kernel quanto o rootfs são carregados com sucesso e o sistema está em execução, até systemd-networkd
iniciar. Depois disso, não consigo fazer ping na máquina e a montagem do NFS trava (obviamente).
Tentei adicionar configuração de rede para systemd-networkd
inicializar a rede, mas não funcionou.
O registro 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?
Acho que quando networkd
inicia, ele retira o endereço IP e tenta ler o arquivo de configuração. Neste momento, a montagem do nfs já quebra e não tem chance de ler o arquivo de configuração.
Se meu palpite for verdadeiro, como "consertar" ou "solucionar" esse problema?
Acontece que
systemd-networkd
fornece uma opção para não liberar o IP.Adicionando abaixo na configuração
Então o IP não será liberado e o NFS não travará.
Embora fosse uma pergunta de 2 anos atrás, eu ainda pesquisei aqui. E finalmente obtive uma solução melhor do NFS ROOT COM SYSTEMD