La vraie solution à ce problème est la suivante:
sudo sed -i.old-`date +%Y%m%d-%H%M%S` '/^auto lo$/!s/^auto /allow-hotplug /' /etc/network/interfaces
En /etc/network/interfaces
cela change toutes les interfaces (sauf lo
) de auto
à allow-hotplug
. De cette façon, le démarrage n'attend plus que les interfaces apparaissent en premier.
Avertissement: après cette modification, une interface connectée en permanence peut rester inactive après le démarrage jusqu'à ce qu'elle systemd
reçoive un véritable événement plug. Voir les notes ci-dessous.
Exemple avant (regardez auto eth0
):
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
Exemple après (regardez allow-hotplug eth0
):
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Remarques:
Si vous montez des partages réseau dans /etc/fstab
, utilisez auto
et non allow-hotplug
pour l'interface avec les partages réseau. Sinon, des choses étranges risquent de se produire au démarrage, car le réseau doit être disponible avant les montages de partage réseau. allow-hotplug
ne garantit pas cela.
Si les interfaces sont en auto
mode, vous déclarez: "Ces interfaces sont cruciales pour le démarrage, nous devons donc attendre qu'elles apparaissent avant de démarrer." Par conséquent, s'ils ne se manifestent pas, Ubuntu retarde le démarrage avec sécurité intégrée en attendant leur apparition pendant 120 secondes. Et c'est la bonne chose à faire.
En revanche, les interfaces configurées pour allow-hotplug
indiquer à Ubuntu qu’elles sont facultatives. Par conséquent, ils ne sont pas essentiels pour démarrer.
Ubuntu enregistre les interfaces disponibles au moment de l'installation et suppose qu'elles sont importantes pour une utilisation ultérieure. Il s'agit d'un choix prudent, au cas où l'interface serait nécessaire par la suite, car un service s'y lie, car ces services ne démarrent pas s'ils manquent l'interface en cours.
Il existe également un paramètre de noyau qui permet aux processus de se lier à des adresses IP inexistantes. Vous pouvez donc toujours les utiliser allow-hotplug
si vous le souhaitez, sans nuire à la stabilité du processus de démarrage. Cependant, c'est une histoire complètement différente.
Notes (mise à jour 2018-01-04):
A mes côtés, allow-auto
fait la même chose que auto
, donc ça n'aide pas (essayé avec br0
).
Après la mise à niveau de l'un de mes systèmes vers Debian Stretch et du basculement vers SystemD, le démarrage a été retardé de manière insoutenable en attendant que l'interface (connectée en permanence à l'extérieur) br0
apparaisse. Cependant, avec allow-hotplug
l'interface est br0
restée en panne après le démarrage . Cela est peut-être dû au fait que SystemD n'a reçu aucun événement plug réel ou synthétique sur une telle interface. Je ne suis pas creuser plus profondément dans cela, comme une obscure crontab
entrée @reboot /sbin/ifup br0
pour root
fixe pour moi. (Cela fonctionne, mais c'est probablement quelque chose qui ne devrait pas être recommandé à d'autres. J'aimerais savoir si quelqu'un a une meilleure idée.)
((Le texte se termine ici, le reste est pour votre divertissement))
Et voici une histoire au coucher, inspirée par ceci:
Certains agriculteurs ont été déchaînés. Leurs récoltes ont séché! Ils ont donc cherché à savoir pourquoi il n'y avait pas assez d'eau dans le fossé d'irrigation. Dans la plus proche distance, ils ont immédiatement repéré leur coupable. Le barrage! Le damné barrage a retenu toute l'eau!
À partir de ce moment, il était clair que faire. "Faites sauter le barrage!" ils ont crié et ont commencé à recueillir leur dynamite. Puis ils se dirigèrent tous droit vers le barrage.
Le petit-fils d'un des fermiers a demandé à son père ce qui se passait. Il a dit à son fils: "Il n'y a pas assez d'eau dans le fossé, alors on fait sauter le barrage!" Puis il est immédiatement parti suivre le peloton.
"Mais", le petit essaya de crier après son père: "Mais il y a une valve! Il suffit d'ouvrir la valve!" Malheureusement, sa voix était trop douce et ses jambes trop courtes. Ce message n'a donc été transmis à personne.
Le garçon s'assit et pleura. Une demi-heure plus tard, il entendit le lointain "Boom" qui détruisait également son terrain favori au barrage, où se trouvait la valve.
Que s'est-il passé ensuite?
Le déluge a emporté toutes les récoltes précieuses. La banque a emporté la ferme du père du garçon. Son père était incapable de payer pour une bonne école. Alors le garçon a rejoint l'armée pour faire des études supérieures. Là, il a tout appris sur la physique des explosifs et tente maintenant d'inventer un barrage résistant au souffle.
Qu'est-ce que cette histoire a à voir avec ça ici?
- Les cultivateurs sont les autres réponses.
- Le petit garçon est cette réponse ici.
- Le barrage est le sommeil sécurisé Ubuntu.
- La vanne est le bon réglage d'interface.
- L'eau est le processus de démarrage.
- Les cultures sont votre système d'exploitation Ubuntu.
- Et le fossé rempli est, comment le processus de démarrage devrait ressembler.
Le réglage de l'interface, qui vit dans /etc/network/interfaces
, est explosé avec le sommeil en sécurité supprimée enlevé, et même si quelqu'un voit la valve fermée ( auto
), personne ne spottet qu'il pourrait être ouvert aussi!
auto lo iface lo inet loopback
ne fonctionne pas