Questão Como eu aumento o tamanho do disco rígido da máquina virtual?


enter image description here

Eu fiquei sem espaço na minha máquina virtual WinXP, que eu só dei 10 GB de espaço para quando eu criei. Existe uma maneira fácil de aumentá-lo para, digamos, 20 GB? Não consigo ver nenhuma opção óbvia nas configurações do VirtualBox.


A sugestão abaixo dá esse erro

wim@wim-ubuntu:/media/data/winxp_vm$ VBoxManage modifyhd wim.vdi --resize 20000
VBoxManage: error: Cannot register the hard disk '/media/data/winxp_vm/wim.vdi' {46284957-2c09-4e70-8a49-bfbe0f7f681d} because a hard disk '/home/wim/VirtualBox VMs/winxp_vm/wim.vdi' with UUID {46284957-2c09-4e70-8a49-bfbe0f7f681d} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, AccessMode_ReadWrite, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 210 of file VBoxManageDisk.cpp

Remover o arquivo .vdi do VirtualBox antes de chamar o comando VBoxManage e adicioná-lo novamente foi bem-sucedido. Mas agora não consigo inicializar a máquina virtual, recebo essa tela preocupante:

enter image description here

By the way, diz FATAL: Could not read from the boot medium! System halted.


O vdi deve ser reconectado à VM após o comando VBoxManage. Além disso, a partição precisará ser redimensionada das janelas WITHIN, porque você terá este espaço vazio:

enter image description here

Consegui redimensionar a partição facilmente usando um pouco de freeware chamado EASEUS Partition Master 9.1.0 Home Edition.


234
2017-12-18 11:51


origem


Seu problema é que você vinculou o disco a um local '/ media / data' e que ele não reside na localização original '/ home / wim / VirtualBox VMs'. Eu respondi com como eu consertei isso. - stolsvik
Eu detalhei minha experiência aqui: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size   a resposta "aceita" abaixo está longe de ser correta. - kmonsoor
Existe outra possibilidade de "copiar o vdi existente" para um "novo vdi vazio, cujo tamanho é maior do que o existente" (referência justintung.com/2011/01/06/… ) - parasrish
Observe também que, apenas o redimensionamento pode não ajudar, já que o tamanho "vdi" teria aumentado, mas com base no "vm-os-installation", a partição primária permanece a mesma e o espaço recém-alocado é mostrado "não alocado" ". Você precisa, portanto, fazer a "realocação de partição" (consulte o link acima). - parasrish


Respostas:


Abra um terminal e navegue até a pasta com a imagem de disco do VirtualBox e use o seguinte comando:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

substituindo YOUR_HARD_DISK e SIZE_IN_MB com o nome da sua imagem e tamanho desejado. sudo pode ser necessário em algumas máquinas ou você pode encontrar um erro. Esta resposta e uma explicação mais completa são aqui, no webupd8. Agradecemos a Andrew por postar esta resposta.

Depois de redimensionar, o extra espaço no disco rígido virtual precisa ser particionado e formatado para o convidado usá-lo. Isso pode ser feito com o gparted, inicializando o convidado de um ISO ao vivo. Também podemos redimensionar a partição existente usando o gparted. Para isso, podemos precisar desabilitar /swap e crie uma nova partição swap.


299
2017-12-18 12:07



+1. Só usei isso para aumentar o tamanho do meu disco do Windows 7 de 20 para 30 GB, e funcionou muito bem (sem necessidade de cancelamento de registro, etc). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%  No começo, o Windows não detectou o aumento de espaço, mas depois de um desligamento, eu consegui usar a ferramenta integrada de Gerenciamento de Disco para aumentar o tamanho da minha partição C :. - Jonik
+1, esta é certamente a maneira mais limpa de fazer isso. - Starx
@asd Alterar o tamanho do disco não é suficiente, você também precisa redimensionar a partição. - Bruno
Isso vai funcionar! No entanto, você precisa aumentar a partição depois para que as janelas possam registrar o novo espaço. Melhor e mais rápido / método mais fácil: howtogeek.com/howto/windows-vista/… - tfont
Eu acho que nas versões recentes do VirtualBox é .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720 agora. modifyhd também funciona - há uma compatibilidade retroativa com comandos antigos. - TranslucentCloud


