¿Por qué el administrador de red no comienza en el arranque?


10

Creo que esto comenzó a suceder hace un par de meses cuando actualicé de 10.04 a 12.04.

Cada vez que reinicio, el administrador de red no se inicia. Tengo que ejecutarlo manualmente sudo start network-manager, y luego todo funciona bien.

Cosas que ya he intentado (reiniciar después de cada intento de reparación):

  • Verificó que todos los enlaces /etc/rc*.d/*network-manager existan como deberían.
  • Como el archivo de configuración de arranque del administrador de red menciona local-filesystems, y mi fstab tenía una referencia a un HDD USB que no está conectado, comenté esa línea fuera del fstab.
  • sudo dpkg-reconfigure network-manager y entonces sudo apt-get install --reinstall network-manager
  • Busqué pistas en el registro del sistema, no vi nada que saltara.

No creo que haya modificado /etc/init/network-manager.conf, pero aquí está para referencia:

# 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

Respuestas:


15

La sección 'inicio encendido' le permite saber qué eventos deben emitirse antes de que el arranque inicie el administrador de red.

En este caso es:

  • sistemas de archivos locales
  • dbus
  • red estática

Las probabilidades son que las dos primeras ya se han emitido si ha arrancado en un escritorio.

estática-network-up es emitida por /etc/network/if-up.d/upstart script, crucialmente, el evento no será emitido a menos que cada interfaz configurada como 'auto' /etc/network/interfacesesté activada.

En mi caso, tenía una entrada sobrante para eth0 en la /etc/network/interfacesque estaba configurado para usar DHCP, pero como no había ningún ethernet conectado a eth0, DHCP nunca podría tener éxito.

Puede indicarle a la nueva empresa que emita eventos y puede usar esto para verificar si falta el evento de red estática.

  • Reinicie su computadora y no inicie el administrador de red
  • man initctl(debe ejecutar el comando emitir con sudo, por lo que no es perjudicial ejecutar man initctlpara verificar primero los comandos publicados en Internet)
  • sudo initctl emit static-network-up(es posible que necesite Ctrl+ Cesto después de un tiempo)
  • initctl status network-manager (para verificar si comenzó)

Si esto resuelve el problema /etc/network/interfaces, verifique todo lo que no sea:

auto lo
iface lo inet loopback

Luego reinicie y esperemos que el administrador de red comience como se esperaba.


Tienes toda la razón, este es un estúpido comportamiento idiota de parte de NetworkManager que decide no iniciar porque hay algo más que loestá en ese archivo, ¡incluso si deja WIFI completamente sin configurar!
Forbesmyester

funcionó para mí, bastante mágico: P
boh

5

En mi Arch Linux, necesitaba ejecutar el siguiente comando y ahora se NetworkManagerinicia automáticamente:

systemctl enable NetworkManager

Esto permite NetworkManagerque se ejecute al inicio. Esto es lo que entiendo.


Gracias, esto resolvió mi problema. Estaba fallando después de la actualización + bloqueo antes de reiniciar. Casa de la Moneda 19.1
Toni Homedes i Saun

4

Tuve el mismo problema, pero ninguna de las soluciones propuestas (incluidas algunas de otros foros) ayudó.

De todos modos, después de leer la respuesta de Gordon , simplemente borré la and static-network-uplínea /etc/init/network-manager.conf. Funcionó.


Supongo que el problema aquí es que la red estática debería activarse, pero no lo es. ¿Ves un mensaje de arranque "esperando la configuración de la red"?
Andy

@ Andy, si tiene conexión inalámbrica, no tiene una interfaz estática. Si lo tiene auth eth0en sus interfaces, esperará varios minutos, fallará y nunca activará el evento.
Cerin

Supongo que quieres decir auto eth0? Mientras espero varios minutos, dirá "esperando la configuración de la red", por eso pregunté.
Andy

2

Tuve el mismo problema después de cambiar mi thinkpad mientras reutilizaba el disco viejo. Todavía recordaba las viejas direcciones MAC. Tuve que eliminarlos manualmente en /etc/udev/rules.d/70-persistent-net.rules, lo que me solucionó el problema.


0

Lo mismo aquí el 12.04 - hice:

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

¡Fijo!

También puede editar manualmente ese archivo y corregir las direcciones mac ...


0

Desde el READMEsobre /etc/udev/rules.d:

Udev (7) lee los archivos de este directorio y los utiliza cuando el núcleo realiza los eventos. El demonio udev observa este directorio con inotify para que los cambios en estos archivos se recojan automáticamente , por esta razón deben ser archivos y no enlaces simbólicos a otra ubicación como en el caso de Debian.

más lejos:

Escriba sus propias reglas en este directorio que asignen el nombre, enlaces simbólicos, permisos, etc. que desee. Elija un número más alto que las reglas que desea anular, y se usará el suyo.

así que, por favor, no , como se describe en @epek answer , copie / pegue archivos, solo agregue otro archivo allí con un número entero más alto al principio del nombre del archivo. Por ej.

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

0

para ubuntu 14.04 obtuvo "aplicaciones de inicio" de inicio, agregue agregar nombre-redes cmd-sudo service network-manager reiniciar commant- - [solo funciona configuraciones de red válidas como ips, dns, gateway, etc.]


0

Una solución fácil es editar /etc/rc.local para iniciar NetworkManager cada vez que inicie su computadora. Esto realmente no resuelve el problema raíz, pero hizo las cosas funcionales y simples para mí.

Primero, ejecute este comando:

sudo vim /etc/rc.local

Entonces, el contenido debería ser similar a esto:

#!/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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.