„Oczekiwanie na konfigurację sieci” Problem


72

Ten problem występuje czasem, gdy uruchamia się Ubuntu. Czasami nie można tak naprawdę uruchomić systemu.

Ekran powitalny z 5 kropkami i komunikatem:

oczekiwanie na konfigurację sieci

śledzony przez:

oczekiwanie dodatkowych 60 sekund na konfigurację sieci

Odpowiedzi:


44

Zdecydowałem się na podejście CLI i Alt + Ctrl + F2, więc jesteś WOLNY, aby to zrobić, gdy jesteś zalogowany do GUI - Okej, napiszę ogólne kroki, więc możesz swobodnie stosować dowolne podejście.

  1. Edytuj /etc/network/interfaces:

    sudo nano /etc/network/interfaces
    
    1. Jeśli piszesz to z LXTerminal podczas logowania do GUI, to:

      gksudo leafpad /etc/network/interfaces
      
  2. Usuń wszystko, co tam napisano i po prostu to zachowaj:

    auto lo
    iface lo inet loopback
    

Bardzo dobrym pomysłem jest przechowywanie kopii zapasowej pliku „interfejsów” na wszelki wypadek, dlatego pamiętaj o zapisaniu pliku „interfaces.bak”, zanim cokolwiek zrobisz

  1. Ctrl+ Ojeśli używasz nano i Ctrl+ S(Plik> Zapisz), jeśli używasz leafpad.

  2. Ctrl+ Xjeśli używasz nano i Ctrl+ Q(Plik> Wyjdź), jeśli używasz leafpada.

  3. Restart.

  4. Gotowy.


3
auto lo iface lo inet loopbacknie działa
narysuj

@draw to musi być na dwóch liniach: 1. linia jest auto lo; Druga linia toiface lo inet loopback
Daniel Kullmann

2
@danielkullmann; auto lo; (1. linia) iface lo inet loopback; (2. linia) Dla mnie to też nie działa. Muszę ręcznie skonfigurować interfejs i podać jego adres !!
mythicalcoder

3
Mój plik interfejsów wygląda dokładnie tak, ale problem nie ustępuje /:
Andy

5
Pamiętaj, że zadziała to tylko po network-managerzainstalowaniu. Jest instalowany na komputerowej wersji Ubuntu, ale nie na wersji serwerowej. Jeśli nie masz network-managerzainstalowanego i to zrobisz, żaden z interfejsów nie będzie działał
kbuilds

37

W każdej napotkanej przeze mnie sytuacji jest to problem w / etc / network / interfaces

Nie powinieneś usuwać wszystkiego, jak sugerowano we wcześniejszym poście, ale raczej sprawdzać, czy nie występują typowe problemy.

W moim przypadku było to określenie parametru bramy dla dodatkowego IPS Ethernet. Musisz tylko zdefiniować bramę dla głównego interfejsu dla każdej karty.

Rozumiem przez to, że twój plik wygląda następująco:

auto eth0
iface eth0 inet static
  address 10.0.0.5
  netmask 255.255.255.0
  network 10.0.0.0
  gateway 10.0.0.1

auto eth0:0
iface eth0:0 inet static
  address 10.0.0.6
  netmask 255.255.255.0
  network 10.0.0.0
  #gateway 10.0.0.1

Drugi parametr bramy spowoduje, że Ubuntu zawiesi się przez ponad 60 sekund podczas rozruchu, wystarczy zdefiniować bramę dla pierwszej sekcji eth0, musisz zdefiniować bramę dla dodatkowych kart nic, IE eth1, wlan0 itp., Ale NIE dla dodatkowe IPS przypisane do tej samej nici. Wcześniejsza wersja Ubuntu nie miała z tym żadnych problemów, ale Ubuntu 12.04 tego nie lubi ... Bądź miły, jeśli można to po prostu zignorować.

Jestem pewien, że w tym pliku występują inne „problemy”, które mogą to powodować, dlatego należy sprawdzić plik i upewnić się, że nie ma literówek itp.


