4 eines per gestionar la salut EXT2, EXT3 i EXT4 a Linux


Un sistema de fitxers és una estructura de dades que ajuda a controlar com s'emmagatzemen i es recuperen les dades en un sistema informàtic. Un sistema de fitxers també es pot considerar com una partició física (o estesa) en un disc. Si no es manté bé i es controla regularment, es pot danyar o malmetre a la llarga, de moltes maneres diferents.

Hi ha diversos factors que poden provocar que un sistema de fitxers es torni insalubre: fallades del sistema, mal funcionament del maquinari o del programari, controladors i programes amb errors, ajustar-lo incorrectament, sobrecarregar-lo amb dades excessives i altres errors menors.

Qualsevol d'aquests problemes pot fer que Linux no munti (o desmunti) un sistema de fitxers amb gràcia, provocant així una fallada del sistema.

A més, l'execució del sistema amb un sistema de fitxers deteriorat pot donar lloc a altres errors d'execució en els components del sistema operatiu o en les aplicacions d'usuari, que podrien augmentar fins a una pèrdua greu de dades. Per evitar patir danys o corrupció del sistema de fitxers, heu de vigilar la seva salut.

En aquest article, tractarem les eines per supervisar i mantenir la salut dels sistemes de fitxers ext2, ext3 i ext4. Totes les eines descrites aquí requereixen privilegis d'usuari root, per tant, utilitzeu l'ordre sudo per executar-les.

Com veure la informació del sistema de fitxers EXT2/EXT3/EXT4

dumpe2fs és una eina de línia d'ordres que s'utilitza per abocar la informació del sistema de fitxers ext2/ext3/ext4, és a dir, mostra la informació del súper bloc i bloqueja la informació del grup per al sistema de fitxers del dispositiu.

Abans d'executar dumpe2fs, assegureu-vos d'executar l'ordre df -hT per conèixer els noms dels dispositius del sistema de fitxers.

$ sudo dumpe2fs /dev/sda10
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

Podeu passar el senyalador -b per mostrar qualsevol bloc reservat com a dolent al sistema de fitxers (cap sortida implica als blocs dolents):

$ dumpe2fs -b

Comprovació d'errors dels sistemes de fitxers EXT2/EXT3/EXT4

e2fsck s'utilitza per examinar els sistemes de fitxers ext2/ext3/ext4 per detectar errors i comprovacions fsck i, opcionalment, pot reparar un sistema de fitxers Linux; és bàsicament un front-end per a una sèrie de verificadors del sistema de fitxers (fsck.fstype, per exemple fsck.ext3, fsck.sfx, etc.) que s'ofereixen a Linux.

Recordeu que Linux executa e2fack/fsck automàticament a l'arrencada del sistema en particions que estan etiquetades per registrar el fitxer de configuració /etc/fstab. Això es fa normalment després que un sistema de fitxers no s'hagi desmuntat netament.

Atenció: no executeu e2fsck o fsck en sistemes de fitxers muntats, desmunteu sempre una partició abans de poder executar-hi aquestes eines, tal com es mostra a continuació.

$ sudo unmount /dev/sda10
$ sudo fsck /dev/sda10

Alternativament, activeu la sortida detallada amb l'interruptor -V i utilitzeu el -t per especificar un tipus de sistema de fitxers com aquest:

$ sudo fsck -Vt ext4 /dev/sda10

Ajust dels sistemes de fitxers EXT2/EXT3/EXT4

Hem esmentat des del principi que una de les causes dels danys al sistema de fitxers és l'ajustament incorrecte. Podeu utilitzar la utilitat tune2fs per canviar els paràmetres ajustables dels sistemes de fitxers ext2/ext3/ext4 tal com s'explica a continuació.

Per veure el contingut del superbloc del sistema de fitxers, inclosos els valors actuals dels paràmetres, utilitzeu l'opció -l tal com es mostra.

$ sudo tune2fs -l /dev/sda10
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

A continuació, utilitzant el senyalador -c, podeu establir el nombre de muntatges després dels quals el sistema de fitxers serà comprovat per e2fsck. Aquesta ordre indica al sistema que executi e2fsck contra /dev/sda10 després de cada 4 muntatges.

$ sudo tune2fs -c 4 /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4

També podeu definir el temps entre dues comprovacions del sistema de fitxers amb l'opció -i. L'ordre següent estableix un interval de 2 dies entre comprovacions del sistema de fitxers.

$ sudo tune2fs  -i  2d  /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds

Ara, si executeu aquesta ordre a continuació, l'interval de comprovació del sistema de fitxers per a /dev/sda10 s'ha establert.

$ sudo tune2fs -l /dev/sda10
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 canviar els paràmetres de registre per defecte, utilitzeu l'opció -J. Aquesta opció també té subopcions: size=journal-size (defineix la mida de la revista), device=external-journal (especifica el dispositiu on s'emmagatzema) i location=journal-location (defineix la ubicació de la revista).

Tingueu en compte que només es pot configurar una de les opcions de mida o de dispositiu per a un sistema de fitxers:

$ sudo tune2fs -J size=4MB /dev/sda10

Finalment, però no menys important, l'etiqueta de volum d'un sistema de fitxers es pot establir mitjançant l'opció -L com a continuació.

$ sudo tune2fs -L "ROOT" /dev/sda10

Depureu els sistemes de fitxers EXT2/EXT3/EXT4

debugfs és un depurador de sistemes de fitxers ext2/ext3/ext4 senzill i interactiu basat en la línia d'ordres. Us permet modificar els paràmetres del sistema de fitxers de manera interactiva. Per veure subordres o sol·licituds, escriviu \?\.

$ sudo debugfs /dev/sda10

Per defecte, el sistema de fitxers s'hauria d'obrir en mode lectura-escriptura, utilitzeu el senyalador -w per obrir-lo en mode lectura-escriptura. Per obrir-lo en mode catastròfic, utilitzeu l'opció -c.

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 mostrar la fragmentació de l'espai lliure, utilitzeu la sol·licitud freefrag, així.

debugfs: freefrag
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:  

Podeu explorar tantes altres sol·licituds, com ara crear o eliminar fitxers o directoris, canviar el directori de treball actual i molt més, simplement llegint la breu descripció proporcionada. Per sortir de debugfs, utilitzeu la sol·licitud q.

Això és tot per ara! Tenim una col·lecció d'articles relacionats sota diferents categories a continuació, que us resultaran útils.

  1. 12 ordres \df útils per comprovar l'espai en disc a Linux
  2. Pydf, una ordre alternativa \df per comprovar l'ús del disc en diferents colors
  3. 10 ordres útils du (ús del disc) per trobar l'ús del disc de fitxers i directoris

  1. 3 GUI útils i eines d'escaneig de disc de Linux basades en terminals
  2. Com comprovar sectors defectuosos o blocs defectuosos al disc dur a Linux
  3. Com reparar i desfragmentar les particions i els directoris del sistema Linux

Mantenir un sistema de fitxers saludable sempre millora el rendiment general del vostre sistema Linux. Si teniu cap pregunta o pensament addicional per compartir, feu servir el formulari de comentaris a continuació.