Ubuntu 16.04 - загрузка системы ждет, говоря «Поднимите сетевые интерфейсы»

43

У меня есть система Ubuntu 16.04 с двумя интерфейсами - eth0, настроенный с DHCP, и eth1, настроенный со статическими IP-адресами.

Файл / etc / network / interfaces имеет следующую конфигурацию

# 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

Проблема в том, что, когда DHCP-сервер недоступен по ссылке eth0 или ссылка eth0 не работает, система зависает на 5 минут, что значительно замедляет процесс загрузки.

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

Я попытался сократить время в файле /etc/systemd/system/network-online.target.wants/networking.service, который ускоряет загрузку системы, не дожидаясь сетевой службы, однако не загружает виртуальные интерфейсы на eth1.

Есть ли более чистый способ загрузки системы без полной конфигурации сети на интерфейсе eth0 и загрузки статической конфигурации сети на eth1?

джана
источник
1
Это может помочь: ubuntuforums.org/showthread.php?t=2323253
Mine
.. или это: askubuntu.com/questions/203157/…
ElHeineken

Ответы:

53

Кажется, кто-то был параноидален из-за того, что клиент вовремя не получил DHCP.

Отредактируйте этот файл /etc/dhcp/dhclient.confи установите timeoutразумное значение, например

timeout 15

Значение по умолчанию 300 секунд слишком велико. Предложенное значение замены 15 было проверено и работает нормально.

boutch55555
источник
3
Спасибо. Обозначение DNS / DHCP на данный момент и 5 минут ожидания убили меня.
Эшли Хьюз
1
Ubuntu имеет несколько нечетных настроек по умолчанию. Это было интересно ...
Уильям Т Фроггард
Вау, это будет действительно полезно в дальнейших конфигурациях.
Дэвид Табернеро М.
1
Это не работает на Ubuntu 18, но этот ответ работает.
xinthose
После всех этих лет это все еще актуально для меня :)
Wajih
28

Итак, по вашему /etc/network/interfaces, измените это:

# The primary network interface
auto eth0
iface eth0 inet dhcp

к этому:

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

Это запустит интерфейс, eth0когда ядро ​​обнаружит событие горячего подключения от интерфейса (т. Е. Когда вы подключите кабель), вместо запуска его при загрузке.

Джонатан Уолтер
источник
1
Этот подход хорошо работает на физическом оборудовании, но не работает в виртуализированных средах (пробовал vmware и virtualbox). Похоже, что виртуализированное ядро ​​не генерирует правильные события.
dtoubelis
Этот подход также исправил мои проблемы после установки нового сетевого адаптера 10G в коробку, в которой ранее был только встроенный 1G. Ubuntu смог увидеть карту и загрузить драйверы, но загрузка продолжала тормозить, ожидая Raise Network Interfaces. Корректировка имени устройства от eth0 соответственно исправила его.
Джозеф Харамильо
2

Как указано в, вы можете изменить значение тайм-аута для повышения сетевого интерфейса (если работает systemd):

Откройте окно терминала и введите команду:

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

Затем измените строку TimeoutStartSec=5minна выбранное вами значение. Сохраните файл, нажав Ctrl+, oа затем Ctrl+ x.

Наконец, перезапустите демон:

sudo systemctl daemon-reload
Майк
источник
4
Обычно плохая идея запускать программу с графическим интерфейсом с использованием sudo ... Я изменил ваш ответ, чтобы использовать инструменты, которые ведут себя немного лучше.
Чарльз Грин
Это правильный ответ для меня. Мой компьютер не всегда подключен к сети при загрузке. Я не хочу ждать 5 минут, пока Ubuntu это выяснит.
Иц
2
Я хотел бы знать, кто идиот, который думал, что перерыв в 5 минут был "хорошей идеей".
Клейтон Дьюкс