Por que o gerenciador de rede não inicia na inicialização?


10

Acho que isso começou a acontecer alguns meses atrás, quando eu atualizei do 10.04 para o 12.04.

Sempre que eu reinicio, o gerenciador de rede não inicia. Eu tenho que executar manualmente sudo start network-manager, e então tudo funciona bem.

Coisas que eu já tentei (reinicializando após cada tentativa de correção):

  • Verificou-se que todos os links /etc/rc*.d/*network-manager existem da maneira que deveriam.
  • Como o arquivo de configuração inicial do gerenciador de rede menciona local-filesystemse meu fstab tinha uma referência a um HDD USB que não está conectado, comentei essa linha do fstab.
  • sudo dpkg-reconfigure network-manager e depois sudo apt-get install --reinstall network-manager
  • Procurei no syslog por dicas, não viu nada que saltou.

Acho que não modifiquei /etc/init/network-manager.conf, mas aqui está como referência:

# network-manager - network connection manager
#
# The Network Manager daemon manages the system's network connections,
# automatically switching between the best available.

description "network connection manager"

start on (local-filesystems
      and started dbus
      and static-network-up)
stop on stopping dbus

expect fork
respawn

script
    # set $LANG so that messages appearing on the GUI will be translated. See LP: 875017
    if [ -r /etc/default/locale ]; then
        . /etc/default/locale
        export LANG LANGUAGE LC_MESSAGES LC_ALL
    fi

    exec NetworkManager
end script

Respostas:


15

A seção 'iniciar' permite que você saiba quais eventos precisam ser emitidos antes que o iniciante inicie o gerenciador de rede.

Nesse caso, é:

  • sistemas de arquivos locais
  • dbus
  • rede estática

As probabilidades são as duas primeiras que já foram emitidas se você inicializou em uma área de trabalho.

O static-network-up é emitido pelo /etc/network/if-up.d/upstart script, crucialmente, o evento não será emitido, a menos que todas as interfaces configuradas como 'auto' in /etc/network/interfacesestejam ativadas.

No meu caso, eu tinha uma entrada restante para eth0 na /etc/network/interfacesqual estava configurada para usar DHCP, mas como não havia nenhuma Ethernet conectada ao eth0, o DHCP nunca poderia ter êxito.

Você pode dizer ao iniciante para emitir eventos e pode usá-lo para verificar se está faltando o evento de rede estática.

  • Reinicie o seu computador e não inicie o gerenciador de rede
  • man initctl(você precisa executar o comando emit com o sudo, portanto, não há problema man initctlem verificar os comandos postados na Internet primeiro)
  • sudo initctl emit static-network-up(pode ser necessário Ctrl+ Cisso depois de um tempo)
  • initctl status network-manager (para verificar se começou)

Se isso resolver sua verificação do problema /etc/network/interfaces, comente tudo, exceto:

auto lo
iface lo inet loopback

Em seguida, reinicie e esperemos que o gerenciador de rede inicie conforme o esperado.


Você está certo, esse é um comportamento idiota estúpido do NetworkManager, que decide não iniciar porque loexiste algo diferente do arquivo, mesmo que deixe o WIFI completamente desconfigurado!
Forbesmyester

funcionou para mim, muito mágico: P
boh 16/06

5

No meu Arch Linux, eu precisava executar o seguinte comando e agora NetworkManagerinicia automaticamente:

systemctl enable NetworkManager

Isso permite NetworkManagerque ele seja executado na inicialização. Isto é o que eu entendo.


Obrigado, isso resolveu meu problema. Estava falhando após a atualização + falha antes da reinicialização. Mint 19.1
Toni Homedes e Saun

4

Teve o mesmo problema, mas nenhuma das soluções propostas (incluindo algumas de outros fóruns) ajudou.

De qualquer forma, depois de ler a resposta de Gordon , simplesmente excluí a and static-network-uplinha de /etc/init/network-manager.conf. Funcionou.


Acho que o problema aqui é que a rede estática deve ser acionada, mas não é. Você vê uma mensagem de inicialização "aguardando configuração de rede"?
Andy

@ Andy, se ele estiver sem fio, ele não tem interface estática. Se ele tiver auth eth0em suas interfaces, esperará alguns minutos, falhará e nunca disparará o evento.
Cerin

Eu acho que você quer dizer auto eth0? Enquanto aguarda alguns minutos, ele diz "aguardando configuração da rede", foi por isso que perguntei.
217 Andy

2

Eu tive o mesmo problema depois de alternar meu thinkpad enquanto reutilizava o disco antigo. Ainda lembrava os antigos endereços MAC. Eu tive que removê-los manualmente em /etc/udev/rules.d/70-persistent-net.rules que corrigiu o problema para mim.


0

O mesmo aqui em 12.04 - fiz:

sudo -s
mv /etc/udev/rules.d/70-persistent-net.rules ~/
touch /etc/udev/rules.d/70-persistent-net.rules
reboot

Fixo!

Você também pode editar manualmente esse arquivo e corrigir os endereços mac ...


0

Desde o READMEon /etc/udev/rules.d:

Os arquivos neste diretório são lidos pelo udev (7) e usados ​​quando os eventos são executados pelo kernel. O daemon udev observa este diretório com o inotify, para que as alterações nesses arquivos sejam automaticamente capturadas , por esse motivo, eles devem ser arquivos e não links simbólicos para outro local, como no caso do Debian.

mais distante:

Escreva suas próprias regras neste diretório que atribua o nome, links simbólicos, permissões etc. que você deseja. Escolha um número maior do que as regras que você deseja substituir e o seu será usado.

então, por favor, não faça , como descrito na @epek resposta , copiar / colar arquivos, mas basta adicionar outro arquivo de lá com um maior número inteiro no início no nome do arquivo. Por exemplo

// Ubuntu core:
70-persistent-net.rules
// Custom overrides and/or additions:
80-persistent-net.rules

0

para o ubuntu 14.04, peguei home-hit "aplicativos de inicialização", clique em add name-networks cmd-sudo service network-manager restart commant- - [seu trabalho apenas configurações de rede válidas como ips, dns, gateway etc]


0

Uma solução fácil é editar o arquivo /etc/rc.local para inicializar o NetworkManager toda vez que você inicializar o computador. Isso realmente não resolve o problema raiz, mas tornou as coisas funcionais e simples para mim.

Primeiro, execute este comando:

sudo vim /etc/rc.local

Em seguida, o conteúdo deve ser semelhante a este:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

#Sleeping a little might be necessary to let it catch up the boot. 
#However, for me, this sleep was a useless overhead.
#sleep 3 
service network-manager restart

exit 0
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.