Ubuntu 16.04 - a inicialização do sistema aguarda dizendo "Elevar interfaces de rede"


42

Eu tenho um sistema Ubuntu 16.04 com duas interfaces - eth0 configurado com DHCP e eth1 configurado com endereços IP estáticos.

O arquivo / etc / network / interfaces possui a seguinte configuração

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The Secondary network interface
auto eth1
iface eth1 inet static
address 10.10.1.10
netmask 255.255.255.0
dns-nameservers 74.82.42.42 4.2.2.2

## Virtual Interfaces for virtual hosts
auto eth1:11
iface eth1:11 inet static
address 10.10.1.11
netmask 255.255.255.0

auto eth1:12
iface eth1:12 inet static
address 10.10.1.12
netmask 255.255.255.0

auto eth1:13
iface eth1:13 inet static
address 10.10.1.13
netmask 255.255.255.0

O problema é que, quando o servidor DHCP não está disponível no link eth0 ou se o link eth0 estiver inativo, o sistema trava por 5 minutos, diminuindo significativamente o processo de inicialização.

violet@ubuntu-xenial:~$ systemd-analyze blame
      5min 241ms networking.service
          1.529s nmbd.service
          1.524s winbind.service

Tentei reduzir o tempo no arquivo /etc/systemd/system/network-online.target.wants/networking.service, o que torna o sistema inicializar mais rápido sem aguardar o serviço de rede, no entanto, que falha ao carregar as interfaces virtuais no eth1.

Existe uma maneira mais limpa de deixar o sistema inicializar sem a configuração de rede completa na interface eth0 e ainda carregar toda a configuração de rede estática no eth1?



Respostas:


51

Parece que alguém ficou paranóico com um cliente que não conseguiu o DHCP a tempo.

Edite este arquivo /etc/dhcp/dhclient.confe defina timeoutum valor razoável, como

timeout 15

O valor padrão de 300 segundos é muito alto. O valor de substituição sugerido de 15 foi testado e funciona bem.


3
Obrigado. Labing DNS / DHCP no momento e as esperas de 5 minutos estavam me matando.
Ashley Hughes

11
O Ubuntu possui várias configurações padrão ímpares. Tem sido interessante ...
William T Froggard

Uau, isso será realmente útil em outras configurações.
David Tabernero M.

11
Isso não funciona no Ubuntu 18, mas esta resposta funciona.
X64ose

Depois de todos esses anos, ainda é válido para mim :)
Wajih 03/04

27

Então, no seu /etc/network/interfaces, mude isso:

# The primary network interface
auto eth0
iface eth0 inet dhcp

para isso:

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

Isso iniciará a interface eth0quando o kernel detectar um evento de hotplug da interface (ou seja, quando você conecta um cabo), em vez de iniciá-lo na inicialização.


11
Essa abordagem funciona bem no hardware físico, mas falha em ambientes virtualizados (vmware e virtualbox experimentados). Parece que o kernel virtualizado não gera eventos adequados.
dtoubelis

Essa abordagem também corrigiu meus problemas depois de instalar um novo adaptador de rede 10G em uma caixa que anteriormente só possuía 1G incorporado. O Ubuntu conseguiu ver a placa e carregar os drivers, mas a inicialização ficou parada aguardando o Raise Network Interfaces. O ajuste do nome do dispositivo a partir de eth0 o corrigiu.
Joseph Jaramillo

2

Conforme mencionado, você pode alterar o valor do tempo limite para aumentar a interface de rede (se estiver em execução systemd):

Abra uma janela do terminal e digite o comando:

sudo nano /etc/systemd/system/network-online.target.wants/networking.service

Em seguida, altere a linha TimeoutStartSec=5minpara um valor que você escolher. Salve o arquivo pressionando Ctrl+ oe depois Ctrl+ x.

Por fim, reinicie o daemon:

sudo systemctl daemon-reload

4
Geralmente, é uma má idéia iniciar um programa GUI usando o sudo ... Modifiquei sua resposta para utilizar ferramentas que se comportam um pouco melhor.
Charles Green

Esta é a resposta correta para mim. Meu computador nem sempre está conectado à rede na inicialização. Eu não quero esperar 5 minutos para o Ubuntu descobrir isso.
Yitz

2
Eu adoraria saber quem é o idiota que achou que um tempo limite de 5 minutos era uma "boa ideia".
Clayton Dukes
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.