Opcja „sieć” jest przestarzała i nie jest już potrzebna.
jdthood,

2
ta odpowiedź nie dotyczy mnie, nie mam żadnych bramek w aktywnych
sekcjach

3
To była odpowiedź, której potrzebowałem
Patrick Chu

1
Miałem dokładnie ten sam problem i to rozwiązanie działało idealnie!
Sunny,

W moim przypadku linia rozpoczynająca się od „auto” zawierała interfejs „eth2”, który już nie istniał, tzn. Nie był już skonfigurowany w interfejsach.
RTasche

36

To też może pomóc: http://tech.pedersen-live.com/2012/05/disable-waiting-for-network-configuration-messages-on-ubuntu-boot/

Zasadniczo edytujesz ten /etc/init/failsafe.confplik i wyłączasz (komentujesz) sleeppolecenia, które faktycznie wstrzymują system. Oprócz wykonania zadania, przynajmniej w moim przypadku nie było żadnego błędu w konfiguracji sieci, więc wszystko poszło dobrze.

Nawiasem mówiąc, twoje rozwiązanie pozwala jedynie skonfigurować interfejs pętli zwrotnej, na co nie było mnie stać w mojej konfiguracji (musiałem ręcznie skonfigurować interfejsy i mosty).


3
To powinna być poprawna odpowiedź. Wiele osób uważa, że ​​funkcjonalność failsafe.confto przesada
kbuilds

Zabicie odpornego na uszkodzenia nigdy nie jest właściwą odpowiedzią. Naprawieniem jest poprawienie niewłaściwej konfiguracji, która pozwala na uruchomienie w razie awarii. Istnieje wiele miejsc, w których może występować niewłaściwa konfiguracja, ale ostatecznie nie jest to bezpieczne!
Tino

2
To moim zdaniem odpowiednia odpowiedź. Robię bootowanie bez konfiguracji sieci, kiedy klonuję serwery lub przywracam kopie zapasowe w sytuacjach awaryjnych. Nie muszę czekać 2 minuty w nagłych wypadkach, ale nie ma nic „złego” w moich konfiguracjach.
FreeSoftwareServers

Nie można uzyskać dostępu do adresu URL, wygląda na to, że strona uległa awarii. Jest dostępny na archive.org: web.archive.org/web/20160301200431/http://…
rog

27

Prawdziwym (!) Rozwiązaniem tego problemu jest następująca komenda:

sudo sed -i.old-`date +%Y%m%d-%H%M%S` '/^auto lo$/!s/^auto /allow-hotplug /' /etc/network/interfaces

W /etc/network/interfacestym zmienia się wszystkie interfejsy (oprócz lo) od autodo allow-hotplug. W ten sposób boot nie będzie już czekał na pierwsze interfejsy.

Ostrzeżenie: po tej zmianie interfejs trwale podłączony może pozostać wyłączony po rozruchu, dopóki nie systemdotrzyma rzeczywistego zdarzenia wtyczki. Zobacz uwagi poniżej.

Przykład przed (spójrz na auto eth0):

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Przykład po (spójrz na allow-hotplug eth0):

auto lo
iface lo inet loopback

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

