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

257

insira a descrição da imagem aqui

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


A sugestão abaixo fornece 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

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

insira a descrição da imagem aqui

A propósito, diz FATAL: Could not read from the boot medium! System halted.


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

insira a descrição da imagem aqui

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

wim
fonte
3
Seu problema é que você vinculou o disco a um local '/ media / data' e não reside no local original '/ home / wim / VirtualBox VMs'. Eu respondi como consertei isso.
Stolsvik 09/04
1
Eu detalhei minha experiência aqui: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size A resposta "aceita" abaixo está muito longe de ser correta.
kmonsoor 08/10/19
Há uma outra possibilidade de "copiar o VDI existente" para uma "nova VDI vazio, cujo tamanho é maior do que o existente" (rência justintung.com/2011/01/06/... )
parasrish
Além disso, observe que apenas redimensionar pode não ajudar, pois o tamanho do "vdi" aumentaria, mas com base na "vm-os-installation", sua partição principal permanece a mesma e o espaço recém-alocado geralmente é mostrado como "não alocado" " Você precisa, portanto, fazer a "realocação de partição" (consulte o link acima).
parasrish

Respostas:

325

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_DISKe SIZE_IN_MBcom o nome da imagem e o tamanho desejado. sudopode ser necessário em algumas máquinas ou você pode encontrar um erro. Esta resposta e uma explicação mais completa estão aqui, no webupd8 . Agradecemos a Andrew por postar esta resposta.

Após o redimensionamento, o espaço extra no disco rígido virtual precisa ser particionado e formatado para que o hóspede possa usá-lo. Isso pode ser feito com o gparted, inicializando o convidado a partir de uma ISO ao vivo. Também podemos redimensionar a partição existente usando o gparted. Para isso, podemos precisar desativar /swape criar uma nova partição de troca.

Tom Brossman
fonte
20
+1. Apenas usei isso para aumentar o tamanho do meu disco do Windows 7 de 20 para 30 GB e funcionou muito bem (não é necessário cancelar o registro etc.). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% A princípio, o Windows não detectou o aumento de espaço, mas após uma interrupção, o equipamento foi capaz de usar a ferramenta de Gerenciamento de Disco interna para aumentar o tamanho da minha partição C :.
22611 Jonik
3
+1, esta é certamente a maneira mais limpa de fazer isso.
Starx
20
@ asd Alterar o tamanho do disco não é suficiente, você também precisa redimensionar a partição.
Bruno
5
Eu acho que nas versões recentes do VirtualBox é .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720agora. modifyhdtambém funciona - existe uma compatibilidade com os comandos anteriores.
TranslucentCloud
2
Acabo de redimensionar o tamanho do arquivo vdi de 25G para 120G, mas o gerenciador de disco do sistema Windows7 ainda não consegue ver o espaço não alocado. É causado por um arquivo de instantâneo (eu tenho um instantâneo antes), mas quando tento excluir o instantâneo, o relatório de caixa virtual falha, portanto não consigo excluir o instantâneo. Alguma ideia? Meu convidado win7 ainda vê 25G. obrigado.
precisa saber é o seguinte
25

O seguinte funcionou para mim:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

No entanto, eu entendo como a milhagem pode variar :-) Quanto ao redimensionamento da partição, no Windows 7, pude redimensionar a tela exibida clicando com o botão direito do mouse na unidade C: no painel inferior e selecionando estender o volume.

Tela de gerenciamento do computador

Richard Povinelli
fonte
12
sudonão é necessário. Pode corromper as permissões em seu diretório pessoal, exigindo o uso sudodo virtualbox, o que é uma ideia.
Lekensteyn 15/04/12
1
@Lekensteyn: É bom saber que não é necessário. Eu usei porque outros disseram que não funcionava sem ser raiz. No que diz respeito à corrupção de permissões, o chmod funciona bem para corrigir esses erros.
Richard Povinelli
@Lekensteyn: chown corrigirá erros de propriedade. Menciono chmod e chown, porque tive de resolver o problema que você está fazendo referência muitas vezes :-)
Richard Povinelli
2
Isso é ótimo para Windows, mas se você tiver um sistema operacional convidado Linux, este link pode ajudar a redimensionar as partições: forums.virtualbox.org/viewtopic.php?f=35&t=50661
Jon
Se você estiver executando o Windows dentro do Linux que você precisa seguir estas opções, e estender o disco, caso contrário, janelas não vai adicionar o espaço adicional nós adicionamos
Ajith R Nair
18

