diff --git a/lib/images/linux/debian/templates.nix b/lib/images/linux/debian/templates.nix index 1fffeb3..af90a77 100644 --- a/lib/images/linux/debian/templates.nix +++ b/lib/images/linux/debian/templates.nix @@ -50,11 +50,18 @@ with scriptsNFiles; # proxmox makes it very hard to manually add interfaces directly on /etc/network/interfaces while the pve services are not running # it also doesn't pick up files in interfaces.d # so manually do that via service after boot + # After= must live in [Unit] — in [Service] systemd ignores it, leaving the + # merge/ifreload racing networking.service (and ifreload fails outright if it + # runs before /run/network exists, see ifupdown2#276). mergeNetIfacesDService = pkgs.writeText "manual-net-ifaces.d.service" '' + [Unit] + After = networking.service + Wants = networking.service + [Service] Type = oneshot + ExecStartPre = /bin/mkdir -p /run/network ExecStart = /bin/bash -c "cat /etc/network/interfaces.d/* >> /etc/network/interfaces; rm /etc/network/interfaces.d/*; ifreload -a;" - After = network.target [Install] WantedBy = multi-user.target