Zoeken op website

4 tools om EXT2-, EXT3- en EXT4-gezondheid in Linux te beheren


Een bestandssysteem is een gegevensstructuur die helpt bepalen hoe gegevens worden opgeslagen en opgehaald op een computersysteem. Een bestandssysteem kan ook worden beschouwd als een fysieke (of uitgebreide) partitie op een schijf. Als het niet goed wordt onderhouden en regelmatig wordt gecontroleerd, kan het op de lange termijn op zoveel verschillende manieren beschadigd raken.

Er zijn verschillende factoren die ervoor kunnen zorgen dat een bestandssysteem ongezond wordt: systeemcrashes, hardware- of softwarestoringen, stuurprogramma's en programma's met fouten, verkeerd afstemmen, overbelasting met overmatige gegevens en andere kleine problemen.

Elk van deze problemen kan ertoe leiden dat Linux een bestandssysteem niet correct aankoppelt (of ontkoppelt), waardoor een systeemfout ontstaat.

Lees ook: 7 manieren om het bestandssysteemtype in Linux te bepalen (Ext2, Ext3 of Ext4)

Bovendien kan het uitvoeren van uw systeem met een beschadigd bestandssysteem aanleiding geven tot andere runtimefouten in componenten van het besturingssysteem of in gebruikerstoepassingen, die kunnen escaleren tot ernstig gegevensverlies. Om te voorkomen dat u te maken krijgt met corruptie of schade aan het bestandssysteem, moet u de gezondheid ervan in de gaten houden.

In dit artikel bespreken we tools voor het monitoren en onderhouden van de gezondheid van een ext2-, ext3- en ext4-bestandssysteem. Alle hier beschreven tools vereisen rootgebruikersrechten. Gebruik daarom de opdracht sudo om ze uit te voeren.

Hoe u EXT2/EXT3/EXT4 bestandssysteeminformatie kunt bekijken

dumpe2fs is een opdrachtregelprogramma dat wordt gebruikt om ext2/ext3/ext4 bestandssysteeminformatie te dumpen, wat betekent dat het superblok- en blokkeergroepinformatie voor het bestandssysteem op het apparaat weergeeft.

Voordat u dumpe2fs uitvoert, moet u de opdracht df -hT uitvoeren om de apparaatnamen van het bestandssysteem te kennen.

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

Je kunt de vlag -b doorgeven om alle blokken weer te geven die als slecht zijn gereserveerd in het bestandssysteem (geen uitvoer impliceert slechte blokken):

dumpe2fs -b

EXT2/EXT3/EXT4-bestandssystemen controleren op fouten

e2fsck wordt gebruikt om ext2/ext3/ext4 bestandssystemen te onderzoeken op fouten en fsck controles en kan optioneel een Linux bestandssysteem repareren; het is in feite een front-end voor een reeks bestandssysteemcontroles (fsck.fstype bijvoorbeeld fsck.ext3, fsck.sfx enz.) die worden aangeboden onder Linux.

Onthoud dat Linux e2fack/fsck automatisch uitvoert bij het opstarten van het systeem op partities die zijn gelabeld voor het inchecken in het /etc/fstab configuratiebestand. Dit wordt normaal gesproken gedaan nadat een bestandssysteem niet netjes is ontkoppeld.

Let op: voer e2fsck of fsck niet uit op aangekoppelde bestandssystemen, ontkoppel altijd eerst een partitie voordat u kunt starten deze hulpmiddelen erop, zoals hieronder weergegeven.

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

U kunt ook uitgebreide uitvoer inschakelen met de -V-schakelaar en de -t gebruiken om een bestandssysteemtype als volgt op te geven:

sudo fsck -Vt ext4 /dev/sda10

EXT2/EXT3/EXT4 bestandssystemen afstemmen

