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:
- Eu usei o parâmetro -p para listar as partições
- Eu estou no diretório da máquina virtual
- 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.
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.
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.