Quero transformar uma máquina física executando o MS Windows 7 em uma máquina virtual VirtualBox. Isso é fácil, já fiz isso antes, mas dessa vez eu precisava que o tamanho / capacidade virtual do disco fosse fixo e menor .
Ele precisa ser corrigido porque instalarei a criptografia de disco PGP por motivos de conformidade. Isso expandirá um disco dinâmico para o tamanho máximo.
Além deste caso especial, há outras razões para desejar que os discos sejam menores e corrigidos. É a minha experiência Se você executar, por exemplo, um servidor de construção Jenkins em um disco que se expande dinamicamente, poderá ver o disco se expandindo rapidamente para seu tamanho máximo, enquanto o uso do espaço em disco do SO convidado é estável e há muito espaço livre.
Usando o Disk2vhd , criei um arquivo vhdx. Este arquivo eu converti para o formato vdi.
vboxmanage clonehd --format VDI MSWIN7.VHDX MSWIN7.vdi
Supostamente com o vdi, você pode diminuir o tamanho / capacidade virtual com comandos semelhantes a
vboxmanage modifyhd MSWIN7.vdi --resize 160000
Eu descobri que isso não funciona. Mesmo se você tentar variantes, você sempre receberá mensagens de erro como:
Estado do progresso: VBOX_E_NOT_SUPPORTED VBoxManage: erro: O redimensionamento da operação do disco rígido para este formato ainda não foi implementado!
Abaixo está o layout do meu disco vdi. Adicionei isso a uma VM do Ubuntu para vê-lo usando o Gparted e o CloneZilla. A capacidade é de cerca de 300 GB. 145GB não alocado. Usado é de cerca de 153 GB.
Quero diminuir a capacidade para cerca de 160 GB. Isso deve ser suficiente para caber /dev/sdb1
e /dev/sdb2
.
BTW, tentei o CloneZilla, mas também não parece diminuir a capacidade para um disco menor. Eu tentei várias configurações no CloneZilla, mas sem sucesso.
Como posso diminuir o tamanho / capacidade virtual?
fonte
vboxmanage clonehd "source-disk.vdi" "new-disk.vdi" --existing
destrói a tabela de partição na imagem de destino.No final, consegui resolver esse quebra-cabeça de uma maneira inesperada e fácil usando o utilitário de linha de comando pré-instalado,
dd
consulte Clonagem de Disco . Como mostrado abaixo, agora tenho minha unidade de 160 GB no sistema operacional convidado armazenada em um arquivo vdi do VirtualBox fixo de 160 GB.Eu o resolvi usando as seguintes etapas:
MSWIN7.vdi
com o MS Windows 7 a uma VM do Ubuntu como um segundo disco./dev/sda1
com a VM do Ubuntu em execução,/dev/sdb2
com a fonteMSWIN7.vdi
e/dev/sdc1
com o novo vdi./dev/sdc
. O CloneZilla fez isso por mim. Não copiou dados, mas criou o particionamento que eu queria. Claro que você pode fazer isso manualmente.sdb
parasdc
comdd
comando semelhante asudo dd if=/dev/sdb of=/dev/sdc
. O comando termina com uma mensagem de erro sem espaço restante, o que é esperado. Isso eu ignorei porque esse é apenas um espaço não alocado que não conseguiu copiar.Eu acho que é possível executar o comando para cada partição. Talvez seja melhor e não mostre uma mensagem de erro.
sudo dd if=/dev/sdb1 of=/dev/sdc1
esudo dd if=/dev/sdb2 of=/dev/sdc2
.fonte
Eu acredito que esta solução é extremamente perigosa! Ele conta com todos os arquivos nos primeiros 153 GB da partição original de 300 GB. O comando dd não copia arquivos. Ele simplesmente copia TODOS os blocos em sequência. Portanto, se você teve a infelicidade de ter arquivos importantes APÓS o limite de 160 GB, o dd não saberá copiá-los.
A solução típica que já vi em muitas postagens é ligar a VM do Windows e usar alguma combinação de ferramentas de desfragmentação e ferramentas administrativas para consolidar todos os arquivos na frente do disco - a dificuldade é que muitas ferramentas de desfragmentação não se movem imóveis Arquivos de sistema do Windows (eu tive que desativar a Recuperação do sistema para excluir um pedaço de disco imóvel de 7 GB), que estão em algum lugar no meio do espaço que você está tentando consolidar.
Depois de consolidar os arquivos na frente do disco (o MyDefrag é uma ferramenta freeware que fornece uma exibição de onde estão os arquivos no disco), você deve reduzir o tamanho da sua partição do Windows. Eu usei a ferramenta diskpart com a opção encolher.
Neste ponto, você pode usar o dd para copiar a partição agora menor para um novo vdi.
Também usei o vboxmanage modifymedium win10.vdi --compact no meu host Linux, mas primeiro tive que executar o sdelete.exe no sistema Windows para zerar todo o espaço não utilizado primeiro (sdelete -zc :). O uso do vboxmanage para compactar o arquivo vdi existente permite que você faça tudo no local (mas sempre tenha um backup).
fonte
No meu caso, eu tinha uma VM do Windows com 50GB vdi para encolher para 20GB.
Eu tentei a solução de Andre Figueiredo , mas tive um problema com o clonado
vdi
.Quando aplico a solução de Andre Figueiredo e conecto o encolhido
vdi
à VM, durante a inicialização, o Virtualbox para com erro de E / S.Talvez isso esteja relacionado ao meu
btrfs
sistema de arquivos (ouvi dizer quebtrfs
causa problemas com o Vritualboxvdi
).Minha solução:
Tentei uma solução diferente para reduzir o disco da VM (
vdi
), chamado OVdi , (o OVdi tem tamanho de disco de 50 GB, partição NTFS única com 40 GB de espaço livre).Vamos seguir estas etapas (este é o meu caso, você pode adaptar / inventar diferentes nomes de vdi ):
pare a VM (desligamento)
crie um novo disco (
vdi
) com o nome DVdi do tamanho desejado (20GB no meu caso ..)anexar DVdi à VM
inicialize a VM e instale o utilitário EaseUS Backup Free
Execute o EasyUS e use a função EasyUS Clone (clona o OVdi MBR e a partição ntfs do OVdi , encolhendo para o novo disco DVdi )
Desligar a VM
Desconecte o OVdi da VM
Verifique se o DVdi é o primeiro dispositivo de inicialização da VM
reinicie a VM
Diverta-se
Não se esqueça de excluir o volume OVdi .
Após essas etapas, reduzi com êxito o tamanho do disco da VM de 50 GB para 20 GB
fonte
Como outros já mencionaram, a resposta de Andre Figueiredo é baseada na sorte, pois não há garantia de que o "primeiro X gb" de espaço seja o seu espaço, a menos que você desfragmente, nesse caso, ainda é arriscado.
A resposta de Paul Hursky é muito mais segura. Vou listar algumas etapas extras que fiz (observe que isso é para Windows, o meu era XP, mas também deve funcionar para outros):
1) Obtenha a edição gratuita do "MiniTool Partition Wizard Free 12" neste link
2) Instale-o no sistema operacional convidado e redimensione sua unidade, deixe algum espaço para respirar apenas por segurança (não puxe tudo de volta ..). Como você provavelmente redimensiona o disco rígido do sistema operacional atual, ele oferece a opção de reiniciar e executar a ação, faça isso.
3) Agora, usando o mesmo programa MiniTool Partition, selecione o espaço não alocado agora (em
*:
) -> Clique com o Botão Direito -> Limpar Partição -> Preencher Setores com Zero (Rápido).4) Agora, desligue o sistema operacional convidado com segurança. Vá para a pasta VirtualBox em que o VBoxManage.exe existe, abra o cmd neste caminho e execute:
5) E agora tudo deve funcionar magicamente. Quando você abrir o SO convidado, ele executará o disco de verificação, DEIXE EXECUTAR, e encontrará "arquivos órfãos" que pareciam arquivos do sistema.
fonte