¿Cómo aumento el tamaño del disco duro de la máquina virtual?

257

ingrese la descripción de la imagen aquí

Me he quedado sin espacio en mi máquina virtual WinXP, que solo le di 10 GB de espacio para cuando la creé. ¿Hay una manera fácil de aumentarlo a, digamos, 20 GB? No puedo ver ninguna opción obvia en la configuración de VirtualBox.


La sugerencia a continuación da este error

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

Eliminar el .vdi de VirtualBox antes de llamar al comando VBoxManage y luego agregarlo nuevamente fue exitoso. Pero ahora no puedo arrancar la máquina virtual, me sale esta pantalla preocupante:

ingrese la descripción de la imagen aquí

Por cierto, dice FATAL: Could not read from the boot medium! System halted.


El vdi se debe volver a conectar a la VM después del comando VBoxManage. Además, será necesario cambiar el tamaño de la partición desde Windows, ya que tendrá este espacio vacío:

ingrese la descripción de la imagen aquí

Pude cambiar el tamaño de la partición fácilmente usando un bit de software gratuito llamado EASEUS Partition Master 9.1.0 Home Edition .

wim
fuente
3
Su problema es que ha vinculado el disco a una ubicación '/ media / data' y que no reside en la ubicación original '/ home / wim / VirtualBox VM'. He respondido con cómo arreglé esto.
stolsvik
1
He detallado mi experiencia aquí: kmonsoor.wordpress.com/2012/05/26/virtualbox-increase-disk-size La respuesta "aceptada" a continuación está lejos de ser correcta.
kmonsoor
Existe otra posibilidad de "copiar el vdi existente" a un "nuevo vdi vacío, cuyo tamaño es más grande que el existente" ( consulte justintung.com/2011/01/06/… )
parasrish
Además, tenga en cuenta que, simplemente cambiar el tamaño podría no ayudar, ya que el tamaño "vdi" habría aumentado, pero en función de la "instalación vm-os", su partición primaria permanece igual, y el espacio recientemente asignado generalmente se muestra "sin asignar" ". Por lo tanto, debe realizar la "reasignación de partición" (consulte el enlace anterior).
parasrish el

Respuestas:

325

Abra una terminal y navegue a la carpeta con la imagen de disco de VirtualBox, luego use el siguiente comando:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

reemplazando YOUR_HARD_DISKy SIZE_IN_MBcon su nombre de imagen y tamaño deseado. sudopuede ser necesario en algunas máquinas o puede encontrar un error. Esta respuesta y una explicación más completa están aquí, en webupd8 . Gracias a Andrew por publicar esta respuesta.

Después de cambiar el tamaño, el espacio extra del disco duro virtual debe ser particionado y formateado para que el invitado lo use. Esto se puede hacer con gparted iniciando el invitado desde un ISO en vivo. También podemos cambiar el tamaño de la partición existente usando gparted. Para esto, es posible que necesitemos desactivar /swapy crear una nueva partición de intercambio.

Tom Brossman
fuente
20
+1. Solo usé esto para aumentar el tamaño de mi disco de Windows 7 de 20 a 30 GB, y funcionó sin problemas (no es necesario anular el registro, etc.). $ VBoxManage modifyhd Windows7.vdi --resize 30720 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Al principio, Windows no detectó el aumento de espacio, pero después de un apagado lo hizo, y luego pude usar la herramienta de administración de disco incorporada para aumentar el tamaño de mi partición C :.
Jonik
3
+1, esta es ciertamente la forma más limpia de hacerlo.
Starx
20
@asd Cambiar el tamaño del disco no es suficiente, también debe cambiar el tamaño de la partición.
Bruno
55
Creo que en versiones recientes de VirtualBox es .\VBoxManage.exe modifymedium disk 4d30d154-f8c2-4a3b-bd8b-ddcfbfe64aaf --resize 30720ahora. modifyhdSin embargo, también funciona: hay una compatibilidad con los comandos anteriores.
TranslucentCloud
2
Acabo de cambiar el tamaño del archivo vdi de 25G a 120G, pero el administrador de discos del sistema Windows7 aún no puede ver el espacio no asignado. Es causado por un archivo de instantánea (tengo una instantánea antes), pero cuando intento eliminar la instantánea, el informe de virtualbox se bloquea, por lo que no puedo eliminar la instantánea. ¿Algunas ideas? Mi invitado win7 todavía ve 25G. Gracias.
ollydbg23
25

Lo siguiente funcionó para mí:

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB

Sin embargo, entiendo cómo puede variar el kilometraje :-) En cuanto a cambiar el tamaño de la partición, en Windows 7, pude cambiar el tamaño en la pantalla que mostraste haciendo clic derecho en la unidad C: en el panel inferior y seleccionando extender volumen.

Pantalla de gestión informática

