Come posso compattare il file VHD con Ubuntu?


9

Uso Windows Server 2008r2 con il ruolo Hyper-V. Il sistema guest è Ubuntu 12.04 LTC. Si trova sul disco rigido virtuale dinamico.

Voglio compattare questo disco rigido virtuale (la dimensione reale è di 50 GB, 360 GB sul disco). Ma non posso farlo, perché il file system Ubuntu non è NTFS. Di cosa ho bisogno (gparted, sdelete, ...) per risolvere questo problema?

Il problema principale è che il filesystem non è NTFS, ma ext4.

La risposta:

1) Scarica systemrescuecd

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

2) Aggiungi questo .iso al sistema operativo di ricerca Ubuntu

3) Avvia questa macchina virtuale

4) Usa zerofree

zerofree /dev/sda1

5) Spegni questa macchina virtuale

6) Utilizzare il gestore Hyper-V (Modifica -> deframmentazione)

Questo disco rigido virtuale era di 360 GB. Ora 70 GB.


1
Se vuoi rispondere alla tua domanda, pubblica una risposta , non una modifica alla domanda stessa.
Massimo,

prendere fstrimin considerazione nel 2019, in particolare per ext4 sotto LVM superuser.com/questions/1491437/…
Alec Istomin

Risposte:


6

Spegni la VM, esegui il backup del disco rigido virtuale ed esegui un'altra macchina virtuale (uso SystemRescueCD poiché è piccola e veloce) che ha a disposizione la partizione ext4, ovvero un HD per SysRescue (ma non montarlo!). Dalla VM SysRescue, eseguire " zerofree " sulla partizione ext4, spegnere quella VM e quindi utilizzare il sito Web di amministrazione per compattare il disco rigido virtuale.


Comincio a farlo (scarica SystemRescueCD, quindi zerofree / dev / sda1), ma non so posso compattare questo
disco rigido


3

Posso confermare: zerofree sta lavorando per compattare i file del disco virtuale

MA: non è necessario utilizzare alcun CD di ripristino o montare il VHDX in un'altra macchina virtuale:

sudo apt-get install zerofree

Avvia in modalità provvisoria, quindi esegui:

zerofree /dev/sda1

Successivamente, dobbiamo avviare l'ottimizzazione per il file del disco virtuale. Sul server che ospita il file VHDX, creare il seguente file 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 ""
        }

E ora esegui il file e goditi lo spazio su disco rilasciato :-)

ShrinkVhdx.ps1 .\hdd1.vhdx

Questo dipende dal filesystem se è XFS che sei sfortunato usando zerofree.
Brad

1

Il processo sembra essere

  • Eseguire il backup del file VHD corrente.
  • Utilizzare Gestione snapshot per eliminare / unire eventuali snapshot.
  • Zero riempie lo spazio su disco inutilizzato

cioè

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

Questo crea un file chiamato oooooooo.oooriempito con 0s. Dovresti ripetere il comando sfill su tutte le partizioni che immagino.

Nota che neanche questo è veloce, ci vorranno ore se non giorni per completarlo.

  • Compatto
  • Profitto

grazie, ma non ho Internet sulla macchina con hyper-v e vhd con linux. Quindi non posso fare "sudo apt-get install secure-delete"
AmShegar


0

Ho provato ad avviare Systemrescuecd in una macchina di seconda generazione. Ma non ha funzionato, quindi ho creato una nuova macchina di prima generazione e vi ho aggiunto il VHDX. systemrescuecd avviato. Non ho fatto alcuna operazione. Rimossa la macchina di prima generazione e reinserire il VHDX nella macchina originale. Quindi Ubuntu non si è avviato affatto. Solo menu Grub.

Vedi il mio post qui: Hyper-V Ubuntu vhdx scsi ide

Quindi sii consapevole di questo e fai il backup (non l'ho fatto questa volta) ...


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.