Zaktualizowałem maszynę wirtualną z systemem Ubuntu Server 15.04 do właśnie wydanej nowej stabilnej wersji 15.10.
Nie było widocznych problemów, ale po ponownym uruchomieniu komputer utracił połączenie sieciowe. lspci
pokazał prawidłową kartę i lsmod
udowodnił, że sterownik został załadowany.
Wskazówki dotyczące edytowania lub usuwania /etc/udev/rules.d/70-persistent-net.rules
nie powiodły się (wciąż brak sieci, brak nowego pliku), słynny /lib/udev/write_net_rules
nawet nie istniał.
Nie mam wiele pojęcia na temat udev i systemd, więc zajęło mi trochę czasu znalezienie w / sys / class / net, że zmieniła się nazwa interfejsu sieciowego. Stało się ens32
, od którego zmieniono nazwę eth0
. Po zmianie /etc/network/interfaces
, komunikacja sieciowa została ponownie włączona.
Ale - dlaczego tak się w ogóle dzieje? A jeśli tak się stanie, czy plik interfejsów nie powinien być aktualizowany automatycznie?
Teraz, gdy usunąłem wirtualną kartę sieciową i utworzyłem inną, eth0
staje się eno16777728
, co nie jest, uhm, miłe.
Czy to zachowanie (przynajmniej zachowanie procedury aktualizacji) powinno być zgłaszane jako błąd?
Co więcej, czy jest już /etc/udev/rules.d/70-persistent-net.rules
przestarzały? I (choć tylko częściowo powiązane) co z tego /etc/udev/rules.d/70-persistent-cd.rules
?)
Edytuj - dodatkowe pytanie (po zaakceptowanej odpowiedzi)/etc/network/interfaces
Niepokoiła mnie
zależność od faktycznej nazwy interfejsu. Próbowałem nowej instalacji * ubuntu na innej maszynie wirtualnej. Ku mojemu zdziwieniu /etc/network/interfaces
zawierało tylko odwołanie do urządzenia loopback. Jednak w mojej oryginalnej maszynie wirtualnej ta zmiana uniemożliwiła uruchomienie sieci. Co jeszcze muszę zmienić?
Edytuj
Cóż, z innego testu dowiedziałem się, że nowy serwer Ubuntu ma kartę interfejsu sieciowego /etc/network/interfaces
, podczas gdy XUbuntu nie. Może używa network-manager
lub coś innego.
źródło
Odpowiedzi:
W Ubuntu 15.10 (Wily Werewolf), rozpoczynając od systemd / udev, automatycznie przypisze przewidywalne, stabilne nazwy interfejsów sieciowych dla wszystkich lokalnych interfejsów Ethernet, Wlan i Wwan ( źródło ).
Udev natywnie obsługuje następujące różne schematy nazewnictwa interfejsów sieciowych:
eno1
:)ens1
)enp2s0
:)enx78e7d1ea46da
:)eth0
- przestarzałeDomyślnie systemd będzie teraz nazywać interfejsy następującymi zasadami:
Jak to wyłączyć?
Zasadniczo masz następujące opcje:
/etc/udev/rules.d/70-my-net-names.rules
cp /lib/udev/rules.d/80-net-setup-link.rules /etc/udev/rules.d/80-net-setup-link.rules
a następnie edytuj tam plik i zmień wiersze w razie potrzeby.net.ifnames=0
wierszu polecenia jądra.źródło
ArchWiki Beginnersguide ma łatwiejszy sposób .
Najpierw uzyskaj adres MAC urządzenia przez
Dane wyjściowe pokazują jak
Twój adres MAC urządzenia to
Po prostu utwórz plik (po prostu otwórz z uprawnieniami sudo w edytorze tekstu)
Dodaj następujący wiersz
Zamień nazwę na poszukiwaną i aa: bb: cc: dd: ee: ff na adres MAC urządzenia.
Teraz uruchom ponownie komputer, a nazwa urządzenia powinna się zmienić.
źródło
DRIVERS=="?*",
poACTION=="add",
. Zobacz także askubuntu.com/questions/767786/...Spróbuj tego: Edytuj swoje
/etc/default/grub
. Zmień linię zdo
i wreszcie uruchom:
jako root i zrestartuj system.
źródło
append (...) net.ifnames=0 (...)
Wiem, że może to być trochę za późno i wydaje się, że dodanie reguły 10-network pomogło, ale nie całkowicie. Musiałem dodać nazwę jądra urządzenia, aby zmienić nazwę. Oto jak udało mi się uruchomić /etc/udev/rules.d/10-network.rules ...
i zmień KERNEL == "" na to, na jakie jądro nazywa urządzenie podczas uruchamiania.
HTH
KC
źródło
Jeśli masz nową instalację
Następnie
Sprawdź, czy masz plik udev net ruels. Jeśli tak, usuń go.
Teraz edytuj / etc / network / interfaces, zmień nazwy interfejsów na eth0, eth1, ... itd.
Restart
źródło
Mam to działa, tworząc plik:
źródło