Wim, acho que você precisará cancelar o registro da Vbox primeiro. Arquivo, Media Manager, clique no seu disco rígido e cancele o registro. Então tente novamente.

tiempjuuh
fonte
2
Não é necessário no Linux no VirtualBox. Só tive que desligar o sistema operacional convidado completamente primeiro.
Underverse
15

Você também pode fazer isso usando o menu VirtualBox:

Selecione File->Virtual Media Manager ...

Uma janela será aberta: insira a descrição da imagem aqui

Selecione seu disco e selecione Properties. Agora basta mover o controle deslizante na parte inferior.

Depois de iniciar a máquina virtual, o Windows não reconhecerá o novo espaço.

Nas janelas, abra Computer Management(procure-o no menu Iniciar), selecione Storage-> Disk Managementno menu esquerdo. Selecione sua partição (provavelmente C :), clique com o botão direito do mouse e selecione Extend Volume .... Agora basta clicar no assistente e pronto.

lenooh
fonte
Você precisa fazer Releaseantes disso? No momento, o controle deslizante está acinzentado. Ou você escolheu a partição dinâmica?
Royi 17/04
Royi: ao criar o disco virtual, verifique se ele possui um tamanho dinâmico.
lenooh 17/04
10

Depois de redimensionar e não poder ver o redimensionamento na máquina convidada do Windows XP, tive que

  1. cloná-lo
  2. redimensione-o com "VBoxManage modifyhd winxppro \ Clone.vdi - redimensione 30720" e tudo funcionou

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

Philippe Gachoud
fonte
6

Eu tive o mesmo problema em que havia movido um disco e substituído o original por um link simbólico. Isso funciona bem depois, mas você encontra problemas com o comando 'modifyhd', pois isso 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 assim.

Houve dois problemas:

  1. O disco teve que ser removido da VM que o usava, mas também "da lista de discos rígidos 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 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. Fazer notar que eu sou não em qualquer ponto em execução como root , exceto quando eu depois fazer o redimensionamento da partição e sistema de arquivos.

REMOVA A ASSOCIAÇÃO AO DISCO DA VM.

AINDA PERSISTA O PROBLEMA:

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

Remova / exclua 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 redimensionamento 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 isso deixa um disco clonado 'alocado dinamicamente':

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 TAMANHO (instantâneo):

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%

ENTÃO ANEXAR A ALGUM VM, PARA Redimensionar. Isso é feito como raiz. 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.
Stolsvik
fonte
Isso funcionou para mim, seguiu o guia aqui: yinfor.com/2015/05/…
marijnz0r
4

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 Virtual Media Manager. Clique na guia Disco rígido e selecione seu SO 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, pode aumentar o tamanho ao seu gosto. (Você só pode aumentar, não diminuir o tamanho com este método). Clique em Aplicar. Inicie o sistema operacional Windows Guest, abra o Gerenciamento do computador, clique com o botão direito na unidade C: e selecione Estender volume para estender o sistema de arquivos com a parte não alocada.

Era tudo o que tinha que fazer, funciona perfeitamente para mim.

Judex
fonte
Trabalhou muito bem. Essa não deveria ser a resposta aceita, pelo menos para as versões recentes do VirtualBox?
AlwaysLearning
2

Uma maneira segura de fazer isso é fazer o mesmo que mudar para um disco rígido maior que não esteja sendo executado em uma VM. Primeiro use o programa ccleaner ou similar no XP para limpar todos os arquivos indesejados que puder. Em seguida, crie um disco rígido virtual secundário do tamanho desejado. Inicialize com o clonezilla ISO em sua unidade ODD virtual e faça o clone junto com a opção 'redimensionar para novo tamanho de partição' selecionada. Em seguida, defina o novo HDD virtual como primário e não exclua o antigo até saber que funcionou.

