4 strumenti per gestire l'integrità di EXT2, EXT3 ed EXT4 in Linux
Un filesystem è una struttura di dati che aiuta a controllare il modo in cui i dati vengono archiviati e recuperati su un sistema informatico. Un filesystem può anche essere considerato come una partizione fisica (o estesa) su un disco. Se non ben mantenuto e monitorato regolarmente, a lungo andare può danneggiarsi o corrompersi in tanti modi diversi.
Ci sono diversi fattori che possono rendere malsano un filesystem: arresti anomali del sistema, malfunzionamenti hardware o software, driver e programmi difettosi, ottimizzazione errata, sovraccarico di dati eccessivi e altri piccoli problemi.
Uno qualsiasi di questi problemi può far sì che Linux non monti (o smonti) correttamente un filesystem, provocando così un errore del sistema.
Leggi anche: 7 modi per determinare il tipo di file system in Linux (Ext2, Ext3 o Ext4)
Inoltre, l'esecuzione del sistema con un file system compromesso può causare altri errori di runtime nei componenti del sistema operativo o nelle applicazioni utente, che potrebbero degenerare in gravi perdite di dati. Per evitare di subire corruzione o danni al filesystem, è necessario tenere d'occhio la sua salute.
In questo articolo tratteremo gli strumenti per monitorare e mantenere lo stato di salute dei filesystem ext2, ext3 ed ext4. Tutti gli strumenti qui descritti richiedono i privilegi di utente root, quindi utilizza il comando sudo per eseguirli.
Come visualizzare le informazioni sul filesystem EXT2/EXT3/EXT4
dumpe2fs è uno strumento da riga di comando utilizzato per eseguire il dump delle informazioni sul file system ext2/ext3/ext4, ovvero visualizza le informazioni sui super blocchi e sui gruppi di blocchi per il file system sul dispositivo.
Prima di eseguire dumpe2fs, assicurati di eseguire il comando df -hT per conoscere i nomi dei dispositivi del file system.
sudo dumpe2fs /dev/sda10
Uscita del campione
dumpe2fs 1.42.13 (17-May-2015)
Filesystem volume name:
Last mounted on: /
Filesystem UUID: bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 21544960
Block count: 86154752
Reserved block count: 4307737
Free blocks: 22387732
Free inodes: 21026406
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1003
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Sun Jul 31 16:19:36 2016
Last mount time: Mon Nov 6 10:25:28 2017
Last write time: Mon Nov 6 10:25:19 2017
Mount count: 432
Maximum mount count: -1
Last checked: Sun Jul 31 16:19:36 2016
Check interval: 0 ()
Lifetime writes: 2834 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 6947324
Default directory hash: half_md4
Directory Hash Seed: 9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup: inode blocks
Journal features: journal_incompat_revoke
Journal size: 128M
Journal length: 32768
Journal sequence: 0x00580f0c
Journal start: 12055
Puoi passare il flag -b
per visualizzare tutti i blocchi riservati come danneggiati nel filesystem (nessun output implica blocchi danneggiati):
dumpe2fs -b
Controllo degli errori nei file system EXT2/EXT3/EXT4
e2fsck viene utilizzato per esaminare i filesystem ext2/ext3/ext4 alla ricerca di errori e controlli fsck e può facoltativamente riparare un filesystem Linux; è fondamentalmente un front-end per una serie di controlli del filesystem (fsck.fstype ad esempio fsck.ext3, fsck.sfx ecc.) offerti sotto Linux.
Ricorda che Linux esegue e2fack/fsck automaticamente all'avvio del sistema su partizioni etichettate per il check-in nel file di configurazione /etc/fstab. Questo viene normalmente fatto dopo che un filesystem non è stato smontato in modo pulito.
Attenzione: non eseguire e2fsck o fsck su filesystem montati, smonta sempre una partizione prima di poterla eseguire questi strumenti su di esso, come mostrato di seguito.
sudo unmount /dev/sda10
sudo fsck /dev/sda10
In alternativa, abilita l'output dettagliato con l'opzione -V
e usa -t
per specificare un tipo di filesystem come questo:
sudo fsck -Vt ext4 /dev/sda10
Sintonizzazione dei file system EXT2/EXT3/EXT4
Abbiamo accennato fin dall'inizio che una delle cause del danneggiamento del filesystem è un'errata ottimizzazione. Puoi utilizzare l'utility tune2fs per modificare i parametri sintonizzabili dei filesystem ext2/ext3/ext4 come spiegato di seguito.
Per vedere il contenuto del superblocco del filesystem, inclusi i valori correnti dei parametri, usa l'opzione -l
come mostrato.
sudo tune2fs -l /dev/sda10
Uscita del campione
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:
Last mounted on: /
Filesystem UUID: bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 21544960
Block count: 86154752
Reserved block count: 4307737
Free blocks: 22387732
Free inodes: 21026406
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1003
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Sun Jul 31 16:19:36 2016
Last mount time: Mon Nov 6 10:25:28 2017
Last write time: Mon Nov 6 10:25:19 2017
Mount count: 432
Maximum mount count: -1
Last checked: Sun Jul 31 16:19:36 2016
Check interval: 0 ()
Lifetime writes: 2834 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 6947324
Default directory hash: half_md4
Directory Hash Seed: 9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup: inode blocks
Successivamente, utilizzando il flag -c
, puoi impostare il numero di montaggi dopo i quali il filesystem verrà controllato da e2fsck. Questo comando indica al sistema di eseguire e2fsck contro /dev/sda10
dopo ogni 4 montaggio.
sudo tune2fs -c 4 /dev/sda10
tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4
Puoi anche definire il tempo tra due controlli del filesystem con l'opzione -i
. Il seguente comando imposta un intervallo di 2 giorni tra i controlli del filesystem.
sudo tune2fs -i 2d /dev/sda10
tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds
Ora se esegui questo comando di seguito, l'intervallo di controllo del filesystem per /dev/sda10
è ora impostato.
sudo tune2fs -l /dev/sda10
Uscita del campione
Filesystem created: Sun Jul 31 16:19:36 2016
Last mount time: Mon Nov 6 10:25:28 2017
Last write time: Mon Nov 6 13:49:50 2017
Mount count: 432
Maximum mount count: 4
Last checked: Sun Jul 31 16:19:36 2016
Check interval: 172800 (2 days)
Next check after: Tue Aug 2 16:19:36 2016
Lifetime writes: 2834 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 6947324
Default directory hash: half_md4
Directory Hash Seed: 9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup: inode blocks
Per modificare i parametri predefiniti del journaling, utilizza l'opzione -J
. Questa opzione ha anche opzioni secondarie: size=journal-size (imposta la dimensione del journal), device=external-journal (specifica il dispositivo su cui è archiviato) e location=journal-location (definisce la posizione del journal).
Tieni presente che solo una delle opzioni relative alla dimensione o al dispositivo può essere impostata per un filesystem:
sudo tune2fs -J size=4MB /dev/sda10
Ultimo ma non meno importante, l'etichetta del volume di un filesystem può essere impostata utilizzando l'opzione -L
come di seguito.
sudo tune2fs -L "ROOT" /dev/sda10
Eseguire il debug dei file system EXT2/EXT3/EXT4
debugfs è un debugger di filesystem ext2/ext3/ext4 semplice e interattivo basato sulla riga di comando. Ti consente di modificare i parametri del filesystem in modo interattivo. Per visualizzare sottocomandi o richieste, digitare "?"
.
sudo debugfs /dev/sda10
Per impostazione predefinita, il filesystem dovrebbe essere aperto in modalità lettura-scrittura, utilizzare il flag -w
per aprirlo in modalità lettura-scrittura. Per aprirlo in modalità catastrofica, usa l'opzione -c
.
Uscita del campione
debugfs 1.42.13 (17-May-2015)
debugfs: ?
Available debugfs requests:
show_debugfs_params, params
Show debugfs parameters
open_filesys, open Open a filesystem
close_filesys, close Close the filesystem
freefrag, e2freefrag Report free space fragmentation
feature, features Set/print superblock features
dirty_filesys, dirty Mark the filesystem as dirty
init_filesys Initialize a filesystem (DESTROYS DATA)
show_super_stats, stats Show superblock statistics
ncheck Do inode->name translation
icheck Do block->inode translation
change_root_directory, chroot
....
Per mostrare la frammentazione dello spazio libero, utilizza la richiesta freefrag, in questo modo.
debugfs: freefrag
Uscita del campione
Device: /dev/sda10
Blocksize: 4096 bytes
Total blocks: 86154752
Free blocks: 22387732 (26.0%)
Min. free extent: 4 KB
Max. free extent: 2064256 KB
Avg. free extent: 2664 KB
Num. free extent: 33625
HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range : Free extents Free Blocks Percent
4K... 8K- : 4883 4883 0.02%
8K... 16K- : 4029 9357 0.04%
16K... 32K- : 3172 15824 0.07%
32K... 64K- : 2523 27916 0.12%
64K... 128K- : 2041 45142 0.20%
128K... 256K- : 2088 95442 0.43%
256K... 512K- : 2462 218526 0.98%
512K... 1024K- : 3175 571055 2.55%
1M... 2M- : 4551 1609188 7.19%
2M... 4M- : 2870 1942177 8.68%
4M... 8M- : 1065 1448374 6.47%
8M... 16M- : 364 891633 3.98%
16M... 32M- : 194 984448 4.40%
32M... 64M- : 86 873181 3.90%
64M... 128M- : 77 1733629 7.74%
128M... 256M- : 11 490445 2.19%
256M... 512M- : 10 889448 3.97%
512M... 1024M- : 2 343904 1.54%
1G... 2G- : 22 10217801 45.64%
debugfs:
Puoi esplorare tante altre richieste come la creazione o la rimozione di file o directory, la modifica della directory di lavoro corrente e molto altro, semplicemente leggendo la breve descrizione fornita. Per uscire da debugfs, usa la richiesta q
.
È tutto per ora! Di seguito abbiamo una raccolta di articoli correlati in diverse categorie, che troverai utili.
Informazioni sull'utilizzo del file system:
- 12 utili comandi "df" per controllare lo spazio su disco in Linux
- Pydf un comando alternativo "df" per verificare l'utilizzo del disco in diversi colori
- 10 utili comandi du (Utilizzo del disco) per trovare l'utilizzo del disco di file e directory
Controlla l'integrità del disco o della partizione:
- 3 Utili strumenti di scansione del disco Linux basati su GUI e terminale
- Come controllare settori o blocchi danneggiati sul disco rigido in Linux
- Come riparare e deframmentare partizioni e directory del sistema Linux
Mantenere un filesystem sano migliora sempre le prestazioni generali del tuo sistema Linux. Se hai domande o ulteriori pensieri da condividere utilizza il modulo di commento qui sotto.