Não eth0 após transplante de HD

4

Depois de mover a unidade de disco rígido de um servidor improvisado para outra configuração de hardware compatível (64 bits, "geração" de mesmo processador, desktop de laptop >), a rede não inicia.

Especificamente:

  • ifconfig mostra apenas lo
  • sudo service networking restart mostra:

-

stop: unknown instance:
networking stop/waiting

obviamente algo no sistema e / ou no kernel está configurado incorretamente para a nova configuração de hardware.

Como detectar exatamente o que está errado e ativar eth0 ?

O sistema em questão é uma distribuição do Ubuntu 14.04 Server, mas suspeito que o problema seja geral.

    
por mikołak 19.07.2014 / 12:18

2 respostas

7

Uma das coisas que devem ser observadas ao clonar sistemas Linux são as regras de nomenclatura de dispositivos de rede persistentes do udev.

O udev pode criar e atualizar o arquivo /etc/udev/rules.d/70-persistent-net.rules para mapear endereços MAC para nomes de interface. Isso é feito com o script /lib/udev/write_net_rules . Cada endereço MAC (com algumas exceções, veja /lib/udev/rules.d/75-persistent-net-generator.rules ) é mapeado para uma interface chamada (por padrão) eth n , onde n começa em 0 e sobe. Um exemplo:

# 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 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:de:ad:be:ef",ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

As entradas podem ser editadas se você quiser alterar o mapeamento e não forem removidas automaticamente deste arquivo. Portanto, os nomes de interface são estáveis mesmo quando você adiciona NICs adicionais ou remove NICs desnecessárias. O outro lado é, como você descobriu, se você copiar este arquivo para outro sistema via clonagem, as interfaces do novo hardware serão adicionadas a este arquivo, usando o primeiro nome de interface disponível, como eth1, eth2 , etc., e eth0 fará referência a um endereço MAC que não existe no novo sistema.

No seu caso, no qual você transplantou os discos, você pode comentar as linhas contendo as interfaces do seu hardware antigo e editar as entradas erradas adicionadas devido ao novo hardware para ter os nomes de interface desejados (ou apenas removê-los), e reinicie. Inicialmente recomendei comentá-los para que, quando você mover os discos de volta para o hardware antigo, seja fácil restaurá-los, mas o @Guido van Steen forneceu uma solução mais simples: mv o arquivo 70-persistent-net.rules para outra coisa (mas tenha cuidado com o novo nome se está no mesmo diretório!) e reinicie.

    
por 21.07.2014 / 01:10
5

Aproveitando a observação do @ mark-plotnick: o novo hardware tem um endereço MAC diferente. O endereço MAC antigo ainda é codificado em /etc/udev/rules.d/70-persistent-net.rules . Você poderia simplesmente renomear este arquivo. Nesse caso, a reinicialização irá recriar o arquivo com o novo endereço MAC.

    
por 20.07.2014 / 12:50