We hebben vanaf het begin vermeld dat een van de oorzaken van schade aan het bestandssysteem een onjuiste afstemming is. U kunt het hulpprogramma tune2fs gebruiken om de afstembare parameters van ext2/ext3/ext4 bestandssystemen te wijzigen, zoals hieronder wordt uitgelegd.

Om de inhoud van het bestandssysteem-superblok te zien, inclusief de huidige waarden van de parameters, gebruikt u de optie -l zoals weergegeven.

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

Vervolgens kunt u met behulp van de vlag -c het aantal aankoppelingen instellen waarna het bestandssysteem wordt gecontroleerd door e2fsck. Deze opdracht instrueert het systeem om e2fsck uit te voeren tegen /dev/sda10 na elke 4 aankoppeling.

sudo tune2fs -c 4 /dev/sda10

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

U kunt ook de tijd tussen twee bestandssysteemcontroles definiëren met de optie -i. Met de volgende opdracht wordt een interval van 2 dagen ingesteld tussen bestandssysteemcontroles.

sudo tune2fs  -i  2d  /dev/sda10

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

Als u nu deze opdracht hieronder uitvoert, is het controle-interval van het bestandssysteem voor /dev/sda10 nu ingesteld.

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

Om de standaard journaalparameters te wijzigen, gebruikt u de optie -J. Deze optie heeft ook subopties: size=journal-size (stelt de grootte van het dagboek in), device=external-journal (specificeert het apparaat waarop het is opgeslagen) en location=journal-location (definieert de locatie van het tijdschrift).

Houd er rekening mee dat slechts één van de grootte- of apparaatopties kan worden ingesteld voor een bestandssysteem:

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

Last but not least kan het volumelabel van een bestandssysteem worden ingesteld met behulp van de -L optie, zoals hieronder.

sudo tune2fs -L "ROOT" /dev/sda10

Debug EXT2/EXT3/EXT4 bestandssystemen

debugfs is een eenvoudige, interactieve opdrachtregelgebaseerde debugger voor ext2/ext3/ext4-bestandssystemen. Hiermee kunt u de bestandssysteemparameters interactief wijzigen. Om subopdrachten of verzoeken te bekijken, typt u "?".

sudo debugfs /dev/sda10

Standaard moet het bestandssysteem worden geopend in de lees-schrijfmodus. Gebruik de vlag -w om het in de lees-schrijfmodus te openen. Om het in catastrofale modus te openen, gebruik je de -c optie.

Voorbeelduitvoer
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
....

Om de fragmentatie van de vrije ruimte weer te geven, gebruikt u het freefrag-verzoek, zoals zo.

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

U kunt zoveel andere verzoeken verkennen, zoals het maken of verwijderen van bestanden of mappen, het wijzigen van de huidige werkmap en nog veel meer, door eenvoudigweg de gegeven korte beschrijving te lezen. Om debugfs af te sluiten, gebruikt u het q verzoek.

Dat is het voor nu! Hieronder vindt u een verzameling gerelateerde artikelen in verschillende categorieën, die u nuttig zult vinden.

Gebruiksinformatie van het bestandssysteem:

  1. 12 Handige “df”-opdrachten om schijfruimte in Linux te controleren
  2. Pydf een alternatief "df"-commando om het schijfgebruik in verschillende kleuren te controleren
  3. 10 Handige du (Schijfgebruik)-opdrachten om het schijfgebruik van bestanden en mappen te vinden

Controleer de schijf- of partitiestatus:

  1. 3 Handige GUI en terminalgebaseerde Linux-schijfscantools
  2. Hoe slechte sectoren of slechte blokken op de harde schijf in Linux te controleren
  3. Hoe u Linux-systeempartities en -mappen kunt repareren en defragmenteren

Het onderhouden van een gezond bestandssysteem verbetert altijd de algehele prestaties van uw Linux-systeem. Als u vragen of aanvullende gedachten heeft om te delen, gebruikt u het onderstaande opmerkingenformulier.