Uwagi:

  • Jeśli montujesz udziały sieciowe /etc/fstab, używaj interfejsu do udziałów sieciowych , autoa nie allow-hotpluginterfejsu. W przeciwnym razie podczas uruchamiania mogą się zdarzyć dziwne rzeczy, ponieważ sieć musi być dostępna przed podłączeniem udziału sieciowego. allow-hotplugnie zapewnia tego.

  • Jeśli interfejsy są w autotrybie, wyrażasz: „Te interfejsy są kluczowe dla rozruchu, więc musimy poczekać, aż pojawią się przed uruchomieniem”. Dlatego jeśli się nie pojawią, Ubuntu opóźnia rozruch z zabezpieczeniem przed awarią, czekając na ich pojawienie się do 120 sekund. I to jest właściwe.

    W przeciwieństwie do interfejsów, które mają allow-hotpluginformować Ubuntu, że są opcjonalne. Dlatego nie są niezbędne do rozruchu.

  • Ubuntu rejestruje, które interfejsy są dostępne w czasie instalacji i zakłada, że ​​są one ważne dla późniejszej pracy. Jest to konserwatywny wybór, na wypadek, gdyby interfejs był później potrzebny, ponieważ niektóre Usługi się z nim wiążą, ponieważ takie usługi nie uruchamiają się, jeśli przegapią interfejs.

  • Istnieje również ustawienie jądra, które pozwala procesom łączyć się z nieistniejącymi adresami IP, więc zawsze możesz użyć, allow-hotplugjeśli chcesz, bez szkody dla stabilności procesu rozruchu. Jest to jednak zupełnie inna historia.

Uwagi (aktualizacja 2018-01-04):

  • Po mojej stronie allow-autorobi to samo auto, więc nie pomaga (próbowałem z br0).

  • Po uaktualnieniu jednego z moich systemów do Debian Stretch i przejściu na SystemD, rozruch stał się nieznośnie opóźniony w oczekiwaniu na pojawienie się interfejsu (trwale podłączonego na zewnątrz) br0. Jednak z allow-hotplug interfejsem br0pozostał po uruchomieniu . Być może jest to spowodowane tym, że SystemD nie otrzymuje żadnego rzeczywistego lub syntetycznego zdarzenia wtyczki na takim interfejsie. Nie kopać głębiej w to, jak jakiś niejasnych crontabwpisu @reboot /sbin/ifup br0do rootstacjonarnej to dla mnie. (To działa, ale prawdopodobnie jest coś, czego lepiej nie polecać innym. Chciałbym usłyszeć, czy ktoś ma lepszy pomysł).

((Tekst kończy się tutaj, reszta służy rozrywce))

A oto historia snów inspirowana tym:

Niektórzy rolnicy zaczęli szaleć. Ich uprawy wyschły! Sprawdzili więc, dlaczego w rowie irygacyjnym nie ma wystarczającej ilości wody. W bliższej odległości natychmiast zauważyli winowajcę. Tama! Cholerna tama podniosła całą wodę!

Od tego momentu stało się jasne, co robić. „Wysadzić tamę!” krzyczeli i zaczęli zbierać dynamit. Potem wszyscy ruszyli prosto w kierunku tamy.

Mały syn jednego z rolników zapytał ojca o to, co się dzieje. Powiedział swojemu synowi: „W rowie nie ma wystarczającej ilości wody, więc wysadzamy tamę!” Potem natychmiast wyszedł, by pójść za stadem.

„Ale”, mały próbował krzyczeć za ojcem: „Ale jest zawór! Po prostu otwórz zawór!” Niestety jego głos był zbyt łagodny, a nogi zbyt krótkie, więc ta wiadomość nie dotarła do nikogo.

Chłopiec usiadł i płakał. Pół godziny później usłyszał odległy „Bum”, który zniszczył jego ulubione plagi na tamie, gdzie również znajdował się zawór.

Co stało się później?

Powódź zmiotła wszystkie cenne plony. Bank zabrał farmę ojca chłopca. Jego ojciec nie był w stanie zapłacić za dobrą szkołę. Tak więc chłopiec wstąpił do wojska, aby uzyskać wyższe wykształcenie. Tam dowiedział się wszystkiego o fizyce materiałów wybuchowych i teraz próbuje wynaleźć tamę odporną na wybuch.

Co ta historia ma z tym wspólnego?

  • Rolnicy zajmujący się uprawami to inne odpowiedzi.
  • Mały chłopiec to ta odpowiedź tutaj.
  • Tama jest bezpiecznym snem Ubuntu.
  • Zawór jest właściwym ustawieniem interfejsu.
  • Woda jest procesem rozruchowym.
  • Uprawy to Twój system operacyjny Ubuntu.
  • A wypełniony rów to, jak powinien wyglądać proces rozruchu.

