Pregunta ¿Cómo puedo compactar el archivo VHD con Ubuntu?


Yo uso el servidor de Windows 2008r2 con 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

http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/3.8.1/systemrescuecd-x86-3.8.1.iso/download

2) Añadir este .iso a la búsqueda del sistema operativo Ubuntu.

3) Iniciar esta máquina virtual

4) Utilice zerofree

zerofree /dev/sda1

5) apagar esta máquina virtual

6) Usar el administrador de Hyper-V (Edición -> desfragmentación)

Este vhd fue de 360 ​​Gb. Ahora 70 GB.


7
2017-11-06 10:59


origen


Si desea responder a su propia pregunta, por favor publique un responder, no una edición a la pregunta en sí. - Massimo


Respuestas:


Apague su VM, haga una copia de seguridad del VHD y ejecute otra máquina virtual (yo uso SystemRescueCD ya que es pequeño y rápido) que tiene la partición ext4 disponible, es decir, un HD para SysRescue (¡pero no lo monte!). Desde la máquina virtual SysRescue, ejecute 'zerofree'en la partición ext4, apague esa VM y luego use su sitio web de administración para compactar el VHD.


5
2017-11-08 10:15



Comienzo a hacerlo (descargue SystemRescueCD, luego zerofree / dev / sda1), pero no sé si puedo compactar este VHD en Windows (después de todo, el espacio libre será nulo) - AmShegar
Prueba el Administrador de Hyper-V. - rickhg12hs


Puedo confirmar: zerofree está trabajando para compactar archivos de disco virtual

PERO: no necesita usar ningún CD de rescate o montar el VHDX en otra máquina virtual:

sudo apt-get install zerofree

Arranque en modo seguro, luego ejecute:

zerofree /dev/sda1

Después de eso, tenemos que iniciar la optimización para el archivo de disco virtual. En el servidor que aloja el archivo VHDX, cree el siguiente archivo ShrinkVhdx.ps1:

[CmdletBinding()]
Param(
    $VHDFiles
)

    #Find the disks
    foreach($VHD in $VHDFiles){
        Write-Verbose "Working on $VHD, please wait"
        Write-Verbose "Current size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
        Mount-VHD -Path $VHD -NoDriveLetter -ReadOnly
        Optimize-VHD -Path $VHD -Mode Full
        Write-Verbose "Optimize size $([math]::truncate($(Get-VHD -Path $VHD).FileSize/ 1GB)) GB"
        Dismount-VHD -Path $VHD
        Write-Verbose ""
        }

Y ahora ejecute el archivo y disfrute del espacio de disco liberado :-)

ShrinkVhdx.ps1 .\hdd1.vhdx

2
2018-05-13 07:50



Esto depende del sistema de archivos si es XFS que está fuera de suerte con zerofree. - Brad


El proceso parece ser

  • Copia de seguridad de su archivo VHD actual.
  • Utilice el Administrador de instantáneas para eliminar / fusionar cualquier instantánea.
  • Cero llenar el espacio en disco no utilizado

verbigracia

sudo apt-get install secure-delete 
sudo sfill -llz .

Esto crea un archivo llamado oooooooo.ooo lleno 0s. Debería repetir el comando sfill en todas las particiones que supongo.

Tenga en cuenta que esto tampoco es rápido, tomará horas o días en completarse.

  • Compacto
  • Lucro

1
2017-11-08 08:23



gracias, pero no tengo internet en la máquina con hyper-v y vhd con linux. Así que no puedo hacer "sudo apt-get install secure-delete" - AmShegar


1) Descargar systemrescuecd

http://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/3.8.1/systemrescuecd-x86-3.8.1.iso/download

2) Añadir este .iso a la búsqueda del sistema operativo Ubuntu.

3) Iniciar esta máquina virtual

4) Utilice zerofree

zerofree / dev / sda1

5) apagar esta máquina virtual

6) Usar el administrador de Hyper-V (Edición -> desfragmentación)


1
2017-11-21 13:08



El administrador de Hyper-V no tiene un (Edición -> desfragmentación) - Brad


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 1ª generación y se volvió a colocar el VHDX en la máquina original. Entonces Ubuntu no se inició en absoluto. Sólo Grub-menu.

Vea mi post aquí: Hyper-V Ubuntu vhdx scsi ide

Así que se consciente de esto, y toma copia de seguridad (no lo hice esta vez) ...


0
2018-04-27 09:01





Puedes hacerlo revisando algunos parámetros en los siguientes archivos: / sys / block // queue / discard_granularity / sys / block // queue / discard_max_bytes Si cualquiera de los dos tiene un 0, probablemente no sea compatible con su configuración de software + hardware.

Aquí hay un tutorial completo sobre cómo hacer esto en: http://www.1337admin.org/uncategorized/compacting-virtual-disks-on-generation-2-linux-hyper-v-2012-r2-vms/


0
2018-06-18 00:28