J'ai donc rencontré le problème courant de eth0 appelé autrement (enpXsX) avec systemd. J'ai donc essayé de créer le fichier /etc/udev/rules.d/10-network.rules. Cela fonctionne très bien. Le problème est que je dois prendre cette copie exacte de mon serveur et, à l'aide d'une carte SD, la déplacer régulièrement entre plusieurs serveurs physiques à des fins de test. Parce que 10-network.rules a besoin de l'adresse MAC, elle continue de changer chaque fois que je branche la carte dans un nouveau périphérique. J'ai créé un script qui la change automatiquement et je l'ai fait exécuter comme un service (changeMAC.service) au démarrage.
Ce service fonctionne bien. Malheureusement, malgré la modification de l'adresse MAC avant le démarrage de networking.service, la mise en réseau échoue toujours. Pour le faire fonctionner, je dois redémarrer. J'ai besoin qu'il démarre correctement au premier démarrage.
En utilisant systemd-analyze plot, je peux dire que changeMAC.service se termine en fait avant networking.service. Je pensais que le problème était qu'il devait démarrer plus tôt. Cependant, j'ai actuellement une carte SD où il réussit à démarrer en une seule fois. Mais lorsque je prends cette image et que je la mets sur mon ordinateur pour l'exécuter dans VirtualBox, elle nécessite à nouveau un redémarrage. Je n'arrive pas à trouver les différences entre la carte SD et le vhd.
J'ai également essayé d'utiliser ifup, ifdown, /etc/init.d/networking restart, systemctl start networking.service pour forcer networking à réévaluer sa situation et voir 10-network.rules. Les trois premiers produisent des erreurs et ne s'exécutent pas, le dernier s'exécute mais networking.service échoue à nouveau à démarrer.
J'ai donc besoin de savoir comment faire en sorte que changeMAC.service s'exécute à temps pour que ceux qui ont besoin de 10-network.rules puissent l'obtenir, ou j'ai besoin de savoir comment forcer ceux qui ont besoin de 10-network.rules à redémarrer sans redémarrer tout le système.