Home > Dischi, File System, Linux, Pacchetti, Partizioni, Sistema, Ubuntu > Deframmentare una partizione ext2

Deframmentare una partizione ext2

10 gennaio 2009

Deframmentazione del file system in corso

Il file system ext3, successore di ext2 possiede una serie di accorgimenti per ridurre la frammentazione al minimo, generalmente sotto il 2 o 3%. Questo sistema funziona efficacemente fintanto che v’è almeno il 10% di spazio libero nella partizione.

ATTENZIONE!

Le informazioni qui riportate possono risultare altamente dannose, si raccomanda un backup totale del sistema prima di operare, in altre parole se fate casini non ve la prendete con me.

Può quindi accadere che il tasso di frammentazione si alzi e ciò degradi le prestazioni del disco. In casi del genere la migliore soluzione è sempre liberare un po’ di spazio sul disco, spostare i files altrove, ad esempio su un altro disco, e poi rimetterli al loro posto. Ciò farà si che i files vengano riscritti in maniera ordinata sul file system eliminando il problema della frammentazione.

Per chi invece fosse interessato alla reale deframmentazione dei dati senza copie o spostamenti esiste uno strumento per partizioni ext2 (attenzione, non ext3) che riorganizza i dati sul disco.

Se si utilizza una partizione ext3 si può comunque retrocedere la partizione a ext2, deframmentarla e quindi riconvertirla a ext3. Tuttavia resti sempre valido il suggerimento iniziale: farsi una copia di tutti i dati interessati per evitare potenziali disastri dovuti a errori del programma, errori sul disco, cali di tensione o guasti di altro genere.

Il pacchetto defrag si trova nei repository di Ubuntu Gutsy (7.10) ma non nei successivi. E’ possibile scaricarlo da qui o alternativamente da qui, per installarlo bastano un paio di click con gdebi oppure con:

sudo dpkg -i defrag_0.73pjm1-8ubuntu1_i386.deb

Una volta installato è necessario smontare la partizione da deframmentare con:

sudo umount /dev/partizione

Assicurarsi che la stessa partizione non sia ancora montata eseguendo semplicemente mount. Fatto ciò verificare che il file system della partizione sia effettivamente ext2, questo strumento funziona soltanto con partizioni ext2.

Effettuare il controllo del disco in sola lettura con:

sudo fsck -fn /dev/partizione

Ad esempio:

sudo fsck -fn /dev/sda3
fsck 1.40.8 (13-Mar-2008 )
e2fsck 1.40.8 (13-Mar-2008 )
Passo 1: Controllo di inode, blocco(i) e dimensioni
Passo 2: Analisi della struttura delle directory
Passo 3: Controllo della connettività di directory
Pass 4: Controllo del numero dei riferimenti
Pass 5: Checking gruppo summary information
Storage: 4004/3908128 files (24.5% non-contiguous),
3881748/7803573 blocks

Se venisse indicato Attenzione! /dev/sda3 è montato. allora non si è smontata correttamente la partizione, interrompere l’operazione e ricominciare dall’inizio. Inoltre se venisse riportato qualche errore non procedere con la frammentazione fino a che non vengano prima risolti tutti i problemi segnalati da fsck.

L’ultima riga del risultato di fsck riporta il tasso di frammentazione (24.5% non-contiguous), finché si tratta di alcuni punti percentuali non è necessario preoccuparsene.

Prima di procedere verificare quanto segue:

  1. Che si tratti di una partizione formattata in ext2
  2. Che la partizione sia smontata
  3. Che non vi siano errori su disco
  4. Che sia realmente necessario deframmentare
  5. Di aver effettuato un backup dei dati

Effettuati tutti i controlli precedenti è possibile avviare la deframmentazione, eseguendo in un terminale:

sudo e2defrag /dev/partizione

Sarà anche possibile eseguirlo in sola lettura, senza reale modifica al disco, aggiungendo il parametro -r prima della partizione.

Deframmentazione completata

Al termine dell’operazione saranno mostrate alcune statistiche sulle operazioni eseguite. Basterà premere un tasto per uscire dal programma.

Completata la deframmentazione si raccomanda nuovamente il controllo del disco con fsck -f /dev/partizione per assicurarsi che l’operazione non abbia generato problemi inaspettati e per osservare il nuovo tasso di frammentazione.

Se si era convertita una partizione ext3 a ext2, dopo la deframmentazione sarà possibile riconvertirla in ext3.

  1. Scugnizzo
    09 aprile 2010 alle 21:54

    Ciao Muflo,
    dando un’occhiata a questo tuo articolo mi viene da fare una domanda (poi dimmi tu se è il caso di farla altrove).
    Ext3 implementa delle logiche per cui la frammentazione non sale mai (o quasi) oltre il 3%.
    Immagino che lo stesso discorso valga per EXT4.
    Ma volendo sapere che percentuale d frammentazione è presente su una partizione come si fa?

    • 09 aprile 2010 alle 22:07

      la frammentazione puo` salire – anche di molto – per file system pieni oppure per programmi che scrivono in maniera frammentata (p2p o torrent).

      per controllare e` possibile usare filefrag sui singoli files oppure sulla partizione smontata eseguire sudo fsck -f /dev/partizione

      • Scugnizzo
        09 aprile 2010 alle 22:12

        Uà…il man di fsck non riporta l’opzione -f.😦
        Ad ogni modo grazie…prezioso come sempre.

      • 09 aprile 2010 alle 22:14

        sta nella man page di e2fsck, l’fsck per partizioni ext

  2. Steno
    09 marzo 2012 alle 8:53

    Per chi vuole un repository (provato con Lucid):

    sudo add-apt-repository ppa:nilarimogard/webupd8
    sudo apt-get update

    e poi basta un semplice:

    sudo apt-get install defrag

    PS: Se il comando “add-apt-repository” risulta sconosciuto installatelo con le python properties:

    sudo apt-get install python-software-properties

  1. No trackbacks yet.
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: