CentOS en HyperV: ¿eth0 no está en ifconfig?

9

Lancé una instalación de CentOS en HyperV y asigné una NIC de la misma manera que lo hice en una máquina virtual de Ubuntu , sin embargo, el dispositivo simplemente no se recogió.

Solo mi loopback es encontrado por ifconfig.

¿Cómo debo solucionar los problemas para filmar esto?

Incógnito
fuente
Lo que hace lsmoden el trabajo de Ubuntu espectáculo de VM para un controlador de tarjeta de red? ¿Está ese módulo cargado en la VM CentOS ? ¿Qué ifconfig eth0 uplogra?
Caleb
Los dos sistemas operativos tienen una gran cantidad de módulos que no se comparten entre ellos (es decir, más de 20). ifconfig eth0 indica "eth0: error al obtener información de la interfaz: Dispositivo no encontrado"
Incógnito
2
No para ser condescendiente o demasiado pedante, pero ¿estás corriendo ifconfig -a? Otra forma más compacta de ver las interfaces de red en un sistema es con ip a l(supone iproute2, instalado por defecto en CentOS, creo).
Eli Heady
2
ifconfig -areveló que tengo eth2

Respuestas:

8

ACTUALIZACIÓN: Esto se ha actualizado para reflejar los cambios que hicieron con el LIS v4 que ya no requiere ejecutar el instalador específico de la versión. Además, si todo lo que necesita es que Hyper-V informe la información en la pestaña "Red", solo los pasos 1-4 son necesarios)

Yo tuve el mismo problema; reinstaló el controlador. Aquí esta lo que hice:

  1. Instalar CentOS
  2. Descargue "Linux Integration Disk" para Hyper-V de Microsoft (hay varias versiones, la última contiene las distribuciones anteriores)
  3. Montar el archivo de imagen ISO.
    sudo mount /dev/cdrom /media
  4. Ejecútelo install.shen la carpeta LISISO del CD de Linux Integration Services (donde xx es la última versión o la versión específica que necesita).
    sudo /LISISO/install.sh
  5. Crear ifcfg-eth0archivo
    nano /etc/sysconfig/network-scripts/ifcfg-eth0
  6. Inserte las siguientes líneas:

    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes
    
  7. Guardar y Salir

  8. Editar o crear networkarchivo
    nano /etc/sysconfig/network
  9. Inserte las siguientes líneas:

    NETWORKING=yes
    HOSTNAME=server-name.company.lan
    

    Guardar y Salir

  10. Reinicie y ahora puede hacer ping
Henry Aloni
fuente
Tuve este mismo problema hoy con una nueva máquina virtual RHEL 7.4, los únicos pasos que tuve que realizar fueron 5-9, y lo único que hice diferente es que (no incluí el atributo HOSTNAME y usé vi en lugar de nano
Taegost
4

Parece que faltan controladores para las NIC virtualizadas HyperV en la versión del núcleo de CentOS que está utilizando y están presentes en la versión de Ubuntu que instaló con éxito. Microsoft recientemente ha introducido sus controladores de dispositivo virtual en el núcleo de la línea principal. Supongo que está utilizando una versión de CentOS que no incluye estos controladores.

En cuanto a cómo solucionarlo, puede buscar mensajes del núcleo relacionados con el hardware de la red. Verifique la salida de dmesg | lessy less /var/log/messages. Buscaría entradas que contengan "net", "eth". Cualquier registro del kernel será de la carga del módulo: éxito o error. Si no hay módulos de kernel para la NIC virtualizada, el kernel probablemente no tendrá nada que decir sobre el hardware no reconocido.

Al crear la VM, puede optar por agregar un "Adaptador de red heredado" en HyperV (al menos, la opción solía llamarse así). Esto presentará la NIC al sistema operativo invitado como esencialmente un dispositivo más antiguo, para el cual el invitado tendrá controladores.

Una vez que haya instalado CentOS, puede instalar controladores de Microsoft para utilizar los dispositivos virtuales más eficientes.

Eli Heady
fuente
No estoy seguro de si esto me resolvió o si el caso fue que mi VM solo tenía eth0 configurado en modo manual, y tuve que habilitar dhcp y onboot
jcolebrand
1

En mi caso, agregué una nueva VM a Windows 10 Hyper-V al importar un VHD de CentOS7 Linux. La instalación estuvo bien, pero la red en CentOS no funcionaba en absoluto. Para resolver el problema, en Hyper-V, seleccioné la nueva máquina virtual y edité la configuración. En Adaptador de red, el conmutador virtual se configuró en "No conectado" de forma predeterminada. Cambiar esto a "Interruptor predeterminado" y guardar solucionó el problema. Esto solucionó errores tales como que no se encontró ningún dispositivo adecuado para esta conexión y no se pudo encontrar eth0.

Barry Cox
fuente