Estou tentando descobrir como alterar o tamanho de um arquivo VDI. Sou novo no VirtualBox e tenho muito a aprender. Mas acho que entendi o básico. Eu já instalei o Windows 7 como meu primeiro convidado. O host também é o Windows 7. Eu não tinha certeza da quantidade de espaço em disco a ser alocado; por isso, usei um tamanho VDI de 40 GB e um tamanho fixo para aumentar o desempenho. Mas mudei de idéia agora e quero adicionar outros 10 GB. Estive clicando no programa e lendo o conteúdo do menu Ajuda, mas não está ajudando. Explica controladores de disco, SAS, SATA, SCSI, yada, yada, mas não o que estou procurando.
Eu procurei na Internet em busca de respostas, o fórum do VirtualBox diz que você deve usar o Gparted se quiser o método mais fácil (alguns mods postaram algo pegajoso). Alguns usuários discutem o uso do dd
comando. Mas isso é tudo sobre Linux. Além disso, há muitas perguntas aqui no SU que lidam com o aumento e a diminuição do tamanho dos arquivos VDI, mas o principal é usar o Linux como host e o Windows como convidado.
Eu encontrei este bom do blog post sobre como fazê-lo com o modifyhd
comando de VBoxManage. Esse cara também está fazendo isso no Linux como sistema operacional host. Ele até queria o mesmo tamanho (50 GB) para seu arquivo VDI que eu para o meu, que coincidência. Então, pensei em tentar de qualquer maneira, fazê-lo ou quebrá-lo. O que pode dar errado? ... eh? Bem, esta é a surpresa feia que recebi.
C:\Program Files\Oracle\VirtualBox>VBoxManage.exe modifyhd "%userprofile%\virtua
lbox vms\sg2_win7_x64_lab\sg2_win7_x64_lab.vdi" --resize 51200
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage.exe: error: Resize hard disk operation for this format is not impleme
nted yet!
C:\Program Files\Oracle\VirtualBox>
Diga o que agora?! ... não pode redimensionar discos rígidos virtuais no formato VDI? Você não diz? Não suporta seu próprio formato? Agora, que tal isso ...
Não existe realmente uma maneira simples de alterar o tamanho de um arquivo VDI, de preferência com alguns cliques no VirtualBox? Alguma coisa em andamento?
fonte
modifyhd
é agora conhecido comomodifymedium
mas permanece compatível com versões anteriores - ver virtualbox.org/manual/ch08.html#vboxmanage-modifyvdiRespostas:
Resumo:
VBoxManage.exe modifyhd --resize
pode aumentar (mas não diminuir) o tamanho lógico da imagem do disco (o tamanho visto pelo sistema operacional convidado).VBoxManage.exe modifyhd inputfile.vdi --compact
pode diminuir o tamanho da imagem do disco físico (o tamanho do arquivo de imagem no disco, conforme visto pelo sistema operacional host). No entanto, isso não altera o tamanho do disco lógico. Observe que isso só funciona se o espaço livre tiver sido zerado primeiro no sistema operacional convidado.modifyhd
só funciona apenas com a variante de formato dinâmico ("imagem alocada dinamicamente").modifyhd
só funciona com os formatos de imagem VDI e VHD.Para detalhes, consulte a seção 8.23. VBoxManage modifyhd no manual.
O motivo pelo qual a redução do tamanho do disco lógico de uma VDI ainda não foi implementada é impedir a corrupção de dados que pode ocorrer e você teria VMs não inicializáveis como resultado disso. Portanto, quando a
--resize
opção é usada, o novo tamanho do disco deve ser maior que o tamanho atual. Não é permitido que seja menor ou igual ao tamanho atual. Em outras palavras, um disco de 40 GB só pode ser redimensionado para 41 GB ou mais que isso, não pode ser redimensionado para 40 GB (isso é idiota) ou 39 GB ou menos.As versões antigas do VirtualBox criavam arquivos VDI como variante de formato "fixo". A nova configuração padrão é agora criar variantes de formato "dinâmico" quando novos arquivos VDI (imagem de disco virtual) são criados. (Suponho que esse seja o caso desde a introdução da variante de formato dinâmico, qualquer que seja a versão introduzida.)
Então, o que a mensagem de erro "operação para este formato ainda não foi implementada" significa é que seu arquivo VDI usa a variante de formato "fixo". Para contornar esse problema, você precisará clonar seu arquivo VDI usando o
clonehd
comando Para visualizar em qual variante de formato seu arquivo VDI está atualmente, você pode usar oshowhdinfo
comandoExemplo de trabalho
Mostrar informações de VDI sobre o disco atual.
Comando de entrada:
vboxmanage.exe showhdinfo path\inputfile.vdi
Veja onde está escrito "padrão fixo"? É por isso que cospe o erro acima quando você tenta redimensioná-lo.
Clone o arquivo VDI antigo para um novo arquivo VDI.
Comando de entrada:
vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi
Voilà! O arquivo antigo agora foi clonado para um novo arquivo. Como a configuração padrão nas novas versões do VirtualBox é usar a variante de formato "dinâmico", você não precisa defini-lo explicitamente. Embora, se você estiver trabalhando com uma versão mais antiga do VirtualBox, convém definir a opção como "dinâmica" (se disponível) para garantir melhor compatibilidade e / ou flexibilidade com versões futuras do VirtualBox.
Mostrar informações de VDI sobre o disco clonado.
Comando de entrada:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
Veja como agora diz "padrão dinâmico"? Que bom!
(Nota: o motivo aqui é 7806 MB como tamanho físico, porque eu usei a
--compact
opção no arquivo VDI original na tentativa de forçar a conversão para uma variante de formato dinâmico. Apenas algo que li no fórum do VirtualBox, supostamente teria funcionado com versões mais antigas, então achei melhor tentar. Não funcionou.)Redimensionando o disco clonado.
Comando de entrada:
vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200
Sucesso! Sem formato bullshitting não mais. Lembre-se de redimensionar o novo disco clonado, e não o original. Lembre-se de que o tamanho é expresso em MB. Eu acredito que você pode usar, por exemplo
51200
, bem como50G
(ou possivelmente "GB"). Há também a opção--resizebyte
que pode ser usada para expressar o tamanho em bytes.Mostrar informações de VDI sobre o disco clone redimensionado.
Comando de entrada:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
É isso aí! A partir daqui, o que você precisa fazer é adicionar esta unidade clonada como seu novo VDI para a VM. Você faz isso dentro do VirtualBox. Eu não vou entrar nisso. Se você conseguiu ler e entender isso até agora, provavelmente não precisará de orientações adicionais. Você pode excluir o arquivo "fixo" antigo ou deixá-lo como backup. Certifique-se de testar o novo arquivo VDI antes de excluir o arquivo de origem original.
Nota! Você não verá imediatamente o novo tamanho do disco clonado. Você precisa inicializar a VM e, em seguida, usar sua ferramenta de gerenciamento de partições para expandir sua partição para preencher o disco virtual (ou criar mais partições). Para o Windows, basta executar
diskmgmt.msc
e você poderá expandir a partição.Screenshots
Referência
fonte
modifymedium
/modifyhd
no próprio arquivo de captura instantânea.Aqui está um processo bastante simples que funcionou para redimensionar um disco de tamanho fixo do VirtualBox (v. 4.3.16) para um disco dinâmico de 60 GB no meu Mac (OS X 10.9.4) com Linux (Ubuntu 14.04) em execução como sistema operacional convidado:
Em Terminal no Mac, CD no diretório com o arquivo VDI e digite o seguinte:
Na seção Armazenamento de aplicativos do VirtualBox, adicione mydiskClone.vdi como um segundo HD e inicie a VM normalmente.
No shell no sistema operacional convidado, digite:
Reinicie o convidado. Quando voltar, vá para o shell novamente e digite:
Encerre o SO convidado.
Na seção Armazenamento de aplicativos do VirtualBox novamente, defina mydiskClone.vdi como o disco de inicialização. Em seguida, inicie o SO convidado e verifique o novo tamanho do disco usando as propriedades de "Computador" no navegador de arquivos.
fonte
A clonagem é na verdade uma solução melhor e existe uma maneira mais fácil de fazer isso.
No menu Arquivo, selecione Virtual Media Manager e clique em Copiar. A origem será o seu disco rígido vdi original de tamanho fixo e o seu destino será algo novo de sua escolha (inclui a opção de um novo).
fonte
OK, então fiz isso sem clonagem .
Eu tinha um arquivo VDI de 100 GB (formato fixo) com o Ubuntu nele. Trabalhando bem. Eu queria liberar algum espaço no host diminuindo a VM.
Passos:
Arquivos indesejados excluídos. 45GB grátis. Eu só preciso de 30 GB para ser liberado.
Eu só tenho uma partição, então não posso fazer nada de dentro do Ubuntu convidado. Montado Ubuntu Live na VM e inicializado a partir dele.
Usado
gparted
para reduzir a partição para 70 GB. Criou uma nova partição no espaço não utilizado emext4
.O espaço livre em uma nova partição (30 GB).
Siga este guia: Encolha o disco rígido virtual no Ubuntu como SO convidado e host usando o zerofree
Minha nova partição foi
/dev/sda3
.Compactar o VDI
VBoxManage modifyhd "ubuntu.vdi" compact
Demorou um pouco, mas funcionou!
fonte
--compact
funciona apenas para imagens alocadas dinamicamente, não para imagens de tamanho fixo.Meio tarde para a festa aqui, mas vou adicionar meus 2 centavos. Primeiro direi que esse é um processo complicado que deixará a maioria dos usuários casuais loucos tentando descobrir. Por que a Oracle não incluiu isso na GUI da VBox é um mistério.
Etapa 1: use a linha de comando do Windows (VBoxmanage) para aumentar o tamanho da unidade. Uma dica aqui é usar o ID da unidade vdi em vez de tentar infinitamente entrar no local do arquivo e receber mensagens de erro.
Etapa 2: você precisará expandir sua partição primária para fazer uso do novo espaço. Faça o download do iso gparted e crie uma nova máquina virtual no VBox usando-a como fonte IDE. Em seguida, use a unidade VDI existente como o disco SATA. Não crie uma unidade virtual para esta máquina. Inicialize a nova máquina e você terá o gparted Gui em execução. Isso pode levar algumas reinicializações para se resolver.
Depois que o gparted estiver em execução, você verá as partições do seu drive vdi que deseja redimensionar. IMPORTANTE: Você precisará excluir a partição estendida e trocar o espaço no arquivo para poder aumentar o tamanho da partição primária, para não alocar todo o novo espaço para o PP. Depois de fazer isso, você terá que designar o espaço restante para a nova partição estendida e criar um novo espaço no arquivo de troca. Achei que isso era muito mais fácil do que procurar na linha de comando.
Não é um pedaço de bolo, mas é factível ... levei cerca de meio dia pesquisando na web para descobrir isso. Rodando win8.1 / Ubuntu no VBox
Willie
fonte
Veja como redimensionei / ampliei / expandi uma imagem VDI fixa (meu processo para reduzi-las está em outra resposta):
dd if=/dev/sda of=/dev/sdb status=progress bs=128M
e aguarde a conclusão. Isso copiará o disco original para o novo disco byte a byte, incluindo MBR etc. (Nota: Isso pode demorar um pouco para ser concluído, dependendo dos tamanhos do disco original, velocidade do disco no host, etc.). (Nota: se sua VM convidada tiver> 1 GB de RAM alocada, você poderá alterar o parâmetro 'bs' para "bs = 256M", o que pode acelerar um pouco a cópia).Embora o acima tenha funcionado muito bem para mim várias vezes, parece que são necessárias mais algumas etapas se o LVM for usado. (NOTA: Se o LVM for usado, você pode simplesmente adicionar um novo disco do tamanho desejado e adicioná-lo ao grupo de volumes.) Com o CentOS 6.6, em que o LVM é usado, eu tive que aumentar também o espaço no LVM. Então, depois de inicializar o novo disco criado acima, eu fiz algo nesse sentido (várias partes disso variam com base nos nomes da sua configuração):
Obtenha informações sobre a configuração do LVM:
Estender o volume físico (PV) (o grupo de volumes (VG) refletirá automaticamente o mesmo aumento):
Estenda o volume lógico (LV):
Estenda o sistema de arquivos:
Antes:
Comando:
Depois de:
fonte
Aqui está como redimensionei / reduzi / reduzi uma imagem VDI fixa (meu processo para expandi-la está em outra resposta neste mesmo tópico):
Primeiro, um breve resumo do motivo pelo qual eu precisava disso (pois há muitos cenários para reduzir um VDI, alguns dos quais podem não ser viáveis com essa abordagem): anos atrás, criei um VDI fixo para um convidado do Windows Server e o dimensionei em 600 GB. Não me lembro por que escolhi esse tamanho, mas até hoje consumi apenas 100 GB nesse convidado e quero recuperar a maior parte do espaço restante. Portanto, no meu caso, quero preservar todos os dados no convidado e simplesmente liberar espaço não utilizado no convidado.
(As etapas a seguir são principalmente da minha memória de ter feito isso nas últimas 2 horas, então peço desculpas se eu perder alguma coisa aqui.)
Inicialize a VM convidada (deve inicializar no ambiente ao vivo do gparted). De dentro do ambiente gparted:
Supondo que seu disco "original" seja / dev / sda e "new" seja / dev / sdb (caso contrário, ajuste o comando a seguir adequadamente), copiaremos cada partição, uma de cada vez. Para cada partição anotada na etapa acima, digite o seguinte comando no terminal:
e aguarde a conclusão. Isso copiará a partição 1 do disco original para a partição 1 no novo disco, byte por byte.
Repita o comando para cada partição restante:
Notas:
O último passo que tive que fazer para o meu convidado do Windows foi definir / corrigir o MBR e / ou o BCD. (Não sei se isso é necessário para um hóspede do Linux, pois ainda não o fiz.) Se eu simplesmente inicializei com o meu novo VDI, obtive uma tela de erro do Windows Boot Mgr com este conteúdo (infelizmente não faça uma captura de tela antes de eu corrigir o problema):
Obtenha um ISO de uma instalação ou reparo do Windows (idealmente que corresponda à sua versão do sistema operacional) e configure a VM convidada para inicializá-la (novamente, configurações de armazenamento).
Inicie a VM convidada e escolha inicializar a partir do CD / DVD.
Quando estiver em um prompt de comando, execute os seguintes comandos (graças a http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html para obter as informações!):
Este último comando deve localizar a instalação do Windows e solicitar a adição ao BCD. Responda 'Y'.
fonte
Eu forneço uma resposta estendida a qualquer sistema operacional hospedado em execução em qualquer sistema operacional host. Esta resposta assume que você deseja aumentar o tamanho (para estender).
Nota: Conforme indicado pelo djule5 (veja o comentário logo após a pergunta),
modifyhd
agora é conhecido comomodifymedium
(mas permanece compatível com versões anteriores). Aqui eu usomodifymedium
.1. Saia da sua VM em execução
Sim, esta resposta é para um arquivo VDI já usado por uma VM do VirtualBox.
2. Abra um terminal no seu host para redimensionar a imagem do disco
A linha de comando VBoxManage não deseja redimensionar uma imagem de disco usando o nome do arquivo VDI.
Portanto, identifique o UUID da sua imagem de disco.
Estenda o tamanho da imagem do disco.
3. Use uma ferramenta de particionamento para estender a partição lógica
Execute sua VM hospedada. Em seguida, use uma ferramenta de particionamento .
Algumas ferramentas para um GNU / Linux hospedado:
Se o sistema hospedado usa Windows:
4. Verifique o espaço livre da partição
O tamanho do seu arquivo VDI (no sistema host) pode não ter sido alterado porque sua VM ainda não usou a quantidade extra de espaço. Diverta-se.
fonte
Isso funcionaria para mim e deve especificar a quantidade total da capacidade do disco rígido. Não é o espaço que precisamos aumentar ...
fonte