Recuperar arquivos de uma máquina do Virtualbox quebrada .vdi

22

Meu Ubuntu 12.04.1 rodando no virtualbox ficou sem espaço enquanto eu estava instalando o software nele e agora ele está não reiniciando . Eu tenho arquivos que preciso recuperar. Eu tenho o arquivo ubuntu64.vdi no meu laptop do Windows 7 (host) e fiquei me perguntando se existe alguma maneira de recuperar os arquivos do arquivo vdi.

Paralelamente, gerei uma nova máquina 12.04.1 no VirtualBox no mesmo laptop, e usarei essa em vez da borked.

Eu posso adicionar o borked vdi à lista de discos no trabalho. Então eu usei o gnome nautilus para montar o disco borked.

Eu posso encontrar os arquivos lá, mas eles têm cerca de 2 meses de idade. Acho que isso coincide com a última vez que fiz um snapshot do virtualbox da máquina, mas não da última vez que consegui uma máquina de trabalho, que foi ontem. Existe alguma maneira de montar o vdi de ontem, pouco antes de cair?

EDITADO:

Aqui está o que o Virtual Media Manager me diz sobre o meu arquivo ubuntu64.vdi :

EDITED2:

Eucopieimeuubuntu.vdiparaumUSBexternocommuitoespaçoemdisco.EutenteiusaroWindowsparacloná-lo,masrecebiumerro:

Eu tentei o mesmo da VM em funcionamento por meio de uma pasta compartilhada da unidade USB e iniciei a clonagem. Demorou um bom tempo, mas terminou com sucesso:

root@precise64:/media/sf_E_DRIVE/copy_of_ubuntu64_vm_folder_20140224/ubuntu64# 
VBoxManage clonehd ubuntu64.vdi ubuntu64.raw --format RAW
0%...

10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'RAW'. UUID: 90f99198-18e1-40ee-85fe-c083dcbb1ac3

EDITED3:

Depois de criar o arquivo bruto, eu corro testdisk com Deeper Search , eu obtenho uma lista como esta:

AterDeeperSearchterminou,eureceboumalistacomoesta:

Mas eu não sei qual é qual instantâneo ... Alguma idéia?

    
por 719016 13.04.2017 / 14:23

3 respostas

20

Da linha de comando

Caso utilizemos o Ubuntu como host, podemos converter nosso disco .vdi em um disco bruto com o seguinte comando:

VBoxManage clonehd <sourcename> <clone.raw> --format RAW

Depois, podemos abrir o testdisk com este arquivo para recuperar arquivos na imagem da unidade virtual (veja também abaixo):

testdisk <clone.raw>

De uma máquina virtual

Caso a imagem da unidade VDI quebrada ainda esteja registrada no Virtual Box, talvez possamos adicionar essa imagem como uma unidade à nossa nova máquina virtual:

InicieoseuUbuntuvirtualaoqualadicionamosoarquivo.vdimasnãomonteodisco.

  1. Crieumdiretórioemumapartiçãomontadaparaarmazenarosdadoscoletados(porexemplo,~/rescued),

  2. Instaleo testdisk na máquina virtual.

  3. Inicie o testdisk de um terminal lá:

    sudo testdisk
    
  4. Escolha a unidade apropriada para coletar dados (mostrada aqui para /sdb ) e selecione [Proceed]

  5. Escolhaolayoutdepartiçãoapropriado(geralmenteIntel)

  6. Selecione[Analyse]-[QuickSearch]

  7. Selecioneapartiçãoquecontémosdadosaseremcoletados(aquiapenasumaúnicapartiçãoNTFSestavapresente):

  8. Pressione P para listar os arquivos nessa partição.

  9. Navegue até o diretório que contém os dados. Veja os nomes dos arquivos para se certificar de que escolheu os certos.

  10. Selecione diretórios ou arquivos para colher usando : . Todos os arquivos / diretórios selecionados serão marcados em verde:

  11. PressioneletrasmaiúsculasCparacopiartodososdiretórios/arquivosselecionadosparaodiretórioderecuperaçãoqueseráselecionadonapróximaetapa.

  12. Escolhaumdiretóriona(s)partição(ões)montada(s)dasuaVMUbuntuparaarmazenarosdadosresgatados:

  13. Pressione c para começar a copiar os dados do arquivo .vdi quebrado para o nosso diretório de recuperação em sua VM saudável.

