Estoy tratando de descubrir cómo cambiar el tamaño de un archivo VDI. Soy nuevo en VirtualBox y tengo mucho que aprender. Pero creo que entendí lo básico. Ya instalé Windows 7 como mi primer invitado. El host también es Windows 7. No estaba seguro de cuánto espacio en disco asignar, así que elegí un tamaño VDI de 40 GB y un tamaño fijo para un mayor rendimiento. Pero ahora he cambiado de opinión y quiero agregar otros 10 GB. He estado haciendo clic en el programa y leyendo el contenido del menú Ayuda, pero no está ayudando. Explica los controladores de disco, SAS, SATA, SCSI, yada, yada, pero no es lo que estoy buscando.
Busqué respuestas en la red mundial, el foro de VirtualBox dice que se supone que debes usar Gparted si quieres el método más fácil (algunos mod publicaron una pegajosa). Algunos usuarios discuten usando el dd
comando. Pero eso es todo lo relacionado con Linux. Además, hay muchas preguntas aquí en SU que tratan sobre el aumento y la disminución del tamaño de los archivos VDI, pero se trata de usar Linux como host y Windows como invitado.
Encontré esta bonita publicación de blog sobre cómo hacerlo con el modifyhd
comando de VBoxManage. Este tipo también lo está haciendo en Linux como sistema operativo host. Incluso quería el mismo tamaño (50 GB) para su archivo VDI que yo para el mío, qué coincidencia. Así que pensé en intentarlo de todos modos, ya sea hacerlo o romperlo. ¿Qué puede salir mal? ... ¿eh? Bueno, esta es la fea sorpresa que tengo.
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 qué ahora?! ... no puede cambiar el tamaño de los discos duros virtuales del formato VDI? Usted no dice ¿No es compatible con su propio formato? Ahora qué tal eso ...
¿Realmente no hay una manera simple de cambiar el tamaño de un archivo VDI, preferiblemente con unos pocos clics dentro de VirtualBox? ¿Algo en progreso?
fuente
modifyhd
ahora se conoce comomodifymedium
pero sigue siendo compatible con versiones anteriores: consulte virtualbox.org/manual/ch08.html#vboxmanage-modifyvdiRespuestas:
Resumen:
VBoxManage.exe modifyhd --resize
puede aumentar (pero no disminuir) el tamaño lógico de la imagen del disco (el tamaño visto por el SO huésped).VBoxManage.exe modifyhd inputfile.vdi --compact
puede disminuir el tamaño de la imagen del disco físico (el tamaño del archivo de imagen en el disco como lo ve el sistema operativo host). Sin embargo, esto no cambia el tamaño del disco lógico. Tenga en cuenta que esto solo funciona si el espacio libre se ha puesto a cero en el SO huésped primero.modifyhd
solo funciona con la variante de formato dinámico ("imagen asignada dinámicamente").modifyhd
solo funciona con formatos de imagen VDI y VHD.Para más detalles ver sección 8.23. VBoxManage modifyhd en el manual.
La razón por la que todavía no se ha implementado la disminución del tamaño de disco lógico de un VDI es para evitar la corrupción de datos que podría ocurrir y que tendría máquinas virtuales no arrancables como resultado de ello. Por lo tanto, cuando
--resize
se utiliza la opción, el nuevo tamaño del disco debe ser mayor que el tamaño actual. No se permite que sea menor o igual que el tamaño actual. En otras palabras, un disco de 40 GB solo puede redimensionarse a 41 GB o más que eso, no puede redimensionarse a 40 GB (eso es tonto) o 39 GB o menos.Las versiones anteriores de VirtualBox creaban archivos VDI como variante de formato "fijo". La nueva configuración predeterminada ahora es crear variantes de formato "dinámico" cuando se crean nuevos archivos VDI (imagen de disco virtual). (Supongo que este es el caso desde la introducción de la variante de formato dinámico, cualquiera que sea la versión que se introdujo).
Entonces, el mensaje de error "la operación para este formato aún no está implementada" significa que su archivo VDI usa la variante de formato "fijo". Para solucionar este problema, deberá clonar su archivo VDI con el
clonehd
comando Para ver en qué variante de formato se encuentra su archivo VDI en este momento, puede usar elshowhdinfo
comando.Ejemplo de trabajo
Mostrar información VDI sobre el disco actual.
Comando de entrada:
vboxmanage.exe showhdinfo path\inputfile.vdi
¿Ves dónde dice "valor predeterminado fijo"? Es por eso que escupe el error anterior cuando intenta cambiar su tamaño.
Clone el antiguo archivo VDI a un nuevo archivo VDI.
Comando de entrada:
vboxmanage.exe clonehd path\inputfile.vdi path\outputfile.vdi
Voilà! El archivo antiguo ahora se ha clonado en un archivo nuevo. Dado que la configuración predeterminada en las nuevas versiones de VirtualBox es usar la variante de formato "dinámico", no tiene que definirlo explícitamente. Aunque, si está trabajando con una versión anterior de VirtualBox, es posible que desee establecer la opción en "dinámica" (si está disponible) para garantizar una mejor compatibilidad y / o flexibilidad con futuras versiones de VirtualBox.
Mostrar información VDI sobre el disco clonado.
Comando de entrada:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
¿Ves cómo ahora dice "defecto dinámico"? ¡Que agradable!
(¡En la nota al margen! La razón por la que dice 7806 MB como tamaño físico aquí es porque había usado la
--compact
opción en el archivo VDI original en un intento de imponer la conversión a la variante de formato dinámico. Algo que leí en el foro VirtualBox, supuestamente hubiera funcionado con versiones anteriores, así que pensé que podría intentarlo. No funcionó).Cambiar el tamaño del disco clonado.
Comando de entrada:
vboxmanage.exe modifyhd path\inputfile.vdi --resize 51200
¡Éxito! No hay formato de tonterías no más. Solo recuerde cambiar el tamaño del disco nuevo y clonado, y no el original. Tenga en cuenta que el tamaño se expresa en MB. Creo que puede usar, por ejemplo
51200
, así como50G
(o posiblemente "GB"). También existe la opción--resizebyte
que se puede usar para expresar el tamaño en bytes.Mostrar información VDI sobre el disco clonado redimensionado.
Comando de entrada:
vboxmanage.exe showhdinfo path\inputfile_clone.vdi
¡Eso es! Desde aquí, lo que debe hacer es agregar esta unidad clonada como su nuevo VDI para la VM. Lo haces dentro de VirtualBox. No voy a entrar en eso. Si ha podido leer y comprender esto hasta ahora, entonces probablemente no necesite más orientación. Puede eliminar el antiguo archivo "fijo" o dejarlo como copia de seguridad. Asegúrese de probar el nuevo archivo VDI antes de eliminar el archivo fuente original.
¡Nota! No verá de inmediato el nuevo tamaño del disco clonado. Debe iniciar la VM con él y luego debe usar su herramienta de administración de particiones para expandir su partición para llenar el disco virtual (o crear más particiones). Para Windows, simplemente ejecute
diskmgmt.msc
y podrá expandir la partición allí.Capturas de pantalla
Referencia
fuente
modifymedium
/modifyhd
en el archivo de instantánea en sí.Aquí hay un proceso bastante simple que me funcionó para cambiar el tamaño de un disco de tamaño fijo VirtualBox (v. 4.3.16) a un disco dinámico de 60GB en mi Mac (OS X 10.9.4) con Linux (Ubuntu 14.04) ejecutándose como SO invitado:
En Terminal en la Mac, CD en el directorio con el archivo VDI y escriba lo siguiente:
En la sección de almacenamiento de la aplicación VirtualBox, agregue mydiskClone.vdi como segundo HD, luego inicie la VM normalmente.
En el shell del sistema operativo invitado, escriba:
Reiniciar el invitado. Cuando vuelva a aparecer, vaya al shell nuevamente y escriba:
Apague el sistema operativo invitado.
En la sección de almacenamiento de la aplicación VirtualBox nuevamente, configure mydiskClone.vdi para que sea el disco de arranque. Luego, inicie el SO huésped y verifique el nuevo tamaño del disco utilizando las propiedades de "Computadora" en el explorador de archivos.
fuente
La clonación es en realidad una mejor solución y hay una manera más fácil de hacerlo.
En el menú Archivo, seleccione Virtual Media Manager, luego haga clic en Copiar. La fuente será su disco duro vdi de tamaño fijo original y su destino será algo nuevo de su elección (incluye la opción de uno nuevo).
fuente
Bien, entonces lo hice posible sin clonar .
Tenía un archivo VDI de 100 GB (formato fijo) con Ubuntu. Funcionando bien. Quería liberar algo de espacio en el host reduciendo la VM.
Pasos:
Archivos no deseados eliminados. 45GB gratis. Solo necesito 30GB para ser liberado.
Solo tengo una partición, por lo que no puedo hacer nada desde el invitado Ubuntu. Montó Ubuntu Live en la VM y lo arrancó.
Se usa
gparted
para reducir la partición a 70 GB. Creó una nueva partición en el espacio no utilizado enext4
.El espacio libre en una nueva partición (30GB).
Siguió esta guía: Reduzca el disco duro virtual en Ubuntu como SO huésped y host usando zerofree
Mi nueva partición fue
/dev/sda3
.Compacta el VDI
VBoxManage modifyhd "ubuntu.vdi" compacto
¡Tomó un tiempo, pero funcionó!
fuente
--compact
solo funciona para imágenes asignadas dinámicamente, no para las de tamaño fijo.Un poco tarde para la fiesta aquí, pero agregaré mis 2 centavos. Primero diré que este es un proceso complicado que enloquecerá a la mayoría de los usuarios casuales que intentan resolverlo. Por qué Oracle no incluyó esto en la GUI de VBox es un misterio.
Paso 1: use la línea de comandos de Windows (VBoxmanage) para aumentar el tamaño de la unidad. Un consejo aquí es usar la identificación de la unidad vdi en lugar de intentar sin cesar ingresar la ubicación del archivo y obtener mensajes de error.
Paso 2: Luego debe expandir su partición primaria para hacer uso del nuevo espacio. Descargue la iso de gparted y cree una nueva máquina virtual en VBox usándola como fuente IDE. Luego use la unidad VDI existente como disco sata. No cree una unidad virtual para esta máquina. Arranque la nueva máquina y tendrá la Gui dividida en funcionamiento. Esto puede tomar un par de reinicios para solucionarse.
Una vez que gparted se esté ejecutando, verá las particiones de su unidad vdi que desea cambiar de tamaño. IMPORTANTE: Tendrá que eliminar la partición extendida y el espacio de archivos de intercambio para poder aumentar el tamaño de la partición primaria, así que no asigne todo el nuevo espacio para el PP. Una vez que haga esto, tendrá que designar el espacio restante para la nueva partición extendida y crear un nuevo espacio de archivo de intercambio dentro de eso. Encontré que esto es mucho más fácil que perder el tiempo con la línea de comando.
No es pan comido, pero es factible ... me tomó cerca de medio día investigar la web para resolver esto. Ejecutando win8.1 / Ubuntu en VBox
Willie
fuente
Así es como cambié el tamaño / agrandé / expandí una imagen VDI fija (mi proceso para reducirlos está en otra respuesta):
dd if=/dev/sda of=/dev/sdb status=progress bs=128M
y espere a que se complete. Esto copiará el disco original en el nuevo disco byte por byte, incluido MBR, etc. (Nota: Esto puede tardar un tiempo en completarse dependiendo de los tamaños del disco original, la velocidad del disco en el host, etc.). (Nota: si su máquina virtual invitada tiene> 1 GB de RAM asignada, puede cambiar el parámetro 'bs' para que sea "bs = 256M", lo que podría acelerar un poco la copia).Si bien lo anterior me ha funcionado muy bien varias veces, parece que se necesitan algunos pasos más si se usa LVM. (NOTA: Si se usa LVM, simplemente puede agregar un nuevo disco del tamaño deseado y luego agregar ese disco al grupo de volumen). Con CentOS 6.6 donde se usa LVM, también tuve que aumentar el espacio dentro de LVM. Entonces, después de arrancar el nuevo disco creado anteriormente, hice algo en este sentido (varias partes de esto variarán según los nombres de su configuración):
Obtenga información sobre la configuración de LVM:
Extender el volumen físico (PV) (el grupo de volumen (VG) reflejará automáticamente el mismo aumento):
Extender volumen lógico (LV):
Extender el sistema de archivos:
Antes de:
Mando:
Después:
fuente
Así es como cambié el tamaño / reduje / reduje una imagen VDI fija (mi proceso para expandirla está en otra respuesta en este mismo tema):
Primero, una breve descripción de por qué necesitaba esto (ya que hay muchos escenarios para reducir un VDI, algunos de los cuales pueden no ser factibles con este enfoque): hace años creé un VDI fijo para un invitado de Windows Server y lo dimensioné en 600 GB. No recuerdo por qué elegí este tamaño, pero a partir de hoy solo he consumido 100 GB en ese invitado y quiero recuperar la mayor parte del espacio restante. Entonces, en mi caso, quiero preservar todos los datos en el invitado y simplemente quiero liberar espacio no utilizado en el invitado.
(Los siguientes pasos son principalmente de mi memoria de haber hecho esto en las últimas 2 horas, así que disculpen si me pierdo algo aquí).
Inicie la máquina virtual invitada (debe iniciarse en un entorno en vivo dividido). Desde el interior del entorno separado:
Asumiendo que su disco "original" es / dev / sda y que "nuevo" es / dev / sdb (si no, ajuste el siguiente comando apropiadamente), entonces vamos a copiar cada partición, una a la vez. Para cada partición anotada en el paso anterior, ingrese el siguiente comando en la terminal:
y espera a que se complete. Esto copiará la partición 1 del disco original a la partición 1 en el nuevo disco byte por byte.
Repita el comando para cada partición restante:
Notas:
El último paso que tuve que hacer para mi invitado de Windows fue configurar / arreglar el MBR y / o BCD. (No sé si se requiere algo de esto para un invitado Linux ya que aún no lo he hecho). Si simplemente arranqué desde mi nuevo VDI, obtuve una pantalla de error de Windows Boot Mgr con este contenido (desafortunadamente no lo hice t tome una captura de pantalla antes de solucionar el problema):
Obtenga un ISO de una instalación o reparación de Windows (idealmente una que coincida con la versión de su sistema operativo) y configure la máquina virtual invitada para que se inicie desde allí (nuevamente, Configuración de almacenamiento).
Inicie la máquina virtual invitada y elija iniciar desde el CD / DVD.
Una vez que esté en el símbolo del sistema, ejecute los siguientes comandos (gracias a http://loverofcode.blogspot.com/2013/11/fixed-0xc000000e-boot-error.html por la información):
Este último comando debe ubicar la instalación de Windows y solicitar agregarlo al BCD. Responda 'Y'.
fuente
Proporciono una respuesta extendida a cualquier sistema operativo alojado que se ejecute en cualquier sistema operativo host. Esta respuesta asume que desea aumentar el tamaño (para extender).
Nota: Como lo señaló djule5 (ver el comentario justo después de la pregunta),
modifyhd
ahora se conoce comomodifymedium
(pero sigue siendo compatible con versiones anteriores). Aquí lo usomodifymedium
.1. Salga de su VM en ejecución
Sí, esta respuesta es para un archivo VDI ya utilizado por una VM VirtualBox.
2. Abra una terminal en su host para cambiar el tamaño de la imagen del disco
La línea de comando VBoxManage no quiere cambiar el tamaño de una imagen de disco usando el nombre de archivo VDI.
Por lo tanto, identifique el UUID de su imagen de disco.
Extienda el tamaño de la imagen del disco.
3. Use una herramienta de particionamiento para extender la partición lógica
Ejecute su VM alojada. Luego use una herramienta de partición .
Algunas herramientas para un GNU / Linux alojado:
Si el sistema alojado usa Windows:
4. Verifique el espacio libre de la partición
Es posible que el tamaño de su archivo VDI (en su sistema host) no haya cambiado porque su VM aún no ha utilizado la cantidad adicional de espacio. Que te diviertas.
fuente
Esto funcionaría para mí y debería especificar la cantidad total de la capacidad del disco duro. No es el espacio lo que necesitamos para aumentar ...
fuente