Richard Povinelli
fuente
12
sudoNo es necesario. Puede corromper los permisos en su directorio de inicio, lo que requiere que lo use sudopara virtualbox, lo cual es una mala idea.
Lekensteyn
1
@Lekensteyn: Es bueno saber que no es necesario. Lo usé porque otros habían dicho que no funcionaba sin ser root. En cuanto a las corrupciones de permisos, chmod funciona bien para corregir tales errores.
Richard Povinelli
@Lekensteyn: chown reparará los errores de propiedad. Menciono chmod y chown, porque he tenido que solucionar el problema al que hace referencia muchas veces :-)
Richard Povinelli
2
Esto es excelente para Windows, pero si tiene un sistema operativo invitado Linux, este enlace puede ayudarlo a cambiar el tamaño de las particiones: forum.virtualbox.org/viewtopic.php?f=35&t=50661
Jon
Si está ejecutando Windows dentro de Linux, debe seguir estas opciones y extender el disco; de lo contrario, Windows no agregará el espacio adicional que agregamos
Ajith R Nair
18

Wim, creo que primero deberás anular el registro de Vbox. Archivo, Administrador de medios, haga clic en su disco duro y anule su registro. Entonces inténtalo de nuevo.

tiempjuuh
fuente
2
No se requiere en Linux en VirtualBox. Solo tuve que apagar el sistema operativo invitado completamente primero.
Underverse
15

También puede hacerlo usando el menú VirtualBox:

Seleccione File->Virtual Media Manager ...

Se abrirá una ventana: ingrese la descripción de la imagen aquí

Seleccione su disco y seleccione Properties. Ahora solo mueve el control deslizante en la parte inferior.

Después de iniciar la máquina virtual, Windows no reconocerá el nuevo espacio.

En Windows, abra Computer Management(búsquelo en el menú de inicio), seleccione Storage-> Disk Managementen el menú de la izquierda. Seleccione su partición (probablemente C :), haga clic derecho sobre ella y seleccione Extend Volume .... Ahora solo haz clic en el asistente y listo.

lenooh
fuente
¿Necesitas hacer Releaseantes de eso? Como actualmente el control deslizante está en gris. ¿O elegiste la partición dinámica?
Royi
Royi: cuando creas el disco virtual, asegúrate de que tenga un tamaño dinámico.
lenooh
10

Después de cambiar el tamaño y no poder ver el cambio de tamaño en mi máquina invitada de Windows XP, tuve que

  1. clonarlo
  2. cambiar el tamaño con "VBoxManage modifyhd winxppro \ Clone.vdi --resize 30720" y todo funcionó

Vi en otros foros que las instantáneas pueden interferir para cambiar el tamaño y no poder eliminar todas las instantáneas por diferentes errores que obtuve, la única solución que encontré fue clonarla para eliminar las instantáneas y luego cambiar su tamaño, y todo funcionó. Para cambiar el tamaño de las ventanas externas, un CD de arranque separado que se puede encontrar aquí puede ayudar

Philippe Gachoud
fuente
6

Tuve el mismo problema cuando moví un disco y reemplacé el original con un enlace simbólico. Esto funciona bien después, pero se encuentra con problemas con el comando 'modifyhd', ya que aparentemente canoniza la ruta al archivo vdi cuando se trabaja con él. Esto hace que parezca que está intentando agregar un nuevo disco con el mismo UUID pero en una ruta diferente, o algo así.

Hubo dos problemas:

  1. El disco tuvo que ser eliminado de la VM que lo usó, pero también "de la lista de discos duros de VirtualBox". Esto se solucionó con el comando 'closemedium', que lo elimina de esa lista.

  2. El disco a redimensionar era un "disco fijo" en lugar de "dinámico", y solo los discos dinámicos pueden redimensionarse. Eso se solucionó con un comando 'clonar' (el clon es dinámico), y luego cambiar el tamaño del disco resultante.

Este es mi registro de cómo se hizo. Se dan cuenta de que yo soy no en cualquier punto de correr como root , excepto cuando lo hago después del cambio de tamaño de la partición y el sistema de archivos.

RETIRE LA ASOCIACIÓN AL DISCO DE VM.

EL PROBLEMA TODAVÍA PERSISTE:

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, el disco todavía está "en el 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

Retire / elimine el disco de la lista de discos de 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)

Intente cambiar el tamaño nuevamente:

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!

¡Maldita sea, el "tamaño fijo" NO FUNCIONA! 'clonehd' al rescate, ya que eso deja un disco clonado 'asignado dinámicamente':

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

