Come rendere scarso il filesystem ext4?


10

Sto usando Linux come SO guest in VirtualBox. Ho eliminato un numero enorme di file dal suo filesystem. Ora voglio ridurre il file di immagine del file system (vdi). La riduzione funziona comprimendo l'immagine del filesystem ovunque abbia un valore "null" sul disco.

Sembra che un'applicazione chiamata zerofree sia in grado di scrivere "null" nello spazio libero del filesystem in modo che diventi scarso. Ma le istruzioni dicono che funziona solo su ext2 / ext3. Ho ext4 sul mio SO guest.

  1. Perché non funziona su ext 4 (la ragione citata è "extents", ma qualcuno può farci più luce)?

  2. Funzionerà, se monto ext 4 come ext 3 e poi lo rimontaggio come ext 4 ?

  3. Altri strumenti che possono fare cose simili come zerofree su ext?


2
Secondo il link lì, zerofree funziona su ext4.
psusi,

Non sono sicuro che funzioni al tuo tempo oppure no, ma la manpage ha detto che supporta ext4
phuclv

Risposte:


23

La pagina a cui fai riferimento ( http://intgat.tigress.co.uk/rmy/uml/index.html ) indica:

The utility also works on ext3 or ext4 filesystems.

Quindi non sono sicuro di dove stai arrivando che non funziona sui filesystem ext4.

Si noti che l' utilità zerofree è diversa dalla patch del kernel zerofree menzionata nella stessa pagina (che in effetti non sembra avere una versione per ext4).

Aggiornamento: almeno nel caso di VirtualBox, non penso che tu abbia bisogno di questa utility. Nel mio test, su un'installazione di Ubuntu 10.04 su ext4, puoi semplicemente azzerare il filesystem in questo modo:

$ dd if=/dev/zero of=test.file

... aspetta che il disco virtuale si riempia, quindi

$ rm test.file

e spegnere la VM. Quindi sul tuo host VirtualBox fai:

$ VBoxManage modifyhd --compact yourImage.vdi

e recupererai tutto lo spazio inutilizzato.


Grazie per la tua risposta. La manpage di zerofree non specificava ext4, ecco perché avevo bisogno di un'alternativa.
rajaganesh87,

1
L'alternativa proposta (dd if = / dev / zero of = test.file) ha funzionato per me! Molto più semplice di altre soluzioni.
Pisu,

3
Questa dovrebbe essere la risposta accettata. Funziona magnificamente.
Chris Pratt,

Fai un syncdopo il dd.
ignis,

ddl'idea ha funzionato anche per me. Ben fatto!
Stefan,

1

È possibile utilizzare e2fsprogs, esiste una versione utilizzabile con ext4.

Renditi superutente:

# su

Smonta l'unità:

# umount /dev/sda1

Rimuovi il diario dell'unità:

# tune2fs -O ^has_journal /dev/sda1

E quindi ridimensiona il tuo file system:

# resize2fs /dev/sda1 30G


Grazie per la tua risposta, ma non voglio ridurre la partizione ma l'immagine del filesystem (vdi) del guest.
rajaganesh87,
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.