Entender como abrir arquivos VMDK e extrair conteúdo de arquivos VMDK é útil quando você encontra um problema com uma máquina virtual. Você pode descobrir que as VMs não podem ser iniciadas após problemas com a instalação de aplicativos, atualizações do sistema operacional, ataques de malware, exclusão acidental de dados, etc. Quando isso acontece, você perde o acesso ao disco virtual da VM.
Felizmente, você pode abrir arquivos VMDK com WinZip, Linux Reader ou VMware Workstation Player. Continue lendo para aprender sobre os métodos para recuperar o conteúdo de arquivos de disco virtual VMDK. Observe que esses métodos só se aplicam se o disco virtual não estiver criptografado ou corrompido.
O que é um arquivo VMDK?
VMDK é um formato de arquivo de disco de máquina virtual, que é o formato aberto desenvolvido pela VMware. Este formato de disco virtual tem a extensão .vmdk para arquivos e é usado por VMware e VirtualBox máquinas virtuais. No entanto, máquinas virtuais residentes em servidores ESXi usam um formato ligeiramente diferente de discos virtuais vmdk. No datastore ESXi, o descritor do disco virtual e o conjunto de dados brutos do disco virtual são dois arquivos separados.
O padrão do nome do descritor do disco virtual é diskname.vmdk e o padrão do nome do disco virtual que contém todos os dados brutos é diskname-flat.vmdk. Quanto aos discos virtuais no formato VMware Workstation, eles são representados como um único arquivo diskname.vmdk (esparso monolítico), que é um arquivo de dados de extensão contendo um descritor de disco virtual incorporado. Um descritor de disco virtual define a estrutura do disco virtual, geometria do disco virtual, versão do hardware virtual e IDs.
Arquivo de descritor de disco virtual
A virtual disk descriptor is represented as plain text. On the left side of the screenshot below, you can see a virtual disk descriptor of the ESXi format (a vmdk file that can be opened with any text editor). On the right side of the screenshot, you can see the data of the virtual disk descriptor that is embedded into a single vmdk file of the VMware Workstation format. The vmdk file can be opened in a HEX editor.
Como você pode ver, os dados do descritor de disco incorporado são gravados no arquivo vmdk monolítico do formato Workstation a partir do endereço 0x200, que é o número do primeiro byte. Se você transformar o valor HEX 200 em formato binário e decimal, obterá:
200 HEX = 1000000000 Binário = 512 Decimal
Isso significa que se você quiser extrair o descritor incorporado do arquivo vmdk, deve extrair uma porção de dados a partir do 512º byte. Você pode encontrar mais informações sobre arquivos de descritor de disco virtual VMware e aprender como extrair, editar e importar um descritor de disco virtual incorporado no post do blog sobre a conversão de Máquinas Virtuais VMware para Máquinas Virtuais Hyper-V.
Arquivo de dados do disco virtual
Na captura de tela abaixo, dois arquivos de disco virtual são abertos em um editor hexadecimal. O mesmo sistema operacional está instalado em ambos os discos virtuais (a primeira partição usada para instalar o sistema operacional foi criada e formatada com uma utilidade de disco embutida do Windows). No lado esquerdo da captura de tela, um arquivo flat.vmdk é exibido (formato ESXi). Os dados brutos são escritos a partir de 0x00000000 neste disco virtual – arquivo flat.vmdk. No lado direito da captura de tela, o disco virtual no formato Workstation é exibido, e os mesmos dados são escritos a partir de 0x00150000 (número de byte 5376), que não é o início do arquivo vmdk.
Agora, após se familiarizar com a teoria, é hora da parte prática. Antes de prosseguir, é recomendável que você faça backup de seus dados para evitar possíveis danos ao disco virtual. Execute operações com seus discos por sua própria responsabilidade e risco.
2 Métodos para Abrir Arquivos VMDK Ligando uma VM
Para abrir arquivos VMDK ligando VMs existentes, você precisa de um hipervisor como VMware ESXi, VMware Workstation, VMware Player ou Oracle VirtualBox instalado em seu computador físico. Você pode optar pelo método tradicional usando um DVD ao vivo ou montando o arquivo VMDK como um disco virtual.
Método 1: Usando um DVD ao Vivo mesmo se o SO na VM estiver morto
A ideia por trás deste método é que você tem uma VM e pode inicializar a partir de um disco DVD. A imagem de disco ISO pode ser usada como o disco DVD inserido na unidade de DVD virtual da VM. Após inicializar o sistema operacional a partir de um meio DVD, você pode montar as partições do seu disco virtual e copiar arquivos do disco virtual para um disco rígido USB conectado à VM ou ao seu computador hospedeiro, ou para qualquer outro computador via rede. Algumas distribuições Live DVD montam discos (partições) automaticamente.
Este é um método legado porque o princípio é semelhante à cópia de arquivos de discos físicos de computadores físicos quando o sistema operacional instalado não pode inicializar. Este método pode ser usado para extrair dados de discos VMDK de VMs em execução no VMware ESXi e no VMware Player/Workstation.
Tenha em mente que o sistema operacional inicializado a partir de um Live DVD deve reconhecer os sistemas de arquivos das partições do seu disco virtual cujos arquivos você deseja acessar. Por exemplo, o Windows não consegue trabalhar com sistemas de arquivos Linux como EXT3, EXT4, ReiserFS, etc., por padrão. O uso de ferramentas adicionais no Windows pode ajudar a resolver esse problema. Por sua vez, o Linux moderno reconhece sistemas de arquivos do Windows como NTFS e FAT32, e é por isso que você pode usar discos Live DVD baseados em Linux para copiar arquivos armazenados em discos virtuais usados por sua VM do Windows que não pode inicializar.
Exemplo: Abrindo arquivos VMDK no ESXi
Vamos considerar um exemplo para aplicar este método: você tem uma VM com o Windows Server 2016 em um host ESXi, e o sistema operacional na VM não pode inicializar, mas você precisa obter os arquivos gravados no disco virtual VMDK. Há duas partições NTFS no disco virtual: a partição do sistema de inicialização e o disco C. A imagem ISO de instalação oficial do Ubuntu 18 é usada neste exemplo. A mídia de instalação do Ubuntu pode ser usada como DVD ao vivo.
NOTA: O fluxo de trabalho para versões mais recentes dos produtos considerados neste post do blog é o mesmo. Você pode usar o VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04, etc., e usar o princípio de funcionamento explicado neste artigo.
- Carregue a imagem ISO no datastore que é acessível para o host ESXi no qual a VM está localizada.
- Abra o VMware vSphere Client, vá para Hosts e Clusters, selecione sua VM e clique em Editar Configurações.
- Na janela de configurações da VM, vá para as opções de unidade CD/DVD. Selecione a opção Arquivo ISO do datastore se você tiver o arquivo ISO necessário no datastore acessível pelo host do ESXi. Em seguida, para a opção de Mídia CD/DVD, clique em Procurar e selecione o arquivo ISO apropriado no datastore. O nome do arquivo é ubuntu-18.04.1-desktop-amd64.iso neste caso.
- Inicie a VM, faça o boot a partir da imagem ISO e selecione “Experimentar Ubuntu sem instalar”. Assim que o Ubuntu tiver iniciado a partir da mídia Live DVD, abra o console (Terminal).
- Obtenha os privilégios de root:
sudo -i
- Liste os dispositivos de disco rígido disponíveis:
ls -al /dev/sd*
Há duas partições – /dev/sda1 e /dev/sda2
- Crie diretórios para serem usados como pontos de montagem para cada partição:
mkdir /mnt/win-disk1
mkdir /mnt/win-disk2
- Monte as partições do disco virtual nos diretórios apropriados:
mount /dev/sda1 /mnt/win-disk1/
mount /dev/sda2 /mnt/win-disk2/
- Em seguida, liste os arquivos e diretórios das partições montadas:
ls -al /mnt/win-disk2/
ls -al /mnt/win-disk1/
Como você pode ver na captura de tela acima, a partição montada em /mnt/win-disk2 é a partição usada como disco C: no Windows.
- Agora você pode conectar um disco rígido externo USB (HDD) à porta USB do seu host ESXi e conectar esse HDD à máquina virtual usando a função de passagem USB. Dessa forma, você pode copiar os arquivos necessários armazenados no arquivo VMDK usado como disco virtual pela máquina virtual. Outra opção é usar um compartilhamento SMB (CIFS) e copiar o conteúdo do disco virtual (ou seja, o arquivo VMDK) para outro local por meio da rede.
Neste exemplo, explicamos como copiar dados para um compartilhamento SMB. O compartilhamento SMB foi criado no host cujo endereço IP é 192.168.17.125, o nome do compartilhamento é \\192.168.17.125\share, e user10 tem permissões de gravação para este compartilhamento. Não se esqueça que o Linux, ao contrário do Windows, usa a barra invertida para conectar-se ao compartilhamento.
Vamos montar o compartilhamento SMB (CIFS) no Linux carregado a partir do DVD ao vivo. Primeiro, crie um diretório para ser usado como ponto de montagem.
mkdir /mnt/smb-share
- Em seguida, monte o compartilhamento SMB (CIFS) neste diretório:
mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share
- Digite a senha do usuário.
- Agora, seu sistema Linux está conectado à compartilhamento SMB, e você pode copiar o conteúdo armazenado dentro do arquivo VMDK para o compartilhamento SMB através da rede.
Vamos para o diretório para o qual o compartilhamento SMB está montado e copie o arquivo bootmgr do partition mounted do disco virtual (o arquivo VMDK no datastore ESXi) para o diretório atual (compartilhamento SMB).
cd /mnt/smb-share
cp /mnt/win-disk-2/bootmgr
- Em seguida, certifique-se de que os arquivos necessários foram copiados e verifique o conteúdo da sua partilha SMB.
ls -al /mnt/smb-share
Como você pode ver na captura de tela acima, o arquivo bootmgr usado neste exemplo foi copiado com sucesso. Agora você conhece o primeiro método de copiar o conteúdo do arquivo VMDK para outra localização quando um sistema operacional instalado em uma VM não pode inicializar. A lógica de usar este método no VMware Player ou VMware Workstation é a mesma.
Método 2: Montar um arquivo VMDK como um disco virtual em uma VM saudável (ESXi/Workstation/Player)
Este método é semelhante ao anterior, mas neste caso, o disco virtual VMDK deve ser anexado a uma máquina virtual existente que tenha um sistema operacional funcionando. Você pode anexar um arquivo VMDK como um disco virtual adicional a uma VM existente em execução em um host ESXi, VMware Workstation e VMware Player.
Se você deseja abrir um arquivo VMDK da VM ESXi no VMware Workstation ou Player, você deve copiar tanto o disco virtual quanto seu descritor (arquivos vmdk e –flat.vmdk) para um disco físico que seja acessível para o seu computador onde o VMware Workstation ou Player está instalado. Se instantâneos foram tirados para a VM, e alterações foram feitas nos discos da VM depois disso, não se esqueça de copiar os arquivos VMDK dos discos virtuais delta (de diferenciação) além dos arquivos VMDK pai.
Vamos considerar dois exemplos:
Exemplo 1: como abrir um disco virtual VMDK de uma VM usando outra VM em um host ESXi (ambos estão registrados em um host ESXi)
Exemplo 2: como extrair conteúdo de um disco virtual VMDK de uma VM ESXi ao anexar o disco virtual a uma VM no formato do VMware Workstation
Tenha em mente que o sistema operacional em funcionamento na primeira (saudável) VM deve ser compatível com os sistemas de arquivos usados no disco virtual da segunda VM que possui um sistema operacional não inicializável (uma VM cujo arquivo VMDK você deseja anexar como um disco virtual adicional para extrair arquivos).
Exemplo 1: Montando um disco virtual em uma VM em execução no ESXi
- Desligue a VM que usa um disco virtual do qual você deseja extrair arquivos.
- Encontre este disco virtual no datastore do ESXi.
- Copie o disco virtual para outro diretório no mesmo datastore ou para outro datastore para evitar um erro causado pelo bloqueio do disco virtual. Em nosso exemplo, mostraremos como abrir um arquivo VMDK cujo nome é Win-test2.vmdk (este é um disco virtual da máquina virtual Windows Win-test2 em nosso caso). O host ESXi é gerenciado pelo vCenter. Se você estiver usando um host ESXi independente sem vCenter, pode usar a lógica explicada neste exemplo – as diferenças estão apenas na interface do usuário.
- Abra o Cliente VMware vSphere, vá para Armazenamento e selecione o datastore no qual o arquivo VMDK necessário está localizado. Selecione o arquivo VMDK e clique em Copiar para.
NOTA: Se você tiver um host ESXi independente e não tiver vCenter, abra o Cliente VMware Host digitando o endereço IP do seu host ESXi no navegador da web, depois vá para Armazenamento > [Nome do seu datastore] > Navegador de Datastore, selecione seu arquivo VMDK e clique em Copiar. Selecione o destino e clique no botão Copiar para confirmar. Lembre-se de que os discos virtuais são exibidos como arquivos VMDK na interface da web do Cliente VMware vSphere e do Cliente VMware Host, mas um disco virtual consiste nos arquivos – flat.vmdk e vmdk (um disco virtual e seu descritor). Você também pode abrir o console ESXi diretamente no servidor ou conectar via SSH para copiar os arquivos.
- Na janela aberta, selecione o destino. Você pode copiar o arquivo VMDK para algum local no mesmo datastore ou para outro datastore. Vamos copiar o arquivo VMDK para o diretório raiz do mesmo datastore para esta demonstração. Ambos os arquivos vmdk e –flat.vmdk são copiados neste caso.
- Agora você precisa anexar o disco virtual VMDK a outra VM saudável cujo sistema operacional esteja funcionando corretamente. Neste exemplo, uma VM executando o Windows Server 2016 no mesmo host ESXi é usada (o nome da VM é WinServer2016). Um disco virtual pode ser anexado a esta VM saudável enquanto a VM está em execução. No Cliente vSphere, vá para Hosts e Clusters, selecione a VM saudável, clique com o botão direito na VM e clique em Editar Configurações.
- Na janela que aparece, clique em Adicionar Novo Dispositivo e selecione Disco Rígido Existente.
- Selecione a cópia do seu arquivo VMDK que você fez anteriormente. No exemplo atual, a cópia de Win-test2.vmdk localizada no diretório raiz do datastore foi selecionada.
- Ligue a VM saudável à qual você anexou o disco virtual de interesse, se a VM ainda não estiver ligada. Um disco virtual é adicionado dinamicamente a uma VM em execução do Windows Server 2016.
- No sistema operacional Windows do convidado, vá para Gerenciamento do Computador > Gerenciamento de Disco (ou execute diskmgmt.msc na linha de comando) e encontre seu disco virtual anexado. Por padrão, o novo disco anexado está offline. Clique com o botão direito no disco e clique em Online. Uma letra de disco deve ser atribuída automaticamente para partições no disco adicionado. Se uma letra de disco não tiver sido atribuída para uma partição, clique com o botão direito na partição e clique em Alterar Letra de Unidade e Caminhos.
- Agora você tem acesso completo (leitura/escrita) aos arquivos e diretórios do disco virtual VMDK. Apenas abra o disco montado no Explorador de Arquivos do Windows e copie o conteúdo necessário do arquivo VMDK montado para a VM saudável. Você também pode excluir dados desnecessários do disco virtual VMDK anexado (por exemplo, se houver arquivos criados por vírus), mas tenha cuidado e não prejudique um disco virtual se houver instantâneos relacionados para o disco VMDK montado.
Exemplo 2: Montando um disco virtual em uma VM em execução no VMware Player ou Workstation
Este exemplo é semelhante ao anterior, mas uma VM executada no VMware Workstation é usada para abrir arquivos VMDK da VM do ESXi. Este método pode ser usado quando não há espaço livre em disco no datastore do ESXi para copiar um disco virtual, por exemplo. Um disco virtual da VM Win-test2 mencionada no exemplo anterior será montado em uma VM do VMware Workstation para extrair seu conteúdo.
- No VMware vSphere Client, vá para Armazenamento > [Nome do seu datastore] > Arquivos, selecione seu arquivo VMDK e clique em Baixar.
Como você lembra, um disco virtual do formato ESXi consiste em arquivos vmdk e –flat.vmdk. Você precisa baixar ambos os arquivos para sua máquina onde o VMware Workstation ou o VMware Player está instalado. Quando você baixa um disco virtual do datastore ESXi com o VMware HTML5 vSphere Client, esses dois arquivos são empacotados em um arquivo zip.
Como alternativa, você pode habilitar o acesso SSH ao seu host ESXi, ir para o diretório do datastore e copiar ambos os arquivos do disco virtual para o seu computador manualmente usando um cliente SCP, por exemplo, WinSCP.
NOTA: Ao baixar um disco virtual provisionado magramente de um datastore ESXi que possui o sistema de arquivos VMFS para o seu computador, você obterá um arquivo vmdk leve e um arquivo –flat.vmdk cujo tamanho será igual ao tamanho provisionado máximo do disco virtual (como você faria ao baixar um disco virtual provisionado espessamente). Isso porque o provisionamento magro pode ser considerado como um recurso do sistema de arquivos VMFS.
Agora você pode ver dois arquivos do disco virtual no formato ESXi que foram baixados em um arquivo ZIP. O tamanho do disco virtual provisionado magramente no datastore VMFS é de cerca de 2 GB agora (veja a captura de tela acima), e o tamanho do mesmo disco baixado para uma máquina de estação de trabalho é de cerca de 8 GB (veja a captura de tela abaixo).
- Descompacte os dois arquivos do arquivo. Por padrão, os arquivos são extraídos para o diretório Win-test2.vmdk, cujo nome é o mesmo que o nome do arquivo, mas sem a extensão do arquivo.
- Para este passo, você deve ter uma VM saudável com um sistema operacional funcional em sua máquina com o VMware Workstation ou Player instalado. Enquanto no exemplo anterior foi utilizado uma VM executando o Windows Server 2016, uma VM saudável executando o Windows Server 2008 é utilizada neste exemplo.
Abra o VMware Workstation ou VMware Player, selecione sua VM saudável e edite as configurações da máquina virtual.
- No Hardware tab, clique no botão Adicionar.
- No Assistente para Adicionar Hardware que se abre, selecione Disco rígido como o tipo de hardware. Em seguida, selecione um tipo de disco (você pode deixar o valor recomendado). Na tela Selecionar um Disco, escolha a opção Usar um disco virtual existente.
- Selecione o arquivo vmdk (não –flat.vmdk) que você extraiu do arquivo ZIP. Você pode navegar pelo arquivo ou inserir o caminho completo para o arquivo manualmente.
Neste exemplo, estão sendo usados o ESXi 6.5 e o VMware Workstation 15. A VM do VMware Workstation executando o Windows Server 2008 em nosso exemplo tem a versão de hardware Workstation 12 (versão da VM 12). A VM ESXi cujo disco virtual queremos anexar tem a versão da VM 7.
- Recebemos uma mensagem de erro no VMware Workstation informando que o disco virtual copiado do host ESXi não é compatível com esta máquina virtual:
Este erro pode ser corrigido editando o arquivo de descrição do disco (o arquivo vmdk leve no caso de discos virtuais de VMs ESXi). Abra seu arquivo VMDK no editor de texto e edite o número na string Ddb.virtualHWVersion. No nosso caso, 13 é alterado para 12.
NOTA: Lembre-se de que para discos virtuais de VMs do VMware Workstation, um descritor de disco virtual é construído no arquivo VMDK do disco virtual (não há arquivo de descritor separado como para discos virtuais de VMs ESXi).
Após editar o arquivo, o disco virtual é adicionado com sucesso à VM existente.
- Ligue a VM se ainda não estiver ligada.
- Abra o Gerenciamento de Disco no Windows, altere o status do disco virtual para online, atribua uma letra de unidade a uma partição e navegue pelos arquivos.
Como Extrair Dados de um Arquivo VMDK sem Ligar uma VM
Os métodos que não exigem que você configure e ligue uma máquina virtual têm suas próprias vantagens. Alguns desses métodos não exigem a instalação de um hipervisor. Você pode montar arquivos VMDK diretamente no seu sistema operacional host em um curto período de tempo.
Método 1: Montando arquivos VMDK em um sistema operacional host com VMware Workstation
Este método requer uma instalação do VMware Workstation em um sistema operacional Windows ou Linux em execução no seu computador físico. O VMware Workstation fornece um recurso interessante que permite montar arquivos VMDK no seu sistema operacional hospedeiro. Discos virtuais no formato ESXi e discos delta relacionados a snapshots de VM são suportados. Da mesma forma que todos os métodos anteriores considerados neste post do blog, seu sistema operacional deve suportar os sistemas de arquivos das partições de disco virtual.
Se você tiver snapshots da sua máquina virtual, os discos virtuais delta são criados após a criação de cada snapshot. Você deve ter um disco virtual pai e discos delta disponíveis se quiser abrir um estado de disco virtual no momento após a criação de um snapshot. Nesse caso, você deve montar o disco virtual delta apropriado no seu sistema operacional hospedeiro. Dependências relacionadas ao disco virtual pai serão resolvidas automaticamente.
Se você tiver snapshots mas desejar abrir um disco virtual pai, abra o disco virtual pai no modo somente leitura. Isso ocorre porque fazer alterações no disco virtual pai pode danificar snapshots ou clones vinculados criados a partir de uma máquina virtual pai com o disco virtual pai. O modo somente leitura impede que você escreva dados em um disco virtual após montar o disco no sistema operacional hospedeiro. Você pode montar arquivos de disco virtual VMDK se uma VM que utiliza esse disco virtual estiver desligada, ou se uma VM específica não estiver utilizando esse disco virtual.
Vamos ver como montar um disco virtual VMDK da VM do VMware Workstation que possui snapshots. O Windows está instalado em uma partição NTFS em um disco virtual da VM. Após tirar o primeiro snapshot, o arquivo Snapshot1.txt é criado no diretório raiz do disco C: e, da mesma forma, após tirar o segundo snapshot, o arquivo Snapshot2.txt é criado lá. O primeiro exemplo é para Linux, e o segundo exemplo é para Windows. Arquivos de disco virtual da antiga VM do Windows XP são usados neste exemplo.
Exemplo 1: Montando VMDK no host Linux
- Abra o VMware Workstation para Linux e vá para Arquivo > Montar Discos Virtuais.
- Clique em Montar Disco, e uma janela pop-up se abrirá. Clique em Procurar e selecione o arquivo VMDK do disco virtual.
- Vamos selecionar o arquivo VMDK do segundo disco virtual diferencial criado após tirar a segunda snapshot da VM. O nome deste arquivo aparece como VM_name-000002.vmdk em tais casos (WinXP-test-000002.vmdk é usado neste exemplo).
- Crie o diretório no seu sistema de arquivos Linux para montar um disco virtual no formato VMDK para esse diretório. Vamos criar o diretório /mnt/vmdk/ no console do Linux.
mkdir /mnt/vmdk/
- Defina permissões para o seu usuário (o nome do usuário é user1 e é membro do group1 neste exemplo):
chown -R user1:group1 /mnt/vmdk/
chmod -R 0775 /mnt/vmdk/
- Agora, selecione o diretório que você criou como o diretório alvo, marque a caixa de seleção “Montar em modo somente leitura” e clique em Montar.
- Agora você pode abrir o diretório /mnt/vmdk/ no seu explorador de arquivos Linux e navegar pelos arquivos e diretórios localizados no disco virtual VMDK. Você pode ver os arquivos Snapshot1.txt e Snapshot2.txt, que foram criados após a criação do primeiro e segundo snapshots neste exemplo. Cada um desses dois arquivos está localizado em um disco virtual VMDK delta separado.
- Não se esqueça de desmontar o disco virtual VMDK do diretório (ponto de montagem) no seu sistema Linux hospedeiro quando terminar as operações com o conteúdo do disco virtual.
Se preferir usar a interface de console, você pode montar imagens de disco VMDK no host Linux no console com este comando:
vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk
Onde:
vm_name é o nome da máquina virtual que é o mesmo que o nome do diretório VM neste caso. WinXP-test é o nome da VM no nosso exemplo.
vm_disk_name é o nome do disco virtual (WinXP-test.vmdk é usado neste exemplo).
O vm_disk_name-000001.vmdk é o nome do primeiro disco delta (diferencial) criado após tirar o primeiro snapshot da VM (WinXP-test-000001.vmdk neste caso).
vm_disk_name-000002.vmdk é o nome do segundo disco delta criado após tirar o segundo snapshot da VM (WinXP-test-000002.vmdk neste caso).
- Monte o disco virtual. Por padrão, o disco virtual é montado no modo leitura/escrita. Você pode usar a tecla -r na linha de comando para montar um disco em modo somente leitura.
vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk
- Liste todos os discos virtuais VMDK montados:
vmware-mount -L
- Antes de terminar o trabalho com os discos virtuais VMDK montados, desmonte todos os discos virtuais:
vmware-mount -x
Exemplo 2: Como montar um VMDK no host Windows
A ideia de como montar arquivos VMDK no Windows é similar. Além da opção Arquivo > Mapear Discos Virtuais na interface gráfica de usuário (GUI) do VMware Workstation, você pode seguir os passos abaixo. Vamos montar o arquivo VMDK do primeiro disco virtual diferencial criado após tirar o primeiro snapshot da VM. O nome deste arquivo VMDK tem o seguinte formato: Nome_VM-000001.vmdk (WinXP-test-000001.vmdk é aberto neste tutorial).
- Clique com o botão direito do mouse no arquivo VMDK no Windows Explorer e clique em Mapear Disco Virtual.
- Selecione os parâmetros para montar um arquivo VMDK. É recomendável abrir o arquivo VMDK no modo somente leitura para evitar possíveis danos nos discos virtuais que pertencem à cadeia de snapshots após a gravação de dados. A letra de unidade padrão é Z: neste caso, e a unidade é aberta automaticamente no Windows Explorer após o mapeamento se a caixa de seleção apropriada for marcada. Clique em OK para prosseguir.
- Agora o disco virtual está montado como disco Z: no Windows, e você pode ler o conteúdo do arquivo vmdk. Na captura de tela abaixo, você pode ver o arquivo Snapshot1.txt criado após tirar o primeiro snapshot. O arquivo Snapshot2.txt está ausente porque foi criado após tirar o segundo snapshot da VM, e nós abrimos um disco virtual delta relacionado ao primeiro snapshot da VM.
- Quando terminar de trabalhar com o disco virtual VMDK mapeado, não se esqueça de desconectar o disco. Clique com o botão direito no arquivo VMDK apropriado e, em seguida, clique em Desconectar Disco Virtual. Após desconectar o disco virtual, você pode ligar a VM que utiliza este disco virtual.
Método 2: Usando o 7-zip para extrair conteúdo de arquivos VMDK
Se você está procurando como abrir arquivos VMDK sem executar máquinas virtuais, pode instalar o 7-zip e extrair o conteúdo de imagens de disco virtual. O 7-zip é uma ferramenta gratuita destinada a arquivar e descompactar arquivos de arquivos e outras imagens. Você pode usar o 7-zip como extrator de vmdk. Esta ferramenta pode ser usada em máquinas Linux e Windows.
O 7-zip pode abrir arquivos vmdk e –flat.vmdk (este utilitário pode abrir um único arquivo –flat.vmdk se o arquivo descritor vmdk estiver ausente) – o 7-zip é na verdade para discos virtuais no formato ESXi. O 7-zip não pode abrir arquivos VMDK delta criados após tirar instantâneos da VM.
Como abrir arquivo VMDKs com o 7-zip no Linux
- Instale um pacote completo do 7-zip em sua máquina Linux. O Ubuntu é usado neste exemplo.
apt-get install p7zip-full
- Lista o conteúdo do arquivo vmdk com o 7-zip:
7z l nome_da_vm.vmdk
- Vamos encontrar os arquivos que contêm “boot” em seus nomes, por exemplo:
7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]
Onde user1 é o nome do nosso usuário Linux, l – listar.
- Vamos extrair (e) o arquivo boot.ini da imagem VMDK:
7z e /media/user1/vms/WinXP-test/WinXP-test.vmdk boot.ini
Você pode extrair outros arquivos e diretórios do arquivo VMDK da mesma maneira.
Como abrir arquivo VMDK com o 7-zip no Windows
- Baixe a versão compatível do 7-zip no site oficial e instale o aplicativo em sua máquina Windows. Use o instalador EXE para maior comodidade.
- Depois de instalar o 7-zip no Windows, novas opções do 7-zip são adicionadas ao menu de contexto quando você clica com o botão direito em qualquer arquivo ou pasta no Windows Explorer (veja a captura de tela abaixo). Use essas opções para abrir o arquivo VMDK como um arquivo compactado ou extrair arquivos agora.
- Na captura de tela abaixo, o conteúdo do arquivo independente Win-test2-flat.vmdk é exibido na GUI do 7-zip usada no Windows. Você pode extrair o conteúdo do VMDK que precisa.
Como Montar Arquivos VMDK no Linux (Outros Métodos)
Uma das capacidades mais poderosas do Linux é a capacidade de realizar o maior número de operações no console, mesmo com ferramentas integradas. Essas ferramentas ajudarão você a montar arquivos VMDK e acessar o conteúdo armazenado em discos virtuais. O Ubuntu Linux é usado nos exemplos fornecidos.
Método 1: Como montar arquivo VMDKs usando /dev/loop
Dispositivos de loop são pseudo-dispositivos no Linux, que tornam os arquivos acessíveis como dispositivos de bloco e podem ser usados para montar imagens de disco que contenham sistemas de arquivos. Os dispositivos de loop são nomeados como /dev/loopX, onde X é o número do dispositivo de loop. Este método é bom para montar arquivos – flat.vmdk, mesmo sem um descritor de disco virtual.
Vamos explorar como montar um arquivo VMDK no Linux para acessar os arquivos do disco virtual como exemplo. Há um disco virtual no formato ESXi que contém uma partição – o arquivo de descritor está ausente. Há muito tempo, o Windows XP foi instalado nesse disco virtual.
- Use um dos dois comandos para verificar o número de dispositivos de loop existentes no seu sistema Linux.
fdisk -l | grep /dev/loop
df -h | grep /dev/loop
- No nosso caso, dispositivos com números de 1 a 21 já existem (/dev/loop1 – /dev/loop21). Assim, vamos criar o dispositivo de loop número 30 – este número está livre. Vamos associar este dispositivo com o arquivo – flat.vmdk.
losetup /dev/loop30 /vms/Win-test2-flat.vmdk
-
losetup -o 32256 /dev/loop31 /dev/loop30
Onde 32256 é o deslocamento que é 63*512 para um disco formatado no Windows XP/Server 2003 e versões mais antigas do Windows (63 é o número do primeiro setor da partição e 512 bytes é o tamanho do setor). Para o Windows 7/Server 2008 e versões mais recentes do Windows, tente o deslocamento 105906176.
Você pode obter informações sobre o tamanho do setor e o primeiro setor usado para o início de inicialização com o comando:
fdisk -l /dev/loop30 /vms/Win-test2-flat.vmdk
Como alternativa, para discos virtuais que contenham várias partições, você pode usar o parted para determinar o início e o fim de cada partição:
parted /dev/loop30
Na console parted, insira os seguintes comandos:
unit
B
print
- Crie um diretório a ser usado como ponto de montagem para a imagem VMDK:
mkdir /mnt/vmdk-image
- Monte o dispositivo loopback associado à imagem VMDK no diretório criado:
mount /dev/loop31 /mnt/vmdk-image
- Liste o conteúdo da imagem montada:
ls -al /mnt/vmdk-image
- Depois de terminar de trabalhar com o conteúdo do disco virtual, desmonte a imagem vmdk e desconecte o dispositivo de loop:
umount /mnt/vmdk-image
losetup -d /dev/loop31
Método 2: Como montar arquivos VMDK com kpartx
O kpartx é uma ferramenta que pode montar partições dentro de arquivos de imagem nos diretórios do seu sistema de arquivos Linux real. Esta ferramenta pode ser usada para configurar mapeamentos de dispositivos para partições de dispositivos de bloco. Este método também funciona para montar imagens –flat.vmdk usadas em servidores ESXi. Veja como montar o arquivo –flat.vmdk usado no exemplo anterior.
- Instale o kpartx:
apt-get install kpartx
- Adicione o mapeamento de partição para a imagem VMDK no modo de operação verbose:
kpartx -av /vms/Win-test2-flat.vmdk
- Monte uma partição no diretório /mnt/vmdk-image preparado anteriormente:
mount /dev/mapper/loop30p1 /mnt/vmdk-image/
Onde loop30 é o número do dispositivo de loop, e p1 é o número da partição dentro da imagem (a primeira partição na imagem do disco).
- Liste o conteúdo da partição do disco virtual que você montou:
ls -al /mnt/vmdk-image/
- Quando você terminar as operações com os arquivos da imagem do VMDK, desmonte a imagem do disco virtual do VMDK:
umount /mnt/vmdk-image
kpartx -d /vms/Win-test2-flat.vmdk
Conclusão
Conhecer múltiplos métodos de extração de conteúdo VMDK oferece flexibilidade e confiabilidade, pois cada método pode ser a melhor opção em determinadas situações. Além disso, é ainda melhor ter backups de suas VMs além desse conhecimento.
NAKIVO Backup & Replication pode fazer backup e restaurar VMs em execução no VMware vSphere da melhor maneira. Você pode recuperar toda a VM, o disco virtual específico ou arquivos separados do backup para um local personalizado.
Source:
https://www.nakivo.com/blog/extract-content-vmdk-files-step-step-guide/