O seguinte funcionou para mim:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

No entanto, eu entendo como a quilometragem pode variar :-) Quanto ao redimensionamento da partição, no Windows 7, eu era capaz de redimensionar na tela que você mostrou clicando com o botão direito do mouse C: conduza no painel inferior e selecione o volume de extensão.

Computer management screen


23
2018-04-15 11:53



sudo é não necessário. Pode corromper as permissões no seu diretório pessoal, exigindo que você use sudo para o virtualbox, que é um mau idéia. - Lekensteyn
@Lekensteyn: É bom saber que não é necessário. Eu usei porque outros disseram que não funcionava sem ser root. No que diz respeito às corrupções de permissões, o chmod funciona bem para corrigir esses erros. - Richard Povinelli
@Lekensteyn: chown corrigirá os erros de propriedade. Eu menciono chmod e chown, porque eu tive que consertar o problema que você está referenciando muitas vezes :-) - Richard Povinelli
Isso é ótimo para o Windows, mas se você tiver um sistema operacional convidado Linux, este link pode ajudá-lo a redimensionar as partições: forums.virtualbox.org/viewtopic.php?f=35&t=50661 - Jon
Se você está rodando windows dentro do linux você precisa seguir estas opções, e estender o disco, senão o windows não vai adicionar o espaço adicional que adicionamos - Ajith R Nair


Wim, acho que você precisará cancelar o registro do Vbox primeiro. File, Media Manager, clique em você hdd e cancele o registro. Então tente novamente.


17
2017-12-19 11:40



Não é necessário no Linux no VirtualBox. Apenas tive que desligar o sistema operacional convidado completamente primeiro. - Underverse


Depois de redimensionar e não ser capaz de ver o redimensionamento na minha máquina de convidado do Windows XP, eu tive que

  1. clonar
  2. redimensionar com "VboxManage modifyhd winxppro \ Clone.vdi --resize 30720" e tudo funcionou

Eu vi em outros fóruns que os snapshots podem interferir no redimensionamento e não conseguir remover todos os snapshots por erros diferentes que recebi, a única solução encontrada para mim foi cloná-lo para remover os snapshots e redimensioná-lo, e tudo funcionou. Para redimensionar janelas externas, um CD de inicialização do gparted que pode ser encontrado Aqui pode ajudar


7
2018-05-28 11:11





Eu tive o mesmo problema onde eu tinha movido um disco, e substitui o original com um link simbólico. Isso funciona OK depois, mas você tem problemas com o comando 'modifyhd', já que aparentemente canoniza o caminho para o arquivo vdi ao trabalhar com ele. Isso faz parecer que você está tentando adicionar um novo disco com o mesmo UUID, mas em um caminho diferente - ou algo parecido.

Houve dois problemas:

  1. O disco teve que ser removido da VM que o usou, mas também "da lista de hdds do VirtualBox". Isso foi corrigido com o comando 'closemedium', que o remove dessa lista.

  2. O disco a ser redimensionado era um "disco fixo" em vez de "dinâmico", e somente os discos dinâmicos podem ser redimensionados. Isso foi corrigido com um comando 'clone' (o clone é dinâmico) e, em seguida, redimensione o disco resultante.

Este é o meu log de como foi feito. Note que eu sou não a qualquer momento executando como root, exceto quando eu depois faço o redimensionamento da partição e do sistema de arquivos.

REMOVER A ASSOCIAÇÃO AO DISCO DA VM. 

PROBLEMA AINDA PERSISTAS:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
VBoxManage: error: Cannot register the hard disk '/datadisk/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' {6cd99209-e4db-4178-a6c2-53f9581b1fad} because a hard disk '/home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi' with UUID {6cd99209-e4db-4178-a6c2-53f9581b1fad} already exists
VBoxManage: error: Details: code NS_ERROR_INVALID_ARG (0x80070057), component VirtualBox, interface IVirtualBox, callee nsISupports
VBoxManage: error: Context: "OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())" at line 178 of file VBoxManageDisk.cpp

Ah, o disco ainda está "no sistema":

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

UUID:        6cd99209-e4db-4178-a6c2-53f9581b1fad
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 64 bit/TestInception 64 bit.vdi
State:       created
Type:        normal

