A solução real (!) para este problema é o seguinte comando:
sudo sed -i.old-'date +%Y%m%d-%H%M%S' '/^auto lo$/!s/^auto /allow-hotplug /' /etc/network/interfaces
Em /etc/network/interfaces , isso altera todas as interfaces (exceto lo ) de auto para allow-hotplug . Desta forma, a inicialização não aguarda mais que as interfaces apareçam primeiro.
Warning: After this change a permanently connected interface might stay down after boot until systemd receives a real plug event. See Notes below.
Exemplo antes (veja em auto eth0 ):
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
Exemplo após (veja em allow-hotplug eth0 ):
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Notas:
-
Se você montar compartilhamentos de rede em /etc/fstab , use auto e não allow-hotplug para a interface para os compartilhamentos de rede. Senão você pode ver coisas estranhas acontecendo no processo de inicialização, porque a rede deve estar disponível antes das montagens de compartilhamento de rede. allow-hotplug não garante isso.
-
Se as interfaces estiverem no modo auto , você expressa: "Essas interfaces são cruciais para a inicialização, então devemos esperar para que elas apareçam antes de inicializarmos." Portanto, se eles não aparecerem, o Ubuntu atrasa a inicialização com o recurso à prova de falhas, esperando que eles apareçam por até 120 segundos. E esta é a coisa certa a fazer.
Por outro lado, as Interfaces definidas como allow-hotplug informam ao Ubuntu que elas são opcionais. Portanto, eles não são essenciais para iniciar.
-
O Ubuntu registra quais interfaces estão disponíveis no momento da instalação e assume que elas são importantes para a operação posterior. Essa é uma opção conservadora, caso a interface seja necessária mais tarde, porque alguns Serviços se vinculam a ela, pois esses serviços não são iniciados se perderem a interface.
-
Existe também uma configuração do kernel que permite que os processos se liguem a IPs inexistentes, então você sempre pode usar allow-hotplug , se quiser, sem prejudicar a estabilidade do processo de inicialização. No entanto, esta é uma história completamente diferente.
Notas (atualização 2018-01-04):
-
Ao meu lado, allow-auto faz o mesmo que auto , por isso não ajuda (tentei com br0 ).
-
Após atualizar um dos meus sistemas para o Debian Stretch e mudar para o SystemD, a inicialização ficou insuportavelmente atrasada enquanto aguardava a interface br0 (permanentemente conectada de fora) surgir. No entanto, com allow-hotplug , a interface br0 permaneceu inativa após a inicialização . Talvez isso seja causado pelo SystemD não receber nenhum evento de plug real ou sintético em uma interface desse tipo. Eu não me aprofundei nisso, pois alguns crontab entry @reboot /sbin/ifup br0 para root corrigiram para mim. (Isso funciona, mas provavelmente é algo que melhor não deveria ser recomendado aos outros. Gostaria de saber se alguém tem uma ideia melhor.)
((o texto termina aqui, o resto é para o seu entretenimento))
E aqui está uma história de hora de dormir, inspirada por isso:
Algumas fazendeiras cultivaram fúria. Suas colheitas secaram! Então eles
investigou por que não havia água suficiente na vala de irrigação.
No distanciamento mais próximo, eles imediatamente identificaram seu culpado. o
barragem! A maldita represa ergueu toda a água!
A partir deste momento, ficou claro o que fazer. "Explodir a represa!" eles
gritou e começou a recolher sua dinamite. Então todos eles se dirigiram
direto para a represa.
O filhinho de um dos fazendeiros perguntou ao pai sobre
o que estava acontecendo. Ele disse ao filho: "Não há água suficiente
a vala, então nós explodimos a represa! "Então ele imediatamente saiu para
siga o pacote.
"Mas", o pequeno tentou gritar atrás do pai: "Mas há um
válvula! Basta abrir a válvula! "Infelizmente, sua voz era muito gentil e
suas pernas eram muito curtas, então essa mensagem não chegou a ninguém.
O menino sentou-se e chorou. Meia hora depois, ele ouviu o "Boom" distante que destruiu seu terreno favorito na represa, onde a válvula também ficava.
O que aconteceu depois?
O Dilúvio varreu todas as culturas preciosas.
O banco levou a fazenda do pai do menino.
Seu pai não pôde pagar por uma boa escola. Então o menino se juntou ao exército para obter um ensino superior. Lá, ele aprendeu tudo sobre os fias dos explosivos e agora tenta inventar uma barragem de resgate.
O que essa história tem a ver com isso aqui?
- Os agricultores de culturas são as outras respostas.
- O garotinho é essa resposta aqui.
- A barragem é o sono seguro do Ubuntu.
- A válvula é a configuração de interface adequada.
- A água é o processo de inicialização.
- As culturas são o seu sistema operacional Ubuntu.
- E a vala cheia é como o processo de inicialização deve se parecer.
A configuração da interface, que vive em /etc/network/interfaces , é destruída com o sleep in failsafe removido e, mesmo que alguém veja a válvula fechada ( auto ), ninguém pode evitar que ela seja openend!