Notas:

  • Caso não possamos ver nossos arquivos com a opção [Quick Search] em 6. , poderemos ter que executar um [Deeper Search] . Isso também listará as partições excluídas e sobrescritas anteriores. Portanto, precisamos nos certificar de selecionar as partições apropriadas onde nossos dados residem.

  • Se tivéssemos tirado instantâneos do arquivo .vdi, poderíamos encontrá-los em ~/.VirtualBox/Machines/<Name of Machine>/Snapshots/{###}.vmdk , mas sempre que tivéssemos usado o recurso de instantâneo do Virtual Box, qualquer alteração de um instantâneo seria gravada em um arquivo diferencial .

    Para mesclar o arquivo diferencial com o disco rígido, precisamos excluir todos os instantâneos (o que provavelmente não é o que desejamos, para restaurar a captura instantânea anterior, em vez de solicitar a recuperação de dados) ou precisamos clonar os dados da máquina. dirigir usando:

    VBoxManage clonehd <name_of_source> <clone>
    

    Em seguida, ligamos o clone à nossa VM de resgate, conforme descrito acima.

  • Escrever no .vdi quebrado só deve ser feito depois que os dados estiverem seguros, pois isso pode danificar ainda mais o sistema de arquivos.

  • Caso o nosso Ubuntu de resgate seja pequeno demais para armazenar os dados resgatados, podemos criar outro novo disco virtual para vincular a VM. Essa unidade precisa ser montada na VM para poder salvar dados do testdisk lá.

por Takkat 24.02.2014 / 18:53
5

1) Tente recuperar o instantâneo pelo UUID, use o seguinte hack:

  • escolha o UUID do estado que você deseja recuperar.
  • Abra o arquivo .xml, de preferência em uma ferramenta (o Internet Explorer funciona), que facilita a navegação do arquivo XML.
  • No MUITO INFERIOR, na seção Controladores de Armazenamento, localize o UUID do Estado Atual e observe o nome do StorageController =, type = e o tipo AttachedDevice =, port = e device = settings.
  • No meio, encontre o instantâneo que você deseja.
  • Na seção Storage Controller do snapshot, localize AttachedDevice com os valores (name / type / type / port / device) que correspondem aos valores recuperados acima.
  • Essa imagem UUID identifica a imagem de instantâneo para o disco rígido. Remova os {} colchetes e

digite o comando C:> VBoxManage clonehd <UUID> CloneDisk.vdi

Espero que ajude, eu encontrei a solução aqui: ( link )

2) Se as etapas em 1) não funcionarem, heres outros passos que você pode tentar. Como clonehd o estado atual de um disco:

  • Abra o Gerenciador de mídia virtual (Menu: Arquivo > Gerenciador de mídia virtual).
  • Navegue até o disco rígido que você deseja clonar e expanda totalmente a árvore (use a tecla * no teclado numérico).
  • Localize o arquivo {.VDI do hexUUID} que está anexado à VM na qual você deseja clonar o estado atual de. Será (um dos) arquivos de folha no final de uma ramificação. Ao selecioná-lo, o texto "Anexado a:" na parte inferior da janela dirá: "Anexado a:", sem nenhum (nome do instantâneo) entre colchetes após ele.
  • Clique no nome do arquivo à direita do "Local:" exibido na parte inferior da janela.
  • Ctrl + C / Copiar para copiar o texto para a área de transferência, que será algo como: (caminho) {b6441469-5ccb-418c-8fdd-73c5e1a17314} .vdi
  • Ctrl + V / Paste e extraia o valor hexUUID (removendo os {} colchetes) e execute o clonehd para cloná-lo!

A solução é daqui: ( link Ambos falam principalmente sobre o mesmo.

    
por Dee 27.02.2014 / 19:17
1

Eu tive um sistema Linux corrompido em / e fsck não pôde consertá-lo . Eu usei a seguinte abordagem simples:

  1. Adicione um novo VDI de substituição à máquina.
  2. Faça o download de um novo ISO linux.
  3. Inicialize e instale um novo linux no disco adicionado em (1).
  4. Monte o disco em seu novo sistema e copie os arquivos necessários. Geralmente, isso significa copiar a pasta /home/user/ . Lembre-se de copiar os arquivos ocultos (arquivos de configurações).

Trabalhei bem para mim. A corrupção do disco estava apenas impedindo a inicialização, não houve perda de dados na minha pasta pessoal.

    
por Deleet 13.04.2017 / 14:24