La vraie solution (!) à ce problème est la commande suivante:
sudo sed -i.old-'date +%Y%m%d-%H%M%S' '/^auto lo$/!s/^auto /allow-hotplug /' /etc/network/interfaces
Dans /etc/network/interfaces
, toutes les interfaces sont modifiées (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 que systemd
reçoive un événement de connexion réel. 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
Notes:
-
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, vous pouvez voir des choses étranges se produire lors du processus de 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 mode auto
, vous dites: "Ces interfaces sont cruciales pour le démarrage, nous devons donc attendre avant de les démarrer." Par conséquent, s'ils ne sont pas montés, Ubuntu retarde le démarrage avec sécurité intégrée, en attendant qu'ils apparaissent pendant 120 secondes. Et c'est la bonne chose à faire.
En revanche, les interfaces définies sur allow-hotplug
indiquent à 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 un fonctionnement ultérieur. C'est un choix prudent, dans le cas où l'interface est nécessaire par la suite, car certains services s'y connectent, car ces services ne démarrent pas s'ils manquent l'interface.
-
Il existe également un paramètre de noyau qui permet aux processus de se lier à des adresses IP inexistantes. Vous pouvez donc toujours utiliser allow-hotplug
si vous le souhaitez, sans nuire à la stabilité du processus de démarrage. Cependant, cette histoire est complètement différente.
Notes (mise à jour 2018-01-04):
-
De mon côté, allow-auto
fait la même chose que auto
, donc ça n'aide pas (essayé avec br0
).
-
Après la mise à niveau d’un de mes systèmes vers Debian Stretch et le passage à 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 br0
restait inactif après le démarrage . Cela est peut-être dû au fait que SystemD ne reçoit aucun événement de prise réel ou synthétique sur une telle interface. Je n'ai pas approfondi cette question, car certains obscure crontab
entry @reboot /sbin/ifup br0
pour root
l'ont corrigé pour moi. (Cela fonctionne, mais c'est probablement quelque chose qui ne devrait pas être recommandé aux autres. Je voudrais savoir si quelqu'un a une meilleure idée.)
((Le texte se termine ici, le reste est pour votre divertissement))
Et voici une histoire de l'heure du coucher, inspirée par ceci:
Certains cultivateurs se sont déchaînés. Leurs récoltes ont séché! Afin qu'ils
ont étudié pourquoi il n'y avait pas assez d'eau dans le fossé d'irrigation.
Dans la proximité la plus proche, ils ont immédiatement repéré leur coupable. le
barrage! Le damné barrage a tenu toute l'eau!
À partir de ce moment-là, il était clair que faire. "Explose le barrage!" ils
a crié et a commencé à recueillir leur dynamite. Puis ils se sont tous dirigés
tout droit pour 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 a immédiatement laissé à
suivez le pack.
"Mais", le petit a essayé de crier après son père, "mais il y a un
soupape! Il suffit d'ouvrir la valve! "Malheureusement, sa voix était trop douce et
ses jambes étaient trop courtes, alors ce message n’a atteint personne.
Le garçon s'est assis et a pleuré. Une demi-heure plus tard, il entendit le lointain "Boom" qui détruisit son camp favori au barrage où se trouvait également la valve.
Que s'est-il passé ensuite?
Le déluge a emporté toutes les précieuses récoltes.
La banque a pris la ferme du père du garçon.
Son père était incapable de payer pour une bonne école. Le garçon a donc rejoint l'armée pour obtenir une éducation supérieure. Là, il a tout appris sur le phytique des explosifs et tente maintenant d’inventer un barrage résistant aux explosions.
Qu'est-ce que cette histoire a à voir avec cela ici?
- Les agriculteurs sont les autres réponses.
- Le petit garçon est la réponse ici.
- Le barrage est le dortoir Ubuntu.
- La vanne est le paramètre d’interface approprié.
- L’eau est le processus de démarrage.
- Les cultures sont votre système d'exploitation Ubuntu.
- Et le fossé rempli, comment le processus de démarrage devrait ressembler.
Le paramétrage de l'interface, qui réside dans /etc/network/interfaces
, est supprimé avec le sommeil en sécurité supprimé, et même si quelqu'un voit la vanne fermée ( auto
), personne n'indique qu'il pourrait être ouvert également!