Zmieniłem nazwę mojego eth1
interfejsu na eth0
. Jak poprosić udev
teraz o ponowne przeczytanie konfiguracji?
service udev restart
i
udevadm control --reload-rules
nie pomagaj. Czy jest więc jakikolwiek ważny sposób oprócz ponownego uruchomienia? (tak, ponowne uruchomienie pomaga rozwiązać ten problem)
tak, wiem, że powinienem poprzedzać polecenia
sudo
, ale jedno z powyższych wpisów nie zmienia niczego wifconfig -a
danych wyjściowych: wciąż widzęeth1
, nieeth0
.Właśnie zmieniłem
NAME
właściwość linii udev-rule. Nie znam żadnego powodu, aby to było nieskuteczne.
Nie ma żadnego błędu w wykonywaniu obu poleceń, które opublikowałem powyżej, ale po prostu nie zmieniają one rzeczywistej nazwy interfejsu w ifconfig -a
danych wyjściowych. Jeśli wykonam restart, to nazwa interfejsu zmieni się zgodnie z oczekiwaniami.
Dla celów programistycznych piszę skrypt, który klonuje maszyny wirtualne (oparte na VirtualBox) i w pewien sposób wstępnie je konfiguruje.
Wykonuję więc polecenie, aby sklonować maszynę wirtualną, uruchomić ją i dopóki zmieni się MAC interfejsu sieciowego - udev
dodaje drugą regułę do reguł trwałych sieci. Zaraz po pierwszym uruchomieniu komputera obowiązują 2 reguły:
eth0
, który nie istnieje, o ile istniał w oryginalnym obrazie MAC maszyny wirtualnejeth1
, który istnieje, ale odnosi się do całej konfiguracji we wszystkich plikacheth0
, więc nie jest to dla mnie tak dobre
Więc sed
usuwam wiersz z eth0
(jest on przestarzały i bezużyteczny w sklonowanym obrazie) i zastępuję eth1
go eth0
. Więc obecnie mam ważną regułę trwałą, ale wciąż jest eth1
w niej /dev
.
Problem: nie chcę ponownie uruchamiać maszyny (zajmie to inny czas, co nie jest dobre w przypadku budowania etapu VM) i chcę po prostu /dev
przebudować moją komendę, aby mieć gotową do użycia maszynę VM bez żadnych restartów.
udev
dynamicznie generuje Twoje urządzenia /dev
. Jeśli uruchomisz go ponownie, zregeneruje je zgodnie z jego zasadami. Zmiany wprowadzone bezpośrednio do nich nie są na ogół trwałe. Wygląda na to, że ponowne uruchomienie udev
działa poprawnie, ale po prostu nie zmieniłeś poprawnie nazw urządzeń.
udev
dodaje (nie modyfikuje) nowe reguły tylko wtedy, gdy nie może znaleźć tej dla konkretnego urządzenia. Jeśli istnieje reguła, która pasuje - po prostu przestrzega jej bez modyfikacji.
eth1
, abyeth0
? Czy właśnie zmieniłeś nazwę pliku urządzenia? Jeśli tak, to nie jest to skuteczny sposób (należy oczekiwać, że zmiana zostanie cofnięta po pomyślnym zrestartowaniuudev
demona). Jeśli użyłeś innej metody, opisz ją szczegółowo, a także podaj pełny i dokładny tekst komunikatów o błędach, które widzisz po uruchomieniu wypróbowanych poleceń (w celu ponownego uruchomieniaudev
demona lub przeładowania jego reguł). Możesz edytować swoje pytanie, aby podać te informacje.