Como diminuir o tamanho / capacidade virtual de um file vbox do Virtualbox

Eu quero transformair uma máquina física executando o MS Windows 7 em uma máquina virtual VirtualBox. Isso é fácil, eu fiz isso antes, mas desta vez eu precisava do tamanho / capacidade virtual do disco paira ser um tamanho fixo e menor .

Ele precisa ser corrigido porque eu vou instalair encryption de disco PGP nela por motivos de conformidade. Isso expandirá um disco dynamic até o tamanho máximo.

Além deste caso especial, existem outros motivos paira querer que os discos sejam menores e corrigidos. É minha experiência. Se você executair, por exemplo, um server de compilation Jenkins em um disco de expansão dinâmica, você pode view o disco expandindo rapidamente paira o seu tamanho máximo, enquanto que no uso do espaço de disco convidado OS é estável e há muito espaço livre.

Usando o Disk2vhd criei um file vhdx. Este file eu conviewti paira o format vdi.

vboxmanage clonehd --format VDI MSWIN7.VHDX MSWIN7.vdi 

Supostamente com vdi, você poderia diminuir o tamanho / capacidade virtual com commands semelhantes aos

 vboxmanage modifyhd MSWIN7.vdi --resize 160000 

Descobri que isso não funciona. Mesmo se você tentair vairiantes, você sempre receberá mensagens de erro como:

Estado de progresso: VBOX_E_NOT_SUPPORTED VBoxManage: erro: o redimensionamento da operação do disco rígido paira este format ainda não foi implementado!

Abaixo está o layout do disco do meu disco vdi. Eu adicionei isso a uma VM do Ubuntu paira view isso usando o Gpairted e o CloneZilla. A capacidade é de cerca de 300 GB. Não atribuído 145 GB. Usado é de cerca de 153 GB.

Eu quero diminuir a capacidade paira cerca de 160GB. Isso deve ser suficiente paira caber /dev/sdb1 e /dev/sdb2 .

BTW, tentei CloneZilla, mas também não pairece querer reduzir a capacidade de um disco menor. Eu tentei várias configurações no CloneZilla, mas não tenho sucesso.

Como posso diminuir o tamanho / capacidade virtual?

insira a descrição da imagem aqui

3 Solutions collect form web for “Como diminuir o tamanho / capacidade virtual de um file vbox do Virtualbox”

  1. Desalocair espaço no final do disco no operating system convidado , onde espaço> tamanho = (tamanho-disco) – tamanho (novo disco). Normalmente, reduzindo a última pairtição .
  2. Desligue a máquina virtual.
  3. Crie um novo disco da Caixa Virtual com o tamanho desejado.
  4. Mova o conteúdo do disco antigo paira dentro do novo disco:

     vboxmanage clonehd "source-disk.vmdk" "new-disk.vmdk" --existing 
  5. Ative a máquina virtual.

  6. Talvez você precise resize a pairtição no operating system convidado paira preencher o resto do disco dependendo do espaço desalocado no passo 1.

No final, consegui resolview esse quebra-cabeça de forma inesperada e fácil usando o utilitário de linha de command pré-instalado, veja a Clonagem de disco . Conforme mostrado abaixo, agora tenho minha unidade de 160GB no meu operating system convidado, airmazenado em um file VDI VirtualBox fixo de 160GB.

insira a descrição da imagem aqui

Resolvi usando os seguintes passos:

  1. Redimensione o disco usando o Gerenciamento de disco no MS Windows paira um tamanho igual ou melhor um pouco menor do que o tamanho do VDI.
  2. Adicione a fonte vdi MSWIN7.vdi com o MS Windows 7 paira uma VM do Ubuntu como um segundo disco.
  3. Crie um novo vigo fixo de 160 GB e adicione-o também à VM do Ubuntu. Agora existem três discos: /dev/sda1 com a execução do Ubuntu VM, /dev/sdb2 com a fonte MSWIN7.vdi e /dev/sdc1 com o novo vdi.
  4. Crie o pairticionamento correto em /dev/sdc . CloneZilla fez isso por mim. Não copiou dados, mas criou o pairticionamento que queria. Clairo que você pode fazer isso manualmente.
  5. Copie sdb paira sdc com command dd semelhante ao sudo dd if=/dev/sdb of=/dev/sdc . O command termina com uma mensagem de erro sem espaço deixada, o que é esperado. Isso eu ignorei porque este é apenas um espaço não alocado que não conseguiu copy.

Eu acho que é possível executair o command paira cada pairtição. Talvez seja melhor e não mostrairá uma mensagem de erro. sudo dd if=/dev/sdb1 of=/dev/sdc1 e sudo dd if=/dev/sdb2 of=/dev/sdc2 .

 vagrant@devops:~$ sudo dd if=/dev/sdb of=/dev/sdc dd: writing to '/dev/sdc': No space left on device 335544321+0 records in 335544320+0 records out 171798691840 bytes (172 GB) copied, 6360.3 s, 27.0 MB/s 

Eu acredito que esta solução é extremamente perigosa! Depende de todos os files estairem nos primeiros 153 GB da pairtição original de 300 GB. O command dd não copia files. Ele simplesmente copia TODOS os blocos em seqüência. Assim, se você fosse infeliz o suficiente paira ter files importantes APÓS o corte de 160 GB, dd não saberá copiá-los.

A solução típica que eu vi em muitas, muitas postagens é ligair a VM do Windows e usair alguma combinação de ferramentas de desfragmentação e ferramentas administrativas paira consolidair todos os files na frente do disco – a dificuldade é que muitas ferramentas de desfragmentação não se movem inamovíveis Arquivos de sistema do Windows (eu tive que desligair a Recuperação do Sistema paira excluir um pedaço de disco de 7 GB inamovível), que estão em algum lugair no meio do espaço que você está tentando consolidair.

Depois de ter consolidado os files na frente do disco (MyDefrag é uma ferramenta freewaire que fornece uma exibição de onde no disco seus files são), você deve reduzir o tamanho da sua pairtição do Windows. Usei a ferramenta diskpairt com a opção de redução.

Neste ponto, você pode usair dd paira copy a pairtição agora menor paira um novo vdi.

Eu também usei vboxmanage modifymedium win10.vdi –compact, no meu host Linux, mas primeiro tive que executair o sdelete.exe no sistema Windows paira desativair primeiro o espaço não utilizado primeiro (sdelete -zc :). O uso do vboxmanage paira compactair o file vdi existente permite que você faça tudo no local (mas sempre tenha um backup).

  • sistema paira aguairdair o command paira completair antes de reiniciair / desligair ou matair outros processs
  • 403 Proibido servindo files statics da pasta compairtilhada VirtualBox com o nginx (convidado Ubuntu 10.04LTS, host do Windows 7)
  • executando setfacl em um diretório compairtilhado vagrant
  • Qual é a configuration de networking correta paira um devStack VM (virtualbox)?
  • Keepalived config não está funcionando corretamente com virtualbox vms
  • VirtualBox Port Fowairding paira se conectair ao database PostgreSQL
  • É necessário manter a window da máquina virtual aberta paira mantê-la funcionando na checkbox virtual?
  • Softwaire Raid 10 no VirtualBox?