Come ridurre le dimensioni del disco VMware


15

Il mio disco VMware di immagine Ubuntu è cresciuto fino a 5 GB di dimensione fisica del file. È un disco a crescita dinamica con la capacità massima di 8 GB. Ho pulito alcune cose all'interno della distribuzione Linux e ora al suo interno occupa 3 GB. Ovviamente la dimensione del file fisico non si è ridotta automaticamente. Esiste un modo (se possibile gratuito) per ridurre questo disco a ~ 3 GB?

Ho bisogno di questo per adattarsi all'immagine sul DVD.

Risposte:


21

Ci sono tre passaggi:

  1. Deframmenta (non è necessario annullare / rimontare nulla)

    sudo e4defrag /

    Ignora eventuali errori. Alcuni file come collegamenti simbolici e file del dispositivo non possono essere deframmentati.

  2. Azzera tutto lo spazio inutilizzato in modo che VMware sappia che è effettivamente inutilizzato:

    dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile

  3. Esegui l'operazione di riduzione:

    sudo vmware-toolbox-cmd disk shrinkonly


Questa è la risposta corretta per VMWare Workstation. Grazie amico, mi hai aiutato molto!
Clonkex,

Corretta. Funziona bene su VMWare Workstation 14, Centos 7 Guest
odiszapc,

1
fai attenzione se esegui questo con qualsiasi volume esterno montato come S3 - il comando zero fill proverà a creare un wipefile da 256 TB nel tuo bucket S3 ...
paj

Ha funzionato per me per l'host di Windows 10 e l'ospite di Ubuntu 16. All'inizio ho pensato che il passaggio 3 dovesse essere eseguito sull'host, ma mi sbagliavo. Dopo tutti i passaggi eseguo
Alex Che

1
+1, tuttavia penso che usare zerofree per il passaggio 2 sarebbe molto più veloce e molto più pulito: manpages.ubuntu.com/manpages/xenial/man8/zerofree.8.html
Étienne

15

Ho trovato la soluzione: devi compattare il tuo disco rigido:

Macchina virtuale - Impostazioni - Generale - Pulizia macchina virtuale


Wow. Finalmente ho trovato questa risposta. Ma ... perché la compattazione del disco virtuale in realtà non recupera lo spazio libero?
Wizard79,

8
Devi farlo dall'interno del sistema operativo Ubuntu guest (supponendo che tu abbia installato VMware Tools): "vmware-toolbox-cmd disk shrink /" che dovrebbe fare il lavoro.
DH4,

Questo non si applica a ESXi. Per questo, vedi la mia risposta di seguito.
Collin Chaffin,

3

Apri VMware Toolbox nel guest (come root) e riduci il disco. (Documentazione)


Se non si dispone di VMware Tools, è possibile ridurre manualmente il disco in due passaggi. Innanzitutto, cancella lo spazio libero sul disco virtuale utilizzando uno strumento come zerofree . Zerofree è disponibile in Ubuntu , ma poiché richiede che il filesystem del SO guest sia montato in sola lettura, potresti volerlo eseguire su un live CD. Secondo quanto riferito, Parted Magic include zerofree.

Dopo aver azzerato lo spazio libero, apri Impostazioni macchina virtuale e compatta il disco virtuale.


3
L'interfaccia utente di vmware toolbox non esiste più, ma è comunque possibile utilizzare: "vmware-toolbox-cmd disk shrink /" che dovrebbe svolgere il lavoro.
DH4,

3

Uso

sudo vmware-toolbox-cmd disk shrinkonly

dal prompt dei comandi nel tuo guest Ubuntu.

(Testato su Ubuntu 14.04 LTS guest + Windows 10 Host + VMWare Workstation 12.1.1)


1

Ridimensionamento del disco rigido VMWare :

Espandere il disco rigido virtuale dinamico in VMWare è semplice e non richiede più lo strumento vmware-vdiskmanager.exeda riga di comando che si trova di default in C:\Program Files\VMware\VMware Workstation\.

Per ridimensionare utilizzare il comando seguente (Aprire un prompt dei comandi premendo WIN + R e immettere cmd): " C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk"

Procedura :

I seguenti passaggi sono:

  • Scarica qui
  • Installare
  • Aperto
  • Scegli la partizione, fai clic su Ridimensiona / Sposta, trascina la maniglia su tutta la sua larghezza
  • Fai clic su Applica
  • Accetta di riavviare
  • Durante l'avvio, non premere alcun tasto
  • Consentire al modulo di avvio di svolgere il proprio compito
  • Verifica che la dimensione della partizione del tuo sistema Windows sia aumentata.

Per una panoramica visiva dei passaggi e informazioni aggiuntive, vedere qui .


0

Questi passaggi hanno funzionato perfettamente per me:

1) Spazio inutilizzato zero-fill

cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill

2) Riduci disco con toolbox vmware

sudo vmware-toolbox-cmd disk shrink /

Testato su Ubuntu 16.04, VMware Workstation 12.1.0 Player, host Windows 7


0