Ustawienie interfejsu, w którym żyje /etc/network/interfaces, jest wysadzane w powietrze ze zdjętym snem w razie awarii, a nawet jeśli ktoś zobaczy zamknięty zawór ( auto), nikt nie wypowiada, że ​​można go również otworzyć!


2
To jest poprawna odpowiedź. Mam nadzieję, że pierwotny pytający wybierze to jako poprawną odpowiedź i oznaczy problem jako rozwiązany.
thatmaheshrs

1
Dziękujemy za udostępnienie @Tino. Historia jest ładna, ale moim zdaniem za bardzo zaśmieca odpowiedź i przynajmniej nie powinna być umieszczana przed ostatnimi przydatnymi uwagami technicznymi
ndemou

@ndemou Dziękujemy za odnotowanie, odpowiednio edytowane. Próbowałem użyć spoilera do historii, ale nie wyszła tak, jak mi się podobało, więc zostawiłem ją na razie.
Tino

Najlepsza jakość odpowiedzi i ironia tej historii jest bezcenna.
Rui F Ribeiro

13

Dodaj a #w /etc/init/failsafe.confpliku przed wszystkimi wierszami zawierającymi sleep <n>. Takie postępowanie pomogłoby szybko uruchomić komputer.

Doprowadziłoby to do szybszego rozruchu i nie rozwiązałoby żadnych problemów z /etc/network/interfacesplikiem. Naprawianie problemów z /etc/network/interfacesplikiem nie jest celem /etc/init/failsafe.confpliku.

Są sytuacje, w których chcesz , aby interfejs sieciowy nie działał (np. Masz laptopa, który tylko przez pewien czas jest podłączony tylko interfejs eth0 (połączenie przewodowe)). Nie chcę czekać 2 dodatkowe minuty na uruchomienie laptopa, ponieważ nie mam podłączonego połączenia przewodowego.


4
Czy niektóre z tych linii (i celowe opóźnienia, które powodują) mogą być ważne? Jeśli nie, zalecam rozszerzenie tej odpowiedzi, aby wyjaśnić dlaczego.
Eliah Kagan

2
Wierzę, że te opóźnienia są teraz wyłącznie w konfiguracji serwera Ubuntu i mają na celu zmniejszenie liczby osób, które narzekają na rzeczy, które nie działają poprawnie, ponieważ niektóre demony sieciowe uruchomiły się wcześniej, zanim działały interfejsy (może dns), więc lepiej poczekać tutaj niż pospiesz się przez uruchomienie bez połączeń sieciowych.
kkron

1
Dobra odpowiedź! Autor failafe.conf zostawił tam swój e-mail z komentarzami na temat tego, dlaczego czeka na dwie minuty, o ile nie ma statycznego adresu.
Wydaje

2

Miałem podobny problem. Po uruchomieniu ifconfig -astwierdziłem, że jedynymi urządzeniami sieciowymi na moim komputerze były p4p1i lo. Nie było eth0.

Więc edytowany /etc/network/interfaces, zastępując wszystkie wystąpienia eth0z p4p1. Zawartość pliku to teraz:

auto lo
iface lo inet loopback

auto p4p1
iface p4p1 inet dhcp

Po ponownym uruchomieniu sieć działała dobrze.

Jeśli to ważne, korzystałem z wersji Ubuntu 12.04.5 Server.


Być może zastąp auto p4p1go, allow-hotplug p4p1a komputer szybko się uruchomi, jeśli Ethernet nie działa. Zależy to jednak od konfiguracji. Na przykład, jeśli jest to stacja robocza lub serwer z udziałami sieciowymi ( NFSlub Samba), zdecydowanie chcesz poczekać na dostępność sieci przed kontynuowaniem, więc allow-hotplugbyłby to zły wybór.
Tino

Dziękuję Ci!! Z ifconfig -aodkryłem, że interfejsy były naprawdę eth4a eth5.
francadaval
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.