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!