AHORA HAZ EL TAMAÑO (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%

ENTONCES CONECTE ALGUNAS VM, PARA REDIMENSIONAR. Esto se hace como root. Asume que solo tiene una partición y posiblemente intercambie.

# 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
fuente
Esto funcionó para mí, seguí la guía aquí: yinfor.com/2015/05/…
marijnz0r
4

Esto funcionó para mí con Virtualbox 5.2.6 instalado en Ubuntu 16.04 Host Machine y Windows 10 Guest: abra Virtualbox Manager, haga clic en Herramientas globales (esquina superior derecha) y elija Virtual Media Manager. Haga clic en la pestaña Disco duro y seleccione su SO invitado. En la parte inferior del cuadro, haga clic en la pestaña Atributos. En la parte inferior puede ver el tamaño del disco virtual, y con el control deslizante puede aumentar el tamaño a su gusto. (Solo puede aumentar, no disminuir el tamaño con este método). Haz clic en Aplicar. Inicie su SO Windows Invitado, abra Computer Management, haga clic derecho en la Unidad C: y seleccione Extender volumen para extender el sistema de archivos con la parte no asignada.

Eso es todo lo que tenía que hacer, funciona perfectamente para mí.

Judex
fuente
Funcionó muy bien. ¿No debería ser esta la respuesta aceptada, al menos para las versiones recientes de VirtualBox?
Siempre aprendiendo el
2

Una forma segura de hacerlo es hacerlo de la misma manera que pasar a un disco duro más grande que no se está ejecutando en una máquina virtual. Primero use ccleaner o un programa similar en XP para limpiar todos los archivos basura que pueda. Luego, cree un HDD virtual secundario del tamaño que desee. Arranque con el clonezilla ISO en su unidad ODD virtual y clone junto con la opción 'cambiar el tamaño al nuevo tamaño de partición' seleccionada. Luego configure el nuevo HDD virtual como primario y no elimine el anterior hasta que sepa que funcionó.

xyzzyman
fuente
2

Recibí el mismo error hasta que utilicé sudo para ejecutar el comando, luego funcionó perfectamente, todavía necesito que la partición crezca desde el invitado para usar espacio adicional.

JJinCO
fuente
Algunas personas informaron que esto hace que el directorio de inicio tenga malos permisos
Jonathan
2

Asegúrese de haber iniciado sesión como usuario con permisos de escritura en el archivo de imagen de disco. Entonces corre

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Trabajó para mí la primera vez que pregunté

tindase
fuente
1
¿Tuviste que reinstalar / reformatear / repartir? o simplemente arrancó de nuevo?
Jonathan
2

Si su máquina host es Windows, puede ejecutar el siguiente comando para aumentar o disminuir el tamaño del disco vdi en la caja virtual:

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

En el comando anterior, reemplace your_user_name con el usuario real de Windows y 20000 es el tamaño de MB del disco.

Manish Jangir
fuente
1

De hecho, parece que modifyhdpor sí solo no te hace ningún bien en algunos casos. De hecho, amplié mi vdi WinXP clonando la imagen después de la expansión.

Aquí está la guía completa paso a paso que me funcionó hace un par de semanas: http://libtronics.com/2011/07/resize-virtualbox-disk-for-winxp-guest/

0x61696f
fuente
¿Puedes explicar los pasos aquí? Las respuestas con poco más que un enlace a otro sitio generalmente están mal vistas y pueden eliminarse .
Tom Brossman
1
Bueno, debe comprender qué hace modifyhd, que no es mucho más que expandir el disco virtual subyacente, eso es todo. Aún necesita expandir el sistema de archivos que está en él.
Marcin Kaminski el
1

Aquí hay una manera de cambiar el tamaño de su disco VirtualBox, independientemente de si es un formato fijo o un disco de formato dinámico. Específicamente, evita este error:

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

⚠️ Copia de seguridad del disco virtual. Nunca se sabe lo que podría salir mal.

En tu host:

  1. Abre una ventana de terminal.

    En Windows: abra el símbolo del sistema cmd.

  2. Vaya al directorio con el disco virtual que desea cambiar de tamaño. Por ejemplo:

    cd "My VMs"
  3. Cree un nuevo disco VirtualBox con su nombre de archivo deseado, tamaño (en megabytes) y formato (ya sea Standard(dinámico) o Fixed). Por ejemplo, para crear un disco de formato fijo de 50 GB llamado MyNewDisk.vdi:

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

    Si VBoxManageno se reconoce como un comando, especifique la ruta completa al mismo. Se puede encontrar en el directorio de instalación de VirtualBox. En Windows, el comando anterior se convertiría en:

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

    VBoxManage clonemedium "MyOriginalDisk.vdi" "MyNewDisk.vdi" --existing
  5. ¡El cambio de tamaño está hecho! Puede verificar las propiedades del nuevo disco si desea:

    VBoxManage showmediuminfo "MyNewDisk.vdi"
  6. Cambie la máquina virtual para usar el nuevo disco en su lugar.

A continuación, en su sistema operativo invitado, debe cambiar el tamaño de las particiones para usar el nuevo espacio disponible.

Daniel AA Pelsmaeker
fuente
1

Para aquellos que tienen Windows en un VHD, como yo, primero convierta a VDI clonando con el siguiente comando de Linux. (Nota, Windows VM apagado).

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

Esto duplicará el vhd.

Luego, el VDI se puede cambiar de tamaño con lo siguiente. Tenga en cuenta que el VDI no crecerá hasta que se use.

VBoxManage modifyhd Windows10.vdi --resize 80000

Después de reparar el montaje de almacenamiento en el software host VM y encender la VM, Windows arranca, pero la partición seguirá siendo del mismo tamaño. Google para una herramienta de Windows que puede cambiar el tamaño de la partición de la unidad C. Utilicé EaseUs Partition Master para hacer crecer la partición de la unidad C a mi nuevo tamaño.

Finalmente, el VHD se puede eliminar.

jws
fuente