Subscribe via feed.

CentOS kvm clone no muestra el device eth0

Posted by kwame on October 5, 2013 – 4:30 am

Desde ya hace un buen rato estoy utilizando KVM para manejar mis VMs en Linux (ya sea fedora o debian). Tengo una imagen base de CentOS 6 con la cuál, cuando necesito de otra máquina para hacer pruebas, solamente la clono y listo, tengo una máquina list en unos 3-4 minutos para poder hacer las pruebas que necesito.

Una cosa que me molestaba al clonar máquinas es que la interfaz eth0 no es reconocida en el nuevo sistema, siempre tengo eth1. Después de googlear e investigar un poco, esto se debe a que “udev” recuerda los settings de la NIC que fue clonada. Al levantar la máquina recien clonada, busca los settings, específicamente la mac address de la máquina original, pero como en la máquina clonada tenemos un nuevo mac address para la interfaz, entonces udev nombra a esta interfaz como eth1.

[root@centos-lvm ~]# ifconfig -a
eth1      Link encap:Ethernet  HWaddr 52:54:00:04:65:ED  
          inet addr:192.168.0.104  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::5054:ff:fe04:65ed/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:116 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14386 (14.0 KiB)  TX bytes:8810 (8.6 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)

[root@centos-lvm ~]# ls /sys/class/net/
eth1  lo
[root@centos-lvm ~]# 

Solucionar esto es realmente sencillo. Solo tienes que modiciar el archivo /etc/udev/rules.d/70-persisten-net.rules de la siguiente manera.

Archivo original:

[root@centos-lvm ~]# cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:bf:b4:70", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:04:65:ed", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
[root@centos-lvm ~]# 

Archivo modificado:

[root@centos-lvm ~]# cat /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x1af4:0x1000 (virtio-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:04:65:ed", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
[root@centos-lvm ~]# 

Después de modificar este archivo solo es cuestión de modificar tu /etc/sysconfig/network-scripts/ifcfg-eth0 con su correspondiente mac address, reiniciar tu VM y listo, vas a tener eth0 disponible en tu sistema.


This post is under “geek stuff, general, linux, sysadmin” and has 1 respond so far.
If you enjoy this article, make sure you subscribe to my RSS Feed.