CentOS no HyperV - eth0 não está no ifconfig?


9

Lancei uma instalação do CentOS no HyperV e designei uma NIC da mesma maneira que fiz em uma VM do Ubuntu ; no entanto, o dispositivo simplesmente não é utilizado.

Somente meu loopback é encontrado por ifconfig.

Como devo resolver problemas para filmar isso?


O que mostra na VM do Ubuntulsmod em funcionamento para um driver de placa de rede? Esse módulo está carregado na VM do CentOS ? O que realiza? ifconfig eth0 up
— 22811 Caleb

Os dois sistemas operacionais possuem um grande número de módulos que não são compartilhados entre eles (ou seja, mais de 20). ifconfig eth0 indica "eth0: erro ao obter informações da interface: Dispositivo não encontrado"
— Incognito 26/07

2
Para não ser condescendente ou pedante, mas você está correndo ifconfig -a? Outra maneira mais compacta de ver as interfaces de rede em um sistema é com ip a l(assume o iproute2, instalado por padrão no CentOS, acredito).
— Eli Heady

2
ifconfig -arevelou que tenho eth2

Respostas:


8

ATUALIZAÇÃO: Foi atualizada para refletir as alterações feitas no LIS v4 que não exigem mais a execução do instalador específico da versão. Além disso, se tudo o que você precisa é que o Hyper-V relate as informações na guia "Rede", apenas as etapas 1 a 4 são necessárias)

Eu tive o mesmo problema; reinstalou o driver. Aqui está o que eu fiz:

  1. Instale o CentOS
  2. Faça o download do "Linux Integration Disk" para Hyper-V da Microsoft (existem várias versões, a última contém as distros anteriores)
  3. Monte o arquivo de imagem ISO.
    sudo mount /dev/cdrom /media
  4. Execute install.shna pasta LISISO do CD do Linux Integration Services (Onde xx é a versão mais recente ou a versão específica que você precisa).
    sudo /LISISO/install.sh
  5. Crie ifcfg-eth0arquivo.
    nano /etc/sysconfig/network-scripts/ifcfg-eth0
  6. Insira as seguintes linhas:

    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes
    
  7. Salvar e sair

  8. Editar ou criar networkarquivo
    nano /etc/sysconfig/network
  9. Insira as seguintes linhas:

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

    Salvar e sair

  10. Reinicie e agora você pode executar o ping

Hoje tive o mesmo problema hoje com uma nova VM RHEL 7.4, as únicas etapas que tive que executar foram de 5 a 9, e a única coisa que fiz de diferente foi a seguinte (não incluí o atributo HOSTNAME e usei vi em vez de nano
— Taegost

4

Parece que os drivers das NICs virtualizadas HyperV estão ausentes na versão do kernel do CentOS que você está usando e estão presentes na versão do Ubuntu que você instalou com sucesso. A Microsoft só recentemente colocou seus drivers de dispositivo virtual no kernel principal. Meu palpite é que você está usando uma versão do CentOS que não inclui esses drivers.

Quanto à solução de problemas, você pode procurar por mensagens do kernel relacionadas ao hardware da rede. Verifique a saída de dmesg | lesse less /var/log/messages. Eu procuraria por entradas contendo "net", "eth". Qualquer registro do kernel será do carregamento do módulo - êxito ou erro. Se não houver módulos de kernel para a NIC virtualizada, provavelmente o kernel não terá nada a dizer sobre o hardware não reconhecido.

Ao criar a VM, você pode optar por adicionar um "Adaptador de rede herdado" no HyperV (pelo menos a opção costumava ser chamada assim). Isso apresentará a NIC ao SO convidado como essencialmente um dispositivo mais antigo, para o qual, esperançosamente, o convidado terá drivers.

Depois de instalar o CentOS, você pode instalar drivers da Microsoft para utilizar os dispositivos virtuais mais eficientes.


Eu não estou certo se isso resolveu isso por mim ou se o caso era que a minha VM só tinha set eth0 para o modo manual, e eu tive que ativar o DHCP e ONBOOT
— jcolebrand

1

No meu caso, adicionei uma nova VM ao Windows 10 Hyper-V importando um VHD do CentOS7 Linux. A instalação foi boa, mas a rede no CentOS não estava funcionando. Para resolver o problema, no Hyper-V, selecionei a nova VM e editei as configurações. Em Adaptador de rede, o comutador virtual foi definido como "Não conectado" por padrão. Alterar isso para "Chave padrão" e salvar corrigiu o problema. Isso resolveu erros como nenhum dispositivo adequado encontrado para esta conexão e incapaz de encontrar eth0.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.