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.