Nada garante que seu firstboot.service
seja executado antes de systemd-networkd
ser iniciado. Você tem que usar
Wants=network-pre.target
Before=network-pre.target
em vez de Before=network.target
para conseguir isso. Como man systemd.special
explica:
network-pre.target: This passive target unit may be pulled in by services that want to run before any network is set up, for example for the purpose of setting up a firewall. All network management software orders itself after this target, but does not pull it in.
Você também precisará de DefaultDependencies=false
para evitar a dependência implícita em basic.target
(consulte man systemd.service
).