Я думаю, что это начало происходить пару месяцев назад, когда я обновился с 10.04 до 12.04.
Всякий раз, когда я перезагружаюсь, сетевой менеджер не запускается. Я должен вручную запустить sudo start network-manager
, и тогда все работает нормально.
Вещи, которые я уже пробовал (перезагрузка после каждой попытки исправления):
local-filesystems
, и мой fstab имел ссылку на USB HDD, который не подключен, я прокомментировал эту строку из fstab. sudo dpkg-reconfigure network-manager
, а затем sudo apt-get install --reinstall network-manager
Я не думаю, что я изменил /etc/init/network-manager.conf
, но здесь это для справки:
# 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
У меня была такая же проблема после переключения моего ThinkPad при повторном использовании старого диска. Он все еще помнил старые MAC-адреса. Мне пришлось удалить их вручную в /etc/udev/rules.d/70-persistent-net.rules, что решило проблему для меня.
В разделе «start on» вы можете узнать, какие события нужно отправить, прежде чем upstart запустит network-manager.
В этом случае это:
Коэффициенты первые два уже были выпущены, если вы загрузились на рабочий стол.
static-network-up испускается с помощью /etc/network/if-up.d/upstart script
, главное, событие не будет сгенерировано, если не работает каждый интерфейс, настроенный как «автоматический» в /etc/network/interfaces
.
В моем случае у меня была оставленная запись для eth0 в /etc/network/interfaces
, которая была настроена на использование DHCP, но, поскольку не было Ethernet, подключенного к eth0, DHCP никогда не мог преуспеть.
Вы можете сказать upstart отправлять события и использовать это, чтобы проверить, пропало ли это событие статической сети.
man initctl
(вам нужно запустить команду emit с помощью sudo, так что запускать man initctl
для проверки команд, размещенных на сначала интернет) sudo initctl emit static-network-up
(может потребоваться Ctrl kbd> + C kbd> через некоторое время) initctl status network-manager
( чтобы проверить, началось ли это) Если это решит вашу проблему, проверьте /etc/network/interfaces
, закомментируйте все, кроме:
auto lo iface lo inet loopback
Затем перезагрузите компьютер и, надеюсь, сетевой менеджер начнет работать как ожидается.
В моем Arch Linux мне нужно было выполнить следующую команду, и теперь NetworkManager
запускается автоматически:
systemctl enable NetworkManager
Это позволяет запускать NetworkManager
при запуске. Это то, что я понимаю.
Из README
по /etc/udev/rules.d
:
Файлы в этом каталоге читаются udev (7) и используются, когда события выполняются ядром. Демон udev просматривает этот каталог с помощью inotify, так что изменения в этих файлах автоматически принимаются , по этой причине они должны быть файлами, а не символическими ссылками на другое место как в случае с Debian.
blockquote>далее:
Напишите свои собственные правила в этом каталоге, которые присваивают нужное имя, символические ссылки, разрешения и т. д. Выберите число выше, чем те правила, которые вы хотите переопределить, и ваши будут использованы.
blockquote>поэтому, пожалуйста, не , как описано в @epek answer , копируйте / вставляйте файлы, а просто добавьте еще один файл с более высокое целое число в начале в имени файла. Например,
// Ubuntu core: 70-persistent-net.rules // Custom overrides and/or additions: 80-persistent-net.rules
Была такая же проблема, но ни одно из предложенных решений (включая некоторые из других форумов) не помогло.
В любом случае, прочитав ответ Гордона , я просто удалил строку and static-network-up
из /etc/init/network-manager.conf
. Это сработало.
То же самое здесь, 12.04 - я сделал:
sudo -s
mv /etc/udev/rules.d/70-persistent-net.rules ~/
touch /etc/udev/rules.d/70-persistent-net.rules
reboot
Исправлено!
Вы также можете вручную отредактировать этот файл и исправить MAC-адреса ...
для ubuntu 14.04 получил домашний хит «автозагрузка приложений», добавил add name-networks, cmd-sudo service network manager, перезапустил commant- - [его работа работает только с действующими сетевыми настройками, такими как ips, dns, шлюз и т. Д.]
Простой обходной путь - отредактировать /etc/rc.local , чтобы загружать NetworkManager при каждой загрузке компьютера. Это на самом деле не решает проблему с корнем, но сделало вещи функциональными и простыми для меня.
Сначала выполните эту команду:
sudo vim /etc/rc.local
Затем содержимое должно выглядеть примерно так:
#!/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