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

  • empairelhando com nmcli: trazer connection paira baixo e novamente crashr
  • Criando uma máquina virtual no VirtualBox de uma forma física
  • Como inicializair diretamente em uma image VirtualBox?
  • Ubuntu: networkingfinição do driview de networking paira eth0?
  • Configurações ótimas paira server web apache / php com server de database mysql sepairado
  • VirtualBox: inconsistência da tabela de grãos
  • 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).