Yo uso Windows Server 2008r2 con el rol Hyper-V. El sistema invitado es Ubuntu 12.04 LTC. Está situado en el disco duro virtual dinámico.
Quiero compactar este VHD (el tamaño real es de 50 GB, 360 GB en el disco). Pero no puedo hacer esto, porque el sistema de archivos de Ubuntu no es NTFS. ¿Qué necesito (gparted, sdelete, ...) para resolver este problema?
El principal problema es que el sistema de archivos no es NTFS, sino ext4.
La respuesta:
1) Descargar systemrescuecd
2) Agregue este .iso a la búsqueda del sistema operativo Ubuntu
3) Inicie esta máquina virtual
4) Use zerofree
zerofree /dev/sda1
5) Apague esta máquina virtual
6) Use el administrador de Hyper-V (Editar -> desfragmentación)
Este disco duro era de 360 Gb. Ahora 70 GB.
fstrim
en 2019, especialmente para ext4 bajo LVM superuser.com/questions/1491437/…Respuestas:
Apague su VM, haga una copia de seguridad del VHD y ejecute otra máquina virtual (uso SystemRescueCD porque es pequeña y rápida) que tiene la partición ext4 disponible, es decir, un HD para SysRescue (¡pero no lo monte!). Desde la VM SysRescue, ejecute ' zerofree ' en la partición ext4, apague esa VM y luego use su sitio web de administración para compactar el VHD.
fuente
Puedo confirmar: zerofree está trabajando para compactar archivos de disco virtual
PERO: no necesita usar ningún CD de rescate ni montar el VHDX en otra máquina virtual:
Arranque en modo seguro, luego ejecute:
Después de eso, tenemos que comenzar la optimización para el archivo del disco virtual. En el servidor que aloja el archivo VHDX, cree el siguiente archivo ShrinkVhdx.ps1:
Y ahora ejecute el archivo y disfrute del espacio en disco liberado :-)
fuente
El proceso parece ser
verbigracia
Esto crea un archivo llamado
oooooooo.ooo
lleno de0
s. Supongo que debe repetir el comando sfill en todas las particiones.Tenga en cuenta que esto tampoco es rápido, tardará horas, si no días, en completarse.
fuente
1) Descargar systemrescuecd
http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/3.8.1/systemrescuecd-x86-3.8.1.iso/download
2) Agregue este .iso a la búsqueda del sistema operativo Ubuntu
3) Inicie esta máquina virtual
4) Use zerofree
zerofree / dev / sda1
5) Apague esta máquina virtual
6) Use el administrador de Hyper-V (Editar -> desfragmentación)
fuente
Intenté iniciar Systemrescuecd en una máquina de segunda generación. Pero no funcionó, así que creé una nueva máquina de primera generación y le agregué el VHDX. systemrescuecd comenzó. No hice ninguna operación. Se eliminó la máquina de primera generación y volvió a colocar el VHDX en la máquina original. Entonces Ubuntu no se inició en absoluto. Sólo Grub-menu.
Vea mi publicación aquí: Hyper-V Ubuntu vhdx scsi ide
Así que tenga en cuenta esto, y haga una copia de seguridad (no lo hice esta vez) ...
fuente
Puede hacerlo comprobando algunos parámetros en los siguientes archivos: / sys / block // queue / discard_granularity / sys / block // queue / discard_max_bytes si tiene un 0 probablemente no sea compatible con su configuración de hardware + software.
Aquí hay un tutorial completo para hacerlo en: http://www.1337admin.org/uncategorized/compacting-virtual-disks-on-generation-2-linux-hyper-v-2012-r2-vms/
fuente