Montando um disco virtual do VMware

Eu tinha uma maquina virtual com Ubuntu instalada no meu servidor para testes e em um dos testes eu danifiquei a instalação de forma que a máquina não inicializava mais. Depois de tentar de tudo e desistir, veio a mente uma questão: Se fosse no meu servidor de e-mails virtualizado como eu iria transferir os dados dos usuários para outro servidor?

Foi ai que lembrei que o VMware posssui algumas ferramentas em linha de comandos para manutenção do sistema e uma delas chama-se exatamente vmware-mount o que deixa bem claro a sua finalidade.

Listando as partições

O primeiro passo estava dado – já sabia que ferramenta usar – mas agora eu precisava saber quais partições havia no arquivo do disco virtual para montar a partição correta. Para isso fiz o seguinte:

# vmware-mount.pl -p disco_virtual_ubuntu.vmdk
--------------------------------------------
VMware for Linux - Virtual Hard Disk Mounter
Version: 1.0 build-56528
Copyright 1998 VMware, Inc.  All rights reserved. -- VMware Confidential
--------------------------------------------
Nr      Start       Size Type Id Sytem
-- ---------- ---------- ---- -- ------------------------
 1         63    7968177 BIOS 83 Linux
 5    7968303     417627 BIOS 82 Linux swap
#

Observe aqui três coisas:

  1. Eu usei o parâmetro -p para listar as partições
  2. Eu estou no diretório da máquina virtual
  3. O arquivo da máquina virtual que deve ser informado é sempre o “.vmdk” principal (sem aquele “-s001” por exemplo)

Resolva as dependências antes se desejar que tudo funcione de primeira

O vmware monta a imagem do disco como um dispositivo de blocos em rede e para isso precisa criar um dispositivo “/dev/nb0”, como isso é feito no espaço do usuário é preciso que o utilitário fuser esteja instalado no seu sistema.

Considerando que você esteja usando um debian-like basta instalar o pacote psmisc usando o aptitude ou o apt-get assim:

# aptitude install psmisc

Montando a partição desejada

Agora que o seu sistema já está apto a montar filesystems no espaço do usuário é só usar o comando vmware-mount assim:

# vmware-mount.pl disco_virtual_ubuntu.vmdk 1 /mnt
--------------------------------------------
 VMware for Linux - Virtual Hard Disk Mounter
 Version: 1.0 build-56528
 Copyright 1998 VMware, Inc.  All rights reserved. -- VMware Confidential
 --------------------------------------------
It has been reported that this program does not work correctly with 2.4+ Linux
 kernels in some cases, and you are currently running such a kernel. Do you
 really want to continue? [N] Y
Network Block Device driver detected.
Client: The partition is now mapped on the /dev/nb0 Network Block Device.
Using another terminal, you can now browse your Virtual Hard Disk partition in
 /mnt. Hit Control-C in this terminal when done.

Perceba que o comando vmware-mount.pl recebeu como parâmetro o nome do arquivo de disco virtual (disco_virtual_ubuntu.vmdk); o número da partição (1); e o ponto de montagem (/mnt).

Note também a mensagem do último parágrafo qual traduzo assim:

Usando outro terminal, você poderá navegar na partição do seu disco rígido virtual montada em /mnt. Tecle CTRL-C neste terminal quando terminar.

É isso ai! A partição estará disponível enquanto o vmware-mount estiver rodando então abra outro terminal, vá ao ponto de montagem e copie os seus arquivos.

Quando terminar e teclar CTRL-C ela será desmontada.

2 thoughts on “Montando um disco virtual do VMware”

  1. Meu problema é o seguinte meu serviço no servidor corrompeu com uma queda de energia, sendo assim quero saber se posso rodar uma live cd ubuntu para tentar montar a partição do vmware e em seguida resgatar meu arquivo vmdk.???? ola amigo gostaria de saber se a possibilidade de rodar esse comando no ubuntu.

    1. Olá Josimar,

      Sem conhecer seu ambiente fica complicado dar palpites mas considerando que o servidor ESXi está corrompido e terá que ser reinstalado, eu partiria direto pra esta opção já que não necessariamente é preciso formatar o volume de dados (onde estão suas VMDKs). Você escolhe as partições a serem formatadas durante a instalação então você poderia reinstalar o vwmare novamente no servidor (sem formatar os volumes de dados) e quando ele subir terá acesso a todas as suas máquinas virtuais (desde que o volume não tenha sido corrompido, claro).

      Quanto ao rodar o vmware-mount no Ubuntu pode sim, mas este comando só está disponível se você tiver o conjunto de ferramentas da Vmware em sua máquina. A forma mais fácil de obtê-las é instalando o Vmware Player ou Vmware Workstation.

      Quanto a dar boot com um livecd e pegar os vmdks depende do seu ambiente. Onde estão suas máquinas virtuais (arquivos vmdk)? Caso estejam em um volume de storage é preciso saber se é iSCSI, NFS ou até mesmo um DAS e verificar a possibilidade de montá-los diretamente em outra máquina; se for um volume local (até mesmo no caso de um iSCSI) o vmware usa uma formatação proprietária chamada VMFS que o Ubuntu não suporta nativamente então neste caso você precisaria instalar alguma ferramenta baseada em fusefs para fazer esta montagem (dá uma procurada no Google por “mount vmfs on linux”), é simples mas não é automático e nem faz milagres.

      acho que é isso. abç e sucesso ai na sua aventura.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

This site uses Akismet to reduce spam. Learn how your comment data is processed.