¿El relleno cero aumentará el tamaño de la imagen de disco dinámico de virtualbox

10

He estado utilizando principalmente imágenes de disco de tamaño fijo para Oracle virtualbox, pero estoy considerando cambiar a imágenes de disco dinámicas, ya que escuché que las imágenes dinámicas son similares en rendimiento a las imágenes de tamaño fijo, excepto cuando se expanden.

Sin embargo, una operación que hago mucho es rellenar con cero una imagen de disco de tamaño fijo antes de hacer una copia de seguridad con un programa zip (para reducir el tamaño del archivo zip). Mi pregunta es, cuando llene cero un disco dinámico, ¿aumentará el tamaño del disco a su valor máximo declarado? (Para mi caso específico, estoy usando sdelete -zparticiones de Windows).

Una pregunta adicional es, ¿hay alguna forma de llenar particiones con cero sin aumentar el tamaño del disco?

Gracias.

- EDITAR -

Para aclarar, la razón por la que pregunto es que quiero mantener al mínimo el tamaño de las imágenes comprimidas de virtualbox. El relleno a cero de una imagen de tamaño fijo hace el trabajo ya que la porción rellena a cero no contribuye casi nada a la imagen comprimida. Sin embargo, si cambio al disco dinámico, el relleno cero parece anular el propósito de usar imágenes de tamaño dinámico.

La segunda parte de mi pregunta es realmente preguntar si hay una mejor alternativa que el relleno cero que puede eliminar los sectores no utilizados sin expandir el tamaño del disco.

tinlyx
fuente
1
sí, un disco de asignación dinámica asignada completamente será su tamaño completamente asignado. No estoy muy seguro de cuál es la confusión aquí, ni puedo concebir una razón para hacer lo que usted describe, pero no, no puede guardar un montón de datos (aunque todos los 0) en un archivo y no esperar su tamaño cambiar.
Frank Thomas
@FrankThomas Por favor, vea mi actualización para conocer el motivo para hacer el relleno cero.
tinlyx
1
@tinlyx Acabo de responder y parece que también respondí tu edición en mi respuesta, en realidad puedes compactar las imágenes de disco dinámicas usando las herramientas de virtualbox. Por lo tanto, un zerofill seguido de un compacto sería una imagen perfecta para fines de archivo.
Mokubai

Respuestas:

12

Lo acabo de probar (usando sdelete -zen una máquina virtual) y llenar el disco con cero no aumentará apreciablemente el tamaño de la imagen del disco dinámico. Virtualbox es lo suficientemente inteligente como para reconocer que cuando escribe ceros en un bloque ya vacío, el disco no necesita volver a escribir el bloque.

Pero incluso si lo hiciera, entonces eso no es tan malo, porque llenar el disco con cero también lo hará es permitirle compactarlo nuevamente usando las Herramientas de Virtualbox en su host: ¿Cómo compactar el tamaño del archivo VDI de VirtualBox?

Cuando llené cero mi VM, aumentó el tamaño de la imagen de ~ 14.5GB a ~ 15.5GB pero no asignó completamente todo el espacio en disco, que habría sido aproximadamente 48GB.

De hecho, llenar el disco con cero (vía sdelete -z) le permitirá liberar adecuadamente cualquier espacio que se haya escrito pero que desde entonces haya sido liberado por su sistema operativo VM, luego puede ejecutar el comando VBoxManage.exe modifyhd c:\path\to\thedisk.vdi --compacten su máquina host para compactar adecuadamente la imagen del disco dinámico volver a bajar a su tamaño mínimo.

Mokubai
fuente
Gracias. De hecho, sdelete -zno aumenta mucho el tamaño del disco dinámico.
tinlyx