Deu a espera de um dispositivo raiz após a atualização para 12.04 no hyper-v

2

Eu tenho uma VM Ubuntu 11.10 que acabei de atualizar para 12.04. A instalação correu bem, mas agora usando o kernel 3.2.0 ele falha na inicialização com

Gave up waiting for root device.

...

ALERT! /dev/mapper/uvm-root does not exist. Dropping to a shell!

Se eu inicializar usando o kernel anterior Linux uvm 3.0.0-17-server #30-Ubuntu SMP Thu Mar 8 22:15:30 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux , tudo funciona. No kernel anterior, habilitei manualmente os módulos do hyper-v, conforme descrito aqui ( link ) - basicamente, eles foram adicionados ao /etc/initramfs-tools/modules .

Como posso depurar o problema? Eu tenho a máquina rodando o Ubuntu 12.04 com o Kernel 3.0 agora, então eu posso investigar. Nada parece realmente duvidoso, olhando para /boot/grub/grub.cfg eu posso ver exatamente os mesmos IDs sendo passados por aí; Eu também tentei um update-initramfs -u -v e eu posso ver que o hv_storvsc.ko está sendo incluído.

    
por Anteru 08.05.2012 / 13:41

1 resposta

0

Minha resposta aqui , copiada abaixo, provavelmente é aplicável a você também e explica por que a atualização do kernel e o kernel module (storvsc) corrigiu seu problema. Veja como obter uma máquina Ubuntu 12.04 em execução no Hyper-V:

Copiado da minha resposta aqui: link

A maneira mais fácil de fazer o Ubuntu 12.04 rodar bem no Hyper-V na plataforma 2012 seria baixar a imagem do Windows Azure Cloud - infelizmente, como verifico hoje (10 de julho de 2013), as imagens não estão disponíveis na Armazenamento de imagens do Ubuntu Cloud Images . Eu fiz uma pergunta no site de respostas que você pode seguir para ver se eles restauram as imagens da nuvem.

Dito isso, vamos discutir por que você tem um problema: o 12.04.2 tem um kernel antigo sem a integração mais recente do Hyper-V (módulos do kernel) que foi incluída no 12.10 e também no 13.04. A cura é obter um kernel mais novo. Como eu disse anteriormente, a maneira mais fácil de obter a imagem certa é criar uma imagem para o Windows Azure - a nuvem pública do Azure e seu servidor Hyper-V privado executam essencialmente o mesmo hipervisor. As instruções aplicáveis ao Azure são aplicáveis a você.

Para executar na plataforma Azure, também conhecida como hipervisor do Hyper-V 2012, a Microsoft recomenda na sua lista de endossou distribuições do Linux que você segue uma série de etapas para atualizar as distribuições 12.04.x para usar um kernel e módulos de kernel portados pelo backport. Você não precisa instalar o walinuxagent ou reconfigurar o GRUB, que é necessário apenas para o Windows Azure . As instruções completas são reproduzidas aqui com o Walinuxagent e Instruções do GRUB removidas:

  1. sudo sed -i "s,archive.ubuntu.com,azure.archive.ubuntu.com,g" /etc/apt/sources.list

    Esta etapa atualiza os espelhos para apontar para um espelho hospedado do Azure.

  2. sudo apt-add-repository ‘http://archive.canonical.com/ubuntu precise-backports main’

    Esta etapa adiciona o repositório necessário para obter as alterações do kernel e do agente.

  3. sudo apt-get update
  4. sudo apt-get install linux-backports-modules-hv-precise-virtual

    Esta etapa adiciona o kernel de atualização e os módulos associados.

  5. sudo apt-get install hv-kvp-daemon-init

    Esta etapa adiciona o agente atualizado.

    NOTA: Eu removi o walinuxagent deste comando. Não é necessário para nuvens privadas, mas é para o Windows Azure. Essa atualização, no entanto, instala a troca de par de valores-chave, que pode ser usada para sincronização de horário e outras coisas, mas não estou totalmente certo.

  6. Esta etapa foi removida no que se refere à modificação do GRUB para ser executada com mais eficiência no Windows Azure.
  7. (recomendado) sudo apt-get dist-upgrade
  8. sudo reboot

Uma nota final: estas instruções adicionam um novo repositório às suas máquinas Ubuntu e você deve estar ciente do efeito que isso tem. Certifique-se de que o primeiro comando seja executado corretamente (eu não testei na semana passada) para substituir archive.ubuntu.com por azure.archive.ubuntu.com . Eu mesmo executei estes passos, mas não posso dizer que eles funcionarão no futuro. Esteja ciente de que o objetivo da primeira etapa é apontar a distribuição do Ubuntu para usar um novo conjunto de repositórios padrão projetados para oferecer suporte ao backport para o Windows Azure e o hipervisor do Hyper-V 2012.

    
por 10.07.2013 / 22:07