xyzzyman
fonte
2

Recebi o mesmo erro até usar o sudo para executar o comando e, em seguida, funcionou perfeitamente, ainda preciso aumentar a partição dentro do convidado para usar espaço adicional.

JJinCO
fonte
Algumas pessoas relataram isso faz com que o diretório home tenha permissões ruins
Jonathan
2

Verifique se você está conectado como usuário com permissões de gravação no arquivo de imagem do disco. Então corra

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Trabalhou para mim na primeira vez em que perguntei

tindase
fonte
1
Você teve que reinstalar / reformatar / reparticionar? ou apenas inicializou de volta?
Jonathan
2

Se a sua máquina host for Windows, você poderá executar o seguinte comando para aumentar ou diminuir o tamanho do disco vdi na caixa virtual:

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifyhd "C:\Users\your_user_name\VirtualBox VMs\Ubuntu18LTS\Ubuntu18LTS.vdi" --resize 20000

No comando acima, substitua your_user_name pelo usuário real do Windows e 20000 é MB do tamanho do disco.

Manish Jangir
fonte
1

De fato, parece que por modifyhdsi só não faz nenhum bem em alguns casos. Na verdade, ampliei meu WinXP vdi clonando a imagem após a expansão.

Aqui está o guia passo a passo completo que funcionou para mim há algumas semanas: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/

0x61696f
fonte
Você pode explicar os passos aqui? As respostas com pouco mais que um link para outro site geralmente são desaprovadas aqui e podem ser excluídas .
Tom Brossman
1
Bem, você precisa entender o que o modifyhd faz, que não é muito mais do que expandir o disco virtual subjacente, é tudo. Você ainda precisa expandir o sistema de arquivos que está nele.
Marcin Kaminski
1

Aqui está uma maneira de redimensionar seu disco do VirtualBox, independentemente de se tratar de um formato fixo ou de um formato dinâmico. Especificamente, evita este erro:

Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

Backup️ Faça backup do disco virtual. Você nunca sabe o que pode dar errado.

No seu host:

  1. Abra uma janela do terminal.

    No Windows: Abra o prompt de comando cmd.

  2. Vá para o diretório com o disco virtual que deseja redimensionar. Por exemplo:

    cd "My VMs"
  3. Crie um novo disco do VirtualBox com o nome do arquivo desejado, tamanho (em megabytes) e formato Standard(dinâmico (dinâmico) ou Fixed). Por exemplo, para criar um disco de formato fixo de 50 GB chamado MyNewDisk.vdi:

    VBoxManage createmedium --filename "MyNewDisk.vdi" --size 50000 --variant Fixed

    Se VBoxManagenão for reconhecido como um comando, especifique o caminho completo para ele. Pode ser encontrado no diretório de instalação do VirtualBox. No Windows, o comando acima se tornaria:

    "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" createmedium
        --filename "MyNewDisk.vdi" --size 50000 --variant Fixed
    
  4. Copie o disco original para o novo disco.

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
  5. O redimensionamento está feito! Você pode verificar as propriedades do novo disco se desejar:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
  6. Mude a máquina virtual para usar o novo disco.

Em seguida, no sistema operacional convidado, é necessário redimensionar as partições para usar o novo espaço disponível.

Daniel AA Pelsmaeker
fonte
1

Para quem tem Windows em um VHD, como eu, primeiro converta para VDI clonando com o seguinte comando Linux. (Observe, a VM do Windows foi desligada.)

VBoxManage clonehd Windows10.vhd Windows10.vdi --format vdi

Isso duplicará o vhd.

Em seguida, o VDI pode ser redimensionado com o seguinte. Observe que o VDI não crescerá até que seja usado.

VBoxManage modifyhd Windows10.vdi --resize 80000

Depois de corrigir a montagem de armazenamento no software host da VM e ligar a VM, o Windows inicializa, mas a partição ainda terá o mesmo tamanho. Google para uma ferramenta do Windows que pode redimensionar a partição da unidade C. Usei o EaseUs Partition Master para aumentar a partição da unidade C para o meu novo tamanho.

Finalmente, o VHD pode ser excluído.

jws
fonte