Não é possível inicializar depois que o disco rígido vhd é redimensionado no VirtualBox


15

No Windows 7, configurei outra VM do Windows 7 no VirtualBox. Funcionou muito bem. Então, eu precisava aumentar o tamanho do HD vhd. Então, usei o utilitário VBoxManage para fazer isso com o seguinte comentário:

VBoxManage modifyhd "c:\VMs\Win7.vhd" --resize 30000

Em seguida, tentei executar a VM novamente, mas ela não pode ser inicializada e gera o seguinte erro:

FATAL: Nenhum meio inicializável encontrado! Sistema interrompido.

Então, tentei ver o que está acontecendo dentro do VHD e anexá-lo ao Gerenciamento de dispositivos e ele diz que não pode ser anexado porque o arquivo ou diretório está corrompido e ilegível .

Alguma idéia do que deu errado aqui e como posso salvar minha VM dentro desse arquivo VHD?


Eu tinha exatamente o mesmo problema e não consegui encontrar nenhuma solução útil on-line, então comecei a analisar o VHD manualmente, de acordo com a documentação da Microsoft. Atualmente, parece que há um erro na implementação do modifyhd, que não ajustou o deslocamento para os blocos de dados depois de expandir a tabela de alocação de blocos. Eu preciso fazer mais algumas experiências para verificar isso.
— billc.cn

No VirtualBox 4.3.10, redimensionei um arquivo .vhd. Parece que não apenas não ajustou os ponteiros da tabela de alocação de bloco, mas também expandiu a tabela de alocação de bloco para o primeiro bloco de dados, substituindo meu MBR e tabela de partição. Não use o VirtualBox para redimensionar arquivos .vhd!
— Aaron

Respostas:


12

Infelizmente, a documentação do VirtualBox para a opção --resize VBoxManage é enganosa. Você não pode simplesmente aumentar o tamanho da imagem do disco e fazer com que tudo funcione corretamente. As informações da partição do disco na imagem devem ser ajustadas para que o sistema operacional convidado conheça o layout da "unidade" que a imagem do disco está simulando. Você realiza esse ajuste baixando uma imagem de CD inicializável que possui um editor de partições e inicializando a VM nesse CD. Em seguida, você usa o editor de partições para ajustar as partições da imagem do disco para usar o espaço adicionado.

Há uma boa descrição do procedimento aqui ; basta pular para a etapa 4.


Bem, isso é uma chatice. Isso significa que acabei de jogar fora as 3 horas de trabalho. Obrigado pela informação.
— Tugberk

4
Eu segui a boa redação (depois que redimensionei meu VHD e não consegui inicializá-lo), e o GParted não mostrou nenhuma partição no disco rígido, apenas 50 GB de espaço não alocado. Isso significa que modifyhda unidade foi danificada sem reparo?
— GSerg 05/02


1

