Przejdź do głównej zawartości

Linux. Rozwiązanie problemu "Device eth0 does not seem to be present, delaying initialization" Error.

Jeżeli korzystacie z VirtualBox lub z innego wirtualizatora podczas klonowania maszyny z systemem Linux mogły pojawić się problemy z kartami sieciowymi. Podczas uruchamiania sieci dostajemy dziwne komunikaty o niezainicjowanym urządzeniu itd. Można oczywiście pozbyć się kart sieciowych z maszyny jaką zamierzamy klonować i dopiero potem zrobić jej klona ale to nie jest najlepsze wyjście. Istnieją inne rozwiązania. Jak się pewnie domyślacie chodzi o wirtualne karty sieciowe i ich reprezentacje w systemie Linux. W procesie klonowania pliki zawierające informacje o kartach również zostają sklonowane ale przecież w maszynie jaka powstaje będą to już zupełnie inne karty. Rozwiązanie jest proste. 


Przedstawiona sytuacja ma zazwyczaj miejsce w momencie klonowania maszyn.



Przykładowo potrzebujemy sklonować maszynę wirtualną z zainstalowanym systemem Centos. Po operacji klonowania sprawdzamy, co dzieję się z siecią i próbujemy ją uruchomić. Zobaczymy mniej więcej coś takiego: 


Device eth0 does not seem to be present, delaying initialization.

Powyższy komunikat informuje Nas o tym ,  że urządzenie najprawdopodobniej nie jest obecne w systemie i to jest zgodne z prawdą. Urządzenie z wzorcowej maszyny nie jest tym samym, co w tej sklonowanej. Trzeba coś z tym zrobić. 

Krok 1 - Sprawdzenie wpisów w interfejsie sieciowym

# cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=08:00:27:8A:A0:19
TYPE=Ethernet
UUID=ef598847-7f31-449b-9076-f2521c1ab8ba
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

Jak będzie można zobaczyć w liniach "HWADDR" oraz "UUID" wpisy dotyczą urządzenia z maszyny z jakiej powstał klon. 

Krok 2 - Edytujemy plik interfejsu sieciowego. 

W VirtualBox przechodzimy do "Settings", a następnie "Network" 



Teraz można zobaczyć właściwy adres MAC dla interfejsów sklonowanej maszyny. Wpis w pliku ifc-eth0 powinien więc mieć postać: 

DEVICE=eth0
HWADDR=08:00:27:75:5E:A4
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

Poprawiamy adres MAC i usuwamy linię UUID.

Krok 3 - Edycja /udev , czyli dynamiczne pliki urządzeń

Lokalizacja /etc/udev/ zawiera tylko pliki urządzeń jakie faktycznie fizycznie (czy przez reprezentacje urządzenia wirtualnego) znajdują się w systemie. W związku z powyższym plik z danymi kart sieciowych już tam jest. System sam tego niestety nie odświeża. Po prostu stara się znaleźć zawarte w plikach urządzenia, a jeżeli ich nie ma pokazuje stosowny komunikat: 

Device eth0 does not seem to be present, delaying initialization.

Na szczęście urządzenia takie jak karty sieciowe są dodawane do systemu automatycznie. Tak jak się pewnie domyślanie wystarczy usunąć obecny plik by po restarcie utworzył się nowy z właściwymi wartościami. 

Usuwamy więc plik : 

# rm /etc/udev/rules.d/70-persistent-net.rules

Następnie restartujemy maszynę : 

# reboot 

Krok 4 - Sprawdzamy działanie sieci po wprowadzonych zmianach. 

# service network restart

Shutting down interface eth0:                         [  OK  ]
Shutting down interface eth2:                         [  OK  ]
Shutting down loopback interface:                     [  OK  ]
Bringing up loopback interface:                       [  OK  ]
Bringing up interface eth0:
Determining IP information for eth0... done.          [  OK  ]
Bringing up interface eth2:
Determining IP information for eth2... done.          [  OK  ]

# ifconfig

eth0      Link encap:Ethernet  HWaddr 08:00:27:75:5E:A4
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe75:5ea4/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3190 (3.1 KiB)  TX bytes:3400 (3.3 KiB)

eth2      Link encap:Ethernet  HWaddr 08:00:27:80:CF:EA
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe80:cfea/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:290 errors:0 dropped:0 overruns:0 frame:0
          TX packets:239 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:28494 (27.8 KiB)  TX bytes:29447 (28.7 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


Jak widać powyżej sieć działa już tak jak należy. Problem rozwiązany.


Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości