Ricerca nel sito web

Come riparare e deframmentare partizioni e directory del sistema Linux


Le persone che usano Linux spesso pensano che non richieda la deframmentazione. Questo è un malinteso comune tra gli utenti Linux. In realtà, il sistema operativo Linux supporta la deframmentazione. Lo scopo della deframmentazione è migliorare le operazioni di I/O come consentire il caricamento più rapido dei video locali o l'estrazione degli archivi molto più velocemente.

I filesystem Linux ext2, ext3 ed ext4 non necessitano di molta attenzione, ma con il tempo, dopo aver eseguito molte molte letture/scritture, il filesystem potrebbe richiedere un'ottimizzazione. In caso contrario il disco rigido potrebbe rallentare e compromettere l'intero sistema.

In questo tutorial ti mostrerò alcune tecniche diverse per eseguire la deframmentazione dei file. Prima di iniziare, dovremmo menzionare cosa fanno i filesystem comuni come ext2,3,4 per prevenire la frammentazione. Questi file system includono una tecnica per prevenire l'effetto. Ad esempio, i filesystem riservano gruppi di blocchi liberi sul disco rigido per archiviare completamente i file in crescita.

Purtroppo non sempre il problema si risolve con tale meccanismo. Mentre altri sistemi operativi potrebbero richiedere costosi software aggiuntivi per risolvere tali problemi, Linux dispone di alcuni strumenti facili da installare che possono aiutarti a risolvere tali problemi.

Come verificare che un file system richieda la deframmentazione?

Prima di iniziare vorrei sottolineare che le operazioni seguenti dovrebbero essere eseguite solo su HDD e non su SSD. La deframmentazione dell'unità SSD non farà altro che aumentare il numero di letture/scritture e quindi ridurne la durata. Se invece utilizzi un SSD, dovresti utilizzare la funzione TRIM, che non è trattata in questo tutorial.

testiamo se il sistema richiede effettivamente la deframmentazione. Possiamo verificarlo facilmente con strumenti come e2fsck. Prima di utilizzare questo strumento su una partizione del tuo sistema, ti consigliamo di smontare la partizione con. Questo non è del tutto necessario, ma è il modo sicuro di procedere:

sudo umount <device file>

Nel mio caso ho /dev/sda1 montato su /tmp:

Tieni presente che nel tuo caso la tabella delle partizioni potrebbe essere diversa, quindi assicurati di smontare la partizione giusta. Per smontare quella partizione puoi usare:

sudo umount /dev/sda1

Ora controlliamo se questa partizione richiede la deframmentazione, con e2fsck. Dovrai eseguire il seguente comando:

sudo e2fsck -fn /dev/sda1

Il comando precedente eseguirà un controllo del file system. L'opzione -f forza il controllo, anche se il sistema sembra pulito. L'opzione -n viene utilizzata per aprire il filesystem in sola lettura e presupporre la risposta "no" a tutte le domande che possono apparire.

Questa opzione sostanzialmente consente di utilizzare e2fsck in modo non interattivo. Se tutto è Ok, dovresti vedere un risultato simile a quello mostrato nello screenshot qui sotto:

Ecco un altro esempio che mostra errori su un sistema:

Come riparare il filesystem Linux usando e2fsck

Se compaiono errori, puoi tentare una riparazione del filesystem con e2fsck con l'opzione “-p”. Tieni presente che per eseguire il comando seguente, la partizione dovrà essere smontata:

sudo e2fsck -p <device file>

Le opzioni "-p" tentano la riparazione automatica sul file system per problemi che possono essere risolti in modo sicuro senza l'intervento umano. Se viene scoperto un problema che potrebbe richiedere all'amministratore di sistema di intraprendere ulteriori azioni correttive, e2fsck stamperà una descrizione del problema e uscirà con il codice 4, che significa "Errori del file system lasciati non corretti". A seconda del problema riscontrato, potrebbero essere necessarie azioni diverse.

Se il problema si verifica su una partizione che non può essere smontata, puoi utilizzare un altro strumento chiamato e4defrag. Viene preinstallato su molte distribuzioni Linux, ma se non lo hai sulla tua, puoi installarlo con:

sudo apt-get install e2fsprogs         [On Debian and Derivatives]
yum install e2fsprogs                  [On CentOS based systems]
dnf install e2fsprogs                  [On Fedora 22+ versions] 

Come deframmentare le partizioni Linux

Ora è il momento di deframmentare le partizioni Linux utilizzando il seguente comando.

sudo e4defrag <location>
or
sudo e4defrag <device>

Come deframmentare la directory Linux

Ad esempio, se desideri deframmentare una singola directory o dispositivo, puoi utilizzare:


sudo e4defrag /home/user/directory/
sudo e4defrag /dev/sda5

Come deframmentare tutte le partizioni Linux

Se preferisci deframmentare l'intero sistema, il modo sicuro per farlo è:

sudo e4defrag /

Tieni presente che questo processo potrebbe richiedere del tempo per essere completato.

Conclusione

La deframmentazione è un'operazione che raramente avrai bisogno di eseguire in Linux. È pensato per gli utenti esperti che sanno esattamente cosa stanno facendo e non è consigliato ai neofiti di Linux. Lo scopo dell'intera azione è ottimizzare il filesystem in modo che le nuove operazioni di lettura/scrittura vengano eseguite in modo più efficiente.