Remover / excluir o disco da lista de discos do VirtualBox ("closemedium"):

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage closemedium disk 6cd99209-e4db-4178-a6c2-53f9581b1fad
virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage list hdds
UUID:        ba58276a-bbe1-4354-8ae5-246bdac390c8
Parent UUID: base
Format:      VDI
Location:    /home/virt_box/VirtualBox VMs/TestInception 32 bit/TestInception.vdi
State:       locked write
Type:        normal
Usage:       TestInception 32 bit (UUID: a693ac62-7caa-4f11-9d00-51d3a149f5f7)

Tente o redimensionar novamente:

virt_box@TestBox:~/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd TestInception\ 64\ bit.vdi --resize 8192
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

DAMN, "tamanho fixo" NÃO FUNCIONA! 'clonehd' para o resgate, pois deixa um disco clonado 'dinamicamente alocado':

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage clonehd TestInception\ 64\ bit.vdi TestInception\ 64\ bit-cloned.vdi
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: 8e237500-173b-401a-9e63-9e64da110da9

AGORA FAÇA O RESIZE (instantanious):

virt_box@TestBox:/datadisk/VirtualBox VMs/TestInception 64 bit$ VBoxManage modifyhd --resize 8192 TestInception\ 64\ bit-cloned.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Em seguida, conecte a alguma VM, para redimensionar. Isso é feito como root. Supõe que você tenha apenas uma partição e, possivelmente, troque.

# fdisk /dev/sdb  # <- The extra disk, just attached to be resized
// The procedure looks like this:
// m - print help
// p - print table
// d ... - delete partition (delete both if you have root and swap)
// n - new partition (create root/first partition starting on exact same sector as before, typically 2048, but ends on last, or last minus swap)
//  ... n.. (.. then add the swap partition. Calculate how many sectors using original table)
// t - change type of partition (swap partition, if any, to 82 - not 83 which is "normal Linux").
// w - write partition table (write out, with the resized partition)

# e2fsck -f /dev/sdb1

e2fsck 1.42.5 (29-Jul-2012)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 99918/122160 files (0.3% non-contiguous), 471032/487936 blocks

# resize2fs /dev/sdb1

resize2fs 1.42.5 (29-Jul-2012)
Resizing the filesystem on /dev/sdb1 to 1965824 (4k) blocks.
The filesystem on /dev/sdb1 is now 1965824 blocks long.

5
2018-04-09 12:01



Isso funcionou para mim, seguiu o guia aqui: yinfor.com/2015/05/… - marijnz0r


Isso funcionou para mim com o Virtualbox 5.2.6 instalado no Ubuntu 16.04 Host Machine e no Windows 10 Guest: Abra o Virtualbox Manager, clique em Global Tools (canto superior direito) e escolha o Virtual Media Manager. Clique na guia Disco Rígido e selecione seu sistema operacional convidado. Na parte inferior da caixa, clique na guia Atributos. Na parte inferior você pode ver o tamanho do disco virtual, e com o controle deslizante você pode aumentar o tamanho ao seu gosto. (Você só pode aumentar, não diminuir o tamanho com esse método). Clique em Aplicar. Inicie o seu SO Windows Guest, abra o Gerenciamento do Computador, clique com o botão direito do mouse em C: Drive e selecione Estender Volume para estender o sistema de arquivos com a parte não alocada.

Isso é tudo que eu tive que fazer, funciona perfeitamente para mim.


2
2018-01-24 17:55



Funcionou muito bem. Esta não deveria ser a resposta aceita, pelo menos para as versões recentes do VirtualBox? - AlwaysLearning


Uma maneira certa é fazer o mesmo que mover para um disco rígido maior que não está sendo executado em uma VM. Primeiro use o programa ccleaner ou similar no XP para limpar todos os arquivos inúteis que puder. Em seguida, crie um HDD virtual secundário com o tamanho desejado. Inicialize com o clonezilla ISO em sua unidade ODD virtual e clone junto com a opção 'redimensionar para novo tamanho da partição' selecionada. Em seguida, defina o novo Virtual HDD como principal e não o exclua até que ele funcione.


1
2017-12-19 14:03