Eu tive o mesmo problema e consegui recuperar os dados usando o LiveCD GParted

  1. Crie um novo VHD para receber os dados copiados (crie partições e formato)
  2. Faça o download do LiveCD GParted e inicialize no VirtualBox
  3. Selecione Dispositivo -> Tentativa de Recuperação de Dados
  4. Clique em OK e, depois da verificação, clique em Exibir (isso montará / tmp / gparted-roview-XXXXXX)
  5. No terminal, monte o segundo VHD (sudo mount / dev / sdb1 / mnt)
  6. Copie os arquivos (sudo cp -R / tmp / gparted-roview-XXXXXX / * / mnt

Depois disso, você pode desligar a Máquina Virtual e montar o VHD no Windows Device Manager.


1

Aqui eles explicam o problema (em espanhol)

Resumo:

uma. "vboxmanage modifyhd (redimensionamento)" gera erro em muitos sistemas (versões Windows NT5, 9x, Server e x86). O resultado é uma partição corrompida, muito difícil de recuperar

b. Você precisa executar "vboxmanage modifyhd (redimensionar)" (para redimensionar o VDI) No caminho que contém todos os arquivos e pastas associados ao VDI. Olhe para a imagem

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Recomendação:

Substitua "vboxmanage modifyhd" por "vboxmanage clonehd"

  1. Crie um novo VDI de disco virtual (com o tamanho que você deseja expandir). Exemplo: Old.vdi tinha 50 gb. New.vdi criá-lo com 100 GB

    VBoxManage createhd - nome do arquivo /path/New.vdi --size 100000

  2. Clone-o com o seguinte comando:

    vboxmanage clonehd /path/Old.vdi /path/New.vdi - existente

Nota : Ambos os VDI não devem estar no mesmo caminho

  1. Execute New.vdi e vá para Windows Computer Management e estenda o espaço em disco (atribua o espaço vazio). Se você não quiser fazê-lo manualmente, poderá usar qualquer aplicativo de particionamento gratuito, como o AOMEI Partition Assistant Standard , GParted e muitos outros.

atualize a resposta

0

Vale ressaltar que eu tive exatamente o mesmo problema, devido ao fato de eu emitir o comando modifyhd enquanto o convidado estava em execução. A documentação oficial não diz nada sobre o fato de que você deve excluir os instantâneos primeiro e que o convidado deve ter sido parado.

Meu plano era redimensionar o disco enquanto a máquina estava funcionando, porque eu tenho um volume dinâmico que também pode ser aumentado em tempo real. No entanto, essa foi uma péssima idéia, pois reinicializei a máquina para obter o tamanho total do disco. Fiquei no escuro com uma imagem corrompida, que não consegui restaurar nem mesmo com o testdisk. O Testdisk encontra as partições, mas o sistema de arquivos está muito danificado e não pode ser reparado.

Portanto, esteja ciente:

  1. Mesclar todos os instantâneos na imagem base
  2. Encerre o SO convidado

Repeti o procedimento na minha máquina com uma imagem de backup e o sistema operacional convidado está sendo desligado, isso funciona bem.


0

Consegui recuperar uma imagem que foi quebrada por esse bug. Ao contrário de Edison, a imagem ao vivo do gparted não encontrou nada. Aqui está o que eu fiz:

  • Primeiro, como aparentemente o suporte ao VBox para VHD é ruim e terrível, comece convertendo o VHD em um VDI com VBoxManage clonehd foo.vhd --format vdi foo.vdi. Quando pulei esta etapa, pude recuperar arquivos da imagem, mas ela se "quebrou" novamente após algumas reinicializações. Acho que o bug realmente estraga o arquivo VHD de uma maneira que depois a E / S o "re-quebra" ... O VBox não parece ter esses problemas com o VDI, então desisti do VHD.

  • Inicialize no WinPE, o ambiente de pré-instalação do Windows. Como fazer isso pode ser um artigo em si. Se você não estiver familiarizado com isso, aqui está um atalho: Inicialize a partir de um DVD de instalação do Windows (Vista ou superior) e pressione Shift-F10 assim que a GUI aparecer, ele fornecerá um prompt de comando.

  • Faça o download do testdisk , encontre uma maneira de obtê-lo na sua imagem WinPE (ou um simples dispositivo USB funcionaria) e execute-o no ambiente WinPE. (Nota: O WinPE não possui o WOW64, a camada de compatibilidade de 32 bits para aplicativos de 32 bits. Portanto, minha configuração do WinPE de 64 bits precisava do binário do disco de teste de 64 bits.)

  • O Testdisk encontrou as partições e as restaurou.

  • Nesse ponto, os arquivos foram recuperados, mas o carregador de inicialização falhou por vários problemas. Em primeiro lugar, usados diskpartpara marcar a partição como activa ( list disk, sel disk <disk number>, sel par 0, active). Chegou mais longe, não inicializava. Voltou ao WinPE e foi excluído \boot, depois correu bcdboot C:\windows /s C:para reinstalar o carregador de inicialização.

  • No final, corri chkdisk /Rpara ter certeza de que a imagem estava boa. Demorou algumas horas, não encontrou nenhum problema.


-1

Eu tive o mesmo problema, o GParted não reconheceu as partições e foi mostrado como espaço não alocado. Nesse ponto, entendi que os dados poderiam ter sido perdidos.

Lembrei-me de usar o testdisk para procurar partição perdida em discos rígidos; por que não experimentá-lo em discos virtuais? e funcionou.

  1. Inicialização do GParted, no momento em que escrevia essa resposta, o GParted tinha "testdisk" dentro dele. Basta executar o terminal, executar "sudo testdisk / dev / sda" ou o que for exibido no seu computador. Execute "sudo fdisk -l" para mostrar todos os discos.
  2. Analise a Tabela de Partição, ela descobrirá a partição imediatamente, pois ainda está nos primeiros setores. Escreva uma nova partição, tabela e prossiga com o GParted para continuar a recuperação, conforme instruções neste link: http://www.howtogeek.com/124622/how-to-enlarge-a-virtual-machines-disk-in-virtualbox -ou-vmware /
  3. Da próxima vez que você desejar fazer isso, faça uma cópia do seu VDISK primeiro.
  4. Notei no link abaixo que eles criam um novo VHD e clonam com --existing: http://tips.kaali.co.uk/2012/03/16/expand-or-increase-the-size-of-virtual- box-vdi-dis / Ainda não tentei, mas recuperei meu disco com as instruções acima.

Espero que ajude alguém.


Cite as partes essenciais da resposta nos links de referência, pois a resposta pode se tornar inválida se as páginas vinculadas forem alteradas.
— DavidPostill
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.