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

232

Me he quedado sin espacio en mi máquina virtual WinXP, que solo 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 muestra 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

Se eliminó el .vdi de VirtualBox antes de llamar al comando VBoxManage y luego volver a agregarlo. Pero ahora no puedo arrancar la máquina virtual, obtengo esta pantalla preocupante:

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

La vdi se debe volver a conectar a la VM después del comando VBoxManage. Además, la partición deberá redimensionarse desde dentro de windows, ya que tendrá este espacio vacío:

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

    
pregunta wim 18.12.2011 - 12:51

13 respuestas

297

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_DISK y SIZE_IN_MB con el nombre de su imagen y el tamaño deseado. sudo puede ser necesario en algunas máquinas o puede encontrar un error. Esta respuesta y una explicación más completa son aquí, en webupd8 . Gracias a Andrew por publicar esta respuesta.

Después de redimensionar, el espacio de disco duro virtual necesita ser particionado y formateado para que el invitado lo use. Esto se puede hacer con Gparted arrancando el invitado desde un ISO vivo. También podemos cambiar el tamaño de la partición existente usando gparted. Para esto podemos necesitar deshabilitar /swap y crear una nueva partición swap.

    
respondido por el Tom Brossman 18.12.2011 - 13:07
23

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 mostró haciendo clic derecho en el C: conducir en el panel inferior y seleccionar el volumen de extensión.

    
respondido por el Richard Povinelli 15.04.2012 - 13:53
17

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

    
respondido por el tiempjuuh 19.12.2011 - 12:40
7

Después de cambiar el tamaño y no poder ver el cambio de tamaño en mi máquina de invitado 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 con el cambio de tamaño y no ser capaz de 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 compartido que se puede encontrar aquí puede ayudar

    
respondido por el Philippe Gachoud 28.05.2013 - 13:11
5

Tuve el mismo problema donde había movido un disco, y reemplacé el original con un enlace simbólico. Esto funciona bien después, pero tiene problemas con el comando 'modifyhd', ya que aparentemente canonicaliza la ruta al archivo vdi cuando 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 removido de la VM que lo usó, pero luego también "de la lista VirtualBox de hdds". 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 se pueden cambiar el tamaño de los discos dinámicos. 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. Observe que no en ningún momento se está ejecutando como raíz , excepto cuando luego hago el cambio de tamaño de la partición y el sistema de archivos.

RETIRE LA ASOCIACIÓN DEL DISCO DE VM.

EL PROBLEMA AÚN 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

Eliminar / eliminar 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)

Intenta redimensionar de nuevo:

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, "tamaño fijo" ¡NO FUNCIONA! 'clonehd' al rescate, ya que deja un disco clonado 'dinámicamente asignado':

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 HAGA EL CAMBIO DE 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%

LUEGO ADJUNTAR A ALGUNA VM, PARA REDIMENSIONAR. Esto se hace como root Supone que solo tiene una partición y posiblemente un intercambio.

# 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.
    
respondido por el stolsvik 09.04.2013 - 14:01
2

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 del disco duro y seleccione su sistema operativo 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). Haga clic en Aplicar. Inicie su sistema operativo invitado de Windows, abra Administración de equipos, haga clic con el botón derecho en C: Unidad y seleccione Extender volumen para ampliar el sistema de archivos con la parte no asignada.

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

    
respondido por el Judex 24.01.2018 - 18:55
1

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

    
respondido por el xyzzyman 19.12.2011 - 15:03
1

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

    
respondido por el JJinCO 01.02.2012 - 10:34
1

De hecho, parece que modifyhd por sí solo no te sirve de nada en algunos casos. De hecho, amplié mi WinXP vdi clonando la imagen después de la expansión.

Aquí está la guía completa paso a paso que funcionó para mí hace un par de semanas: enlace

    
respondido por el 0x61696f 01.05.2012 - 21:25
1

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

VBoxManage modifyhd YOUR_HARD_DISK.vdi --resize SIZE_IN_MB  

Trabajó para mí al momento de preguntar

    
respondido por el tindase 27.03.2012 - 00:53
1

También puedes hacerlo usando el menú de VirtualBox:

Seleccione File - & gt; Virtual Media Manager ...

Se abrirá una ventana:

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

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

Abrir Computer Management (búscalo en el menú de inicio), selecciona Storage - & gt; Disk Management en 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.

    
respondido por el lenooh 06.07.2018 - 14:36
0

Esta es una forma de cambiar el tamaño de su disco VirtualBox, independientemente de si se trata de 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!
  

⚠️ Haga una copia de seguridad del disco virtual. Nunca se sabe qué 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 de VirtualBox con su nombre de archivo, 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 VBoxManage no se reconoce como un comando, especifique la ruta completa a él. 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 en el 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 lo desea:

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

Luego, en su sistema operativo invitado necesita cambiar el tamaño de las particiones para usar el espacio disponible recientemente.

    
respondido por el Virtlink 18.08.2017 - 15:53
0

Si su equipo host es Windows, puede ejecutar el siguiente comando para aumentar o disminuir el tamaño del disco vdi en el cuadro 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 su_nombre_usuario con el usuario real de Windows y 20000 es el tamaño MB del disco.

    
respondido por el Manish Jangir 03.08.2018 - 09:50

Lea otras preguntas en las etiquetas