La riduzione dei dischi è possibile su ESXi.

  1. Trova il file di grandi dimensioni ed eliminali.

    trova / tipo f -size + 50M

  2. Deframmenta (non è necessario disinstallare / rimontare nulla). Ignora eventuali errori. Alcuni file come collegamenti simbolici e file del dispositivo non possono essere deframmentati.

    sudo e4defrag /

  3. Azzera tutto lo spazio inutilizzato in modo che VMware sappia che è effettivamente inutilizzato:

    dd if = / dev / zero of = wipefile bs = 1M; sync; rm wipefile

  4. Eseguire l'operazione di compattazione: se 4 non riesce, passare a 5.

    sudo vmware-toolbox-cmd disk restringente

  5. Riavvia il sistema linux con l'opzione try e modifica la tabella delle partizioni con gparted. Riduci il file system di root ed elimina e sposta la partizione di swap vicino alla partizione di root.

  6. SSH su ESXi ed emettere questo comando:

    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

  7. Dobbiamo modificare il file * .vmdk. Dopo le lettere RW, definisce la dimensione del disco virtuale VMware (VMDK)

    * 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *

  8. Migralo su un altro archivio dati per riflettere le nuove dimensioni.


(1) La domanda non riguarda come ridurre l'utilizzo del file system; dice che l'OP lo ha già fatto. Quindi il tuo findcomando non è veramente rilevante. (2) Cosa fa vmkfstools -K? (3) Modificare manualmente un file? Veramente? (4) Non capisco le tue istruzioni per quale modifica l'utente deve apportare nel file. (5) Cosa stai dicendo sulla migrazione a un altro archivio dati? (0) La maggior parte di ciò che dici è già stato coperto. ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Per favore non rispondere nei commenti; modifica la  tua risposta per renderla più chiara e completa.
Scott,

Beh, sono un ragazzo VMware (penso che chiunque dovrebbe tentare anche questo dovrebbe essere), quindi non solo questa risposta è SOLO quella che si applica anche a ESXi (dal momento che ESXi NON supporta il restringimento degli ospiti Linux tramite vmtools) ma alla fine reso perfetto senso per me. Detto questo, il passaggio 7 non è solo non necessario, è solo errato. Poiché la riduzione non modifica le dimensioni effettive del VOLUME, è sufficiente arrestarsi dopo il passaggio 6. Il passaggio 8 (migrazione dell'archiviazione) viene utilizzato solo quando si desidera ridurre un disco SENZA eseguire vmkfstools che si occupa forzatamente di esso, motivo per cui tale soluzione richiede anche un passaggio 5a-SHUT DOWN guest.
Collin Chaffin,

Vedi la mia risposta sopra. Anche il cmd basato su vmtools elencato nel passaggio 5 è semplicemente errato in quanto non è mai stato supportato (o addirittura funziona) in QUALSIASI scenario basato su host ESXi.
Collin Chaffin,

0

Assottigliamento (riduzione) dei dischi VMDK su guest ESXi / vSphere Linux

Nota: "Restringimento" viene spesso utilizzato in modo intercambiabile per fare riferimento al processo di riduzione delle dimensioni di un file su disco di tipo sottile. VMware usa il termine "restringimento" per indicare la riduzione della dimensione sottostante del disco disponibile per il guest e il "diradamento" in quanto il processo tende maggiormente a ricuperare lo spazio inutilizzato senza alterare la dimensione disponibile sottostante.

Poiché ESXi non supporta la riduzione basata su vmtools su guest Linux, è necessario utilizzare i seguenti passaggi. Vedere il link di riferimento di seguito per ulteriori informazioni.

  1. (se possibile) Arresta tutte le applicazioni e i servizi ad alta intensità di scrittura del disco poiché i passaggi seguenti riempiranno momentaneamente il volume di destinazione

  2. Deframmenta i volumi sul VMDK di destinazione e ignora eventuali errori come collegamenti simbolici / file del dispositivo / ecc. non può essere deframmentato.

    # USE sudo IF NECESSARY IN YOUR CONFIG!
    e4defrag /
    # or e4defrag /mnt/MOUNTVOLUME
  1. Azzera tutto lo spazio inutilizzato:
    dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
  1. Spegni e spegni l'ospite

  2. SSH per l'host ESXi ed emettere questi comandi:

    # Check current vmdk allocation
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Shrink it
    vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk

    # Check again to verify shrinkage
    du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
  1. Accendi l'ospite

fonte

https://kb.vmware.com/s/article/1002019

La cancellazione di file nella maggior parte dei file system non li rimuoverà completamente; verranno semplicemente modificate le tabelle dei file. L'uso di utility di cancellazione sicura dei file freeware è utile, come Eraser o SDelete per azzerare lo spazio per "azzerare" lo spazio libero sul volume, eliminando efficacemente lo spazio libero di dati. È quindi che il disco può essere diluito correttamente. È quindi possibile utilizzare il comando vmkfstools -K (ESXi / ESX 4.1 e versioni successive) per completare il recupero del blocco o utilizzare Storage vMotion per migrare la macchina virtuale in un archivio dati con dimensioni del blocco VMFS diverse.

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.