Mais uma vez, tenho que recorrer aos especialistas aqui no SuperUser, pois minhas outras fontes (principalmente o Google ;-)) não foram muito úteis ...
Então, basicamente, eu gostaria de criar uma imagem VHD de um disco físico para ser arquivada / acessada / talvez até montada em uma máquina virtual. Agora, existem dezenas de artigos e tutoriais sobre como fazer isso na Web, mas nenhum que atenda exatamente às condições que eu gostaria de obter:
- Gostaria que o arquivo de destino fosse uma imagem VHD , pois o Windows 7 pode montá-lo nativamente, mesmo através da rede e muitos outros programas podem usá-lo (VirtualBox, ...)
- O disco que estou tentando criar uma imagem contém uma instalação do Windows XP; portanto, em teoria, eu poderia usar o
disk2vhd
utilitário, mas gostaria de encontrar uma solução que não exija a inicialização da instalação do Windows XP (ou seja, mantenha o disco somente leitura ) - Assim, eu estava procurando uma solução que envolvesse algum tipo de sistema ativo (executando a partir de um dispositivo USB ou da rede)
No entanto, todas as soluções que encontrei usam disk2vhd
ou usam o dd
comando no linux, que faz uma cópia completa do disco (ou seja, mesmo blocos vazios) e não gera um arquivo VHD. Existe uma ferramenta / programa no Linux que pode criar diretamente um arquivo VHD? Ou é possível converter uma imagem de disco bruto criada usando dd em um arquivo VHD, sem alocar espaço para os blocos vazios? Como você procederia?
Como sempre, qualquer conselho ou comentário é muito apreciado!
Respostas:
Para referência futura, eis como eu finalmente procedi, com alguns comentários sobre os vários problemas ou armadilhas encontradas:
1. Inicialize a máquina com um sistema ativo Linux
O primeiro passo foi inicializar a máquina que contém o disco na imagem, usando um sistema ao vivo do Linux.
2. Imagem do disco usando
dd
e canalize os dados atravésssh
Em seguida, copiei todo o conteúdo do disco em uma imagem de arquivo no meu servidor local usando
dd
e canalizando os dados através dessh
:Alguns comentários aqui: esse método lerá todo o conteúdo do disco, podendo levar muito tempo (levei 5 horas para um disco de 80 Gb). O gargalo não é a rede, mas realmente a velocidade de leitura do disco. Antes de iniciar a cópia, aconselho a verificar os parâmetros do BIOS / disco / sistema para garantir que o disco e a placa-mãe estejam funcionando na velocidade mais alta possível (isso pode ser verificado usando o comando
hdparm -i
e executando um testehdparm -Tt /dev/hdX
).NOTA:
dd
não produz progresso da operação, mas podemos forçá-lo a enviar o sinal USR1 para odd
PID do processo a partir de outro terminal:3. Recupere o espaço não utilizado
Nesse ponto, a máquina de origem não é mais necessária e trabalharemos exclusivamente no servidor de destino (executando o Linux também). O VirtualBox será usado para converter a imagem do disco bruto para o formato VHD, mas antes disso, podemos zerar os blocos não utilizados, para que o VirtualBox não aloque espaço para eles no arquivo final.
Para fazer isso, montei as imagens como um dispositivo de loopback:
NOTA: O deslocamento que indica o início da partição na imagem do disco pode ser obtido usando
parted
o arquivo de imagem:NOTA2: O driver NTFS padrão do kernel Linux fornece acesso somente leitura, portanto, é necessário instalar e usar o
ntfs-3g
driver do espaço do usuário ou gravar no disco gera um erro!4. Crie a imagem VHD usando o VBoxManage
Neste ponto, podemos usar os utilitários do VirtualBox para converter a imagem bruta em um arquivo VHD:
fonte
vdfuse
ouqemu-nbd
convertendo-o em um arquivos .img (mais informações: askubuntu.com/questions/19430/... )bs=4M
para acelerar o processo significativamente.Eu estava tentando fazer exatamente a mesma coisa que o OP (ao resgatar uma instalação do Windows) e acabei criando uma nova ferramenta para ele
ntfsclone2vhd
.Você simplesmente faria algo assim:
fonte
make
exceção das cópias do Linux) que encontrei em muitas horas de pesquisa. Bravo por tomar a iniciativa Yirkha!Uma abordagem é usar algumas tecnologias úteis: VirtualBox e o
ntfsprogs
pacote.Versões recentes do VirtualBox permitem criar arquivos de disco rígido VHD, enquanto
ntfsprogs
fornece ontfsclone
utilitário. Como o próprio nome sugere,ntfsclone
clona os sistemas de arquivos NTFS, e acredito que o faça no nível do sistema de arquivos, pulando blocos de disco não utilizados.Portanto, para começar, crie uma nova VM no VirtualBox e provisione uma nova unidade de arquivo VHD vazia para ela. A unidade VHD precisa ser tão grande quanto o tamanho dos dados em uso na unidade física que você deseja clonar (na verdade, aumente um pouco maior, para permitir espaço de manobra).
Em seguida, encontre um CD ao vivo do Linux que contenha o
ntfsprogs
pacote e tambémopenssh-server
. Eu gosto do System Rescue CD para isso, mas praticamente qualquer CD ao vivo baseado em Debian ou Ubuntu deve funcionar também.Inicialize a VM do VirtualBox com o CD ao vivo do Linux e inicie
sshd
na VM para que você possa executar comandos nela remotamente. Particione a unidade VHD vazia adequadamente, usando a ferramenta de particionamento que você preferir (eu gosto da velha idadefdisk
, mas sou um pouco velha escola).Com outra cópia do live CD do Linux, inicialize a máquina que contém o disco físico que você deseja clonar. Presumo que a VM do VirtualBox e esta máquina sejam acessíveis uma pela outra através da rede. Nesta máquina, execute o seguinte comando (tudo em uma linha):
Onde:
/dev/sdXX
é o nome do dispositivo (na máquina local) da unidade física que você deseja clonar e/dev/sdYY
é o nome do dispositivo (na VM) da unidade de destino VHD.Explicação: O primeiro
ntfsclone
comando no pipeline extrai uma imagem do sistema de arquivos NTFS de origem e a envia pelo túnel ssh, enquanto o segundontfsclone
comando recebe a imagem e a restaura na unidade VHD.Após a conclusão da operação, o arquivo VHD deve conter um clone exato de arquivo para arquivo do disco físico original (exceto erros de hardware, como setores defeituosos, que podem causar o cancelamento prematuro do processo).
Uma última coisa que você pode querer fazer é executar um Windows
chkdsk
na unidade VHD, apenas para garantir que a clonagem não apresente nenhum problema (não deveria ter, mas, ei, estou um pouco paranóico com essas coisas).fonte
(Eu sei que este é um post antigo, mas talvez isso ajude outras pessoas.)
Você realmente precisa ser capaz de criar a imagem no Linux? Eu acho que você está tentando fazer backup de discos rígidos do Windows para VHD. Não acho que os sistemas de arquivos Linux possam ser encapsulados em um contêiner VHD.
Um utilitário SysInternals gratuito chamado Disk2vhd criará VHDs do Windows XP atualmente em execução ou sistema mais recente. Isso também deve funcionar para geração de imagens de unidades montadas em USB.
fonte
Também tento clonar um sistema linux ao vivo recentemente.
Ainda não há soluções perfeitas. Sugira duas maneiras de tentar:
(1) VMware vConverter (gratuito)
Você precisa instalar o hypervisor vsphere (gratuito) como destino.
Eu fiz isso dias atrás, sem sorte para ter sucesso. Acho que eu instalo o vSphere em um VirtualBox.
Consulte aqui: http://xrubenx.blogspot.com.au/2010/01/vmware-converter-standalone.html
(2) Use este http://www.r1soft.com/tools/linux-hot-copy/
Vou tentar o R1Soft hotcopy neste fim de semana.
fonte
Você também pode usar um CD ao vivo com o Windows. Não é oficial da Microsoft, mas funciona. Você pode colocá-lo em uma unidade de CD ou USB.
fonte