Vyhledávání na webu

4 Nástroje pro správu EXT2, EXT3 a EXT4 Health v Linuxu


Souborový systém je datová struktura, která pomáhá řídit, jak se data ukládají a načítají v počítačovém systému. Souborový systém lze také považovat za fyzický (nebo rozšířený) oddíl na disku. Pokud není dobře udržován a pravidelně monitorován, může se z dlouhodobého hlediska poškodit nebo poškodit, a to mnoha různými způsoby.

Existuje několik faktorů, které mohou způsobit, že se souborový systém stane nezdravým: selhání systému, selhání hardwaru nebo softwaru, chybné ovladače a programy, nesprávné vyladění, přetížení nadměrným množstvím dat a další drobné závady.

Kterýkoli z těchto problémů může způsobit, že Linux nepřipojí (nebo neodpojí) souborový systém elegantně, což způsobí selhání systému.

Přečtěte si také: 7 způsobů, jak určit typ systému souborů v systému Linux (Ext2, Ext3 nebo Ext4)

Kromě toho může provoz vašeho systému s poškozeným souborovým systémem způsobit další běhové chyby v komponentách operačního systému nebo v uživatelských aplikacích, které mohou eskalovat až k vážné ztrátě dat. Abyste se vyhnuli poškození nebo poškození souborového systému, musíte sledovat jeho stav.

V tomto článku se budeme zabývat nástroji pro monitorování a udržování stavu souborových systémů ext2, ext3 a ext4. Všechny zde popsané nástroje vyžadují oprávnění uživatele root, proto k jejich spuštění použijte příkaz sudo.

Jak zobrazit informace o souborovém systému EXT2/EXT3/EXT4

dumpe2fs je nástroj příkazového řádku používaný k výpisu informací o souborovém systému ext2/ext3/ext4, což znamená, že zobrazuje informace o superbloku a blokuje informace o skupině pro souborový systém na zařízení.

Před spuštěním dumpe2fs nezapomeňte spustit příkaz df -hT, abyste znali názvy zařízení souborového systému.

sudo dumpe2fs /dev/sda10
Ukázkový výstup
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

Můžete předat příznak -b pro zobrazení všech bloků, které jsou v souborovém systému rezervovány jako špatné (žádný výstup neimplikuje špatné bloky):

dumpe2fs -b

Kontrola chyb v souborových systémech EXT2/EXT3/EXT4

e2fsck se používá k prověřování chyb v souborových systémech ext2/ext3/ext4 a kontrolám fsck a může volitelně opravit souborový systém Linux; je to v podstatě front-end pro řadu nabízených kontrolerů souborového systému (fsck.fstype například fsck.ext3, fsck.sfx atd.) pod Linuxem.

Pamatujte, že Linux spouští e2fack/fsck automaticky při spouštění systému na oddílech, které jsou označeny pro kontrolu v konfiguračním souboru /etc/fstab. To se obvykle provádí poté, co souborový systém nebyl čistě odpojen.

Pozor: Nespouštějte e2fsck nebo fsck na připojených souborových systémech, před spuštěním vždy nejprve odpojte oddíl tyto nástroje na něm, jak je znázorněno níže.

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

Případně povolte podrobný výstup pomocí přepínače -V a pomocí -t zadejte typ souborového systému, jako je tento:

sudo fsck -Vt ext4 /dev/sda10

Ladění souborových systémů EXT2/EXT3/EXT4

Od začátku jsme zmínili, že jednou z příčin poškození souborového systému je nesprávné ladění. Ke změně laditelných parametrů souborových systémů ext2/ext3/ext4 můžete použít nástroj tune2fs, jak je vysvětleno níže.

Chcete-li zobrazit obsah superbloku souborového systému, včetně aktuálních hodnot parametrů, použijte volbu -l, jak je uvedeno na obrázku.

sudo tune2fs -l /dev/sda10
Ukázkový výstup
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

Dále pomocí parametru -c můžete nastavit počet připojení, po kterých bude souborový systém zkontrolován e2fsck. Tento příkaz instruuje systém, aby spustil e2fsck proti /dev/sda10 po každých 4 připojeních.

sudo tune2fs -c 4 /dev/sda10

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

Můžete také definovat čas mezi dvěma kontrolami souborového systému pomocí volby -i. Následující příkaz nastavuje interval 2 dnů mezi kontrolami souborového systému.

sudo tune2fs  -i  2d  /dev/sda10

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

Nyní, pokud spustíte tento příkaz níže, je nyní nastaven interval kontroly souborového systému pro /dev/sda10.

sudo tune2fs -l /dev/sda10
Ukázkový výstup
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

Chcete-li změnit výchozí parametry žurnálování, použijte volbu -J. Tato možnost má také dílčí možnosti: size=journal-size (nastavuje velikost deníku), device=external-journal (určuje zařízení, na kterém je uložen) a location=umístění-žurnálu (definuje umístění deníku).

Všimněte si, že pro souborový systém lze nastavit pouze jednu z možností velikosti nebo zařízení:

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

V neposlední řadě lze jmenovku svazku souborového systému nastavit pomocí volby -L, jak je uvedeno níže.

sudo tune2fs -L "ROOT" /dev/sda10

Ladění souborových systémů EXT2/EXT3/EXT4

debugfs je jednoduchý, interaktivní ladicí program souborových systémů ext2/ext3/ext4 založený na příkazovém řádku. Umožňuje interaktivně upravovat parametry souborového systému. Chcete-li zobrazit dílčí příkazy nebo požadavky, zadejte "?".

sudo debugfs /dev/sda10

Ve výchozím nastavení by měl být souborový systém otevřen v režimu čtení-zápis, použijte příznak -w k otevření v režimu čtení-zápis. Chcete-li jej otevřít v katastrofickém režimu, použijte volbu -c.

Ukázkový výstup
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
....

Chcete-li zobrazit fragmentaci volného místa, použijte požadavek freefrag.

debugfs: freefrag
Ukázkový výstup
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:  

Můžete prozkoumat tolik dalších požadavků, jako je vytváření nebo odstraňování souborů nebo adresářů, změna aktuálního pracovního adresáře a mnoho dalšího, pouhým přečtením poskytnutého stručného popisu. Chcete-li ukončit debugfs, použijte požadavek q.

To je prozatím vše! Níže máme sbírku souvisejících článků v různých kategoriích, které se vám budou hodit.

Informace o použití souborového systému:

  1. 12 Užitečné příkazy „df“ pro kontrolu místa na disku v systému Linux
  2. Pydf alternativní příkaz „df“ pro kontrolu využití disku v různých barvách
  3. 10 užitečných příkazů du (používání disku) pro zjištění využití disku u souborů a adresářů

Zkontrolujte stav disku nebo diskového oddílu:

  1. 3 Užitečné GUI a terminálové Linuxové nástroje pro skenování disků
  2. Jak zkontrolovat špatné sektory nebo špatné bloky na pevném disku v Linuxu
  3. Jak opravit a defragmentovat systémové oddíly a adresáře Linuxu

Udržování zdravého souborového systému vždy zlepšuje celkový výkon vašeho systému Linux. Pokud máte nějaké dotazy nebo další myšlenky, které chcete sdílet, použijte formulář pro komentáře níže.