4 alata za upravljanje zdravljem EXT2, EXT3 i EXT4 u Linuxu


Datotečni sustav je podatkovna struktura koja pomaže kontrolirati način na koji se podaci pohranjuju i dohvaćaju u računalnom sustavu. Datotečni sustav također se može smatrati fizičkom (ili proširenom) particijom na disku. Ako se ne održava dobro i redovito se nadzire, dugoročno se može oštetiti ili oštetiti na toliko različitih načina.

Postoji nekoliko čimbenika koji mogu uzrokovati da datotečni sustav postane nezdrav: rušenje sustava, kvarovi hardvera ili softvera, upravljački programi i programi, pogrešno podešavanje, preopterećenje prekomjernim podacima i drugim manjim greškama.

Bilo koja od ovih poteškoća može uzrokovati da Linux ne graciozno montira (ili demontira) datotečni sustav, što dovodi do kvara sustava.

Osim toga, pokretanje vašeg sustava s oštećenim datotečnim sustavom može dovesti do drugih pogrešaka u izvođenju u komponentama operativnog sustava ili u korisničkim aplikacijama, koje bi mogle eskalirati do ozbiljnog gubitka podataka. Da biste izbjegli oštećenje ili oštećenje datotečnog sustava, morate pripaziti na njegovo zdravlje.

U ovom ćemo članku pokriti alate za nadgledanje i održavanje zdravlja datotečnih sustava ext2, ext3 i ext4. Svi ovdje opisani alati zahtijevaju root korisničke privilegije, zato ih koristite za naredbu sudo.

Kako pregledati podatke o datotečnom sustavu EXT2/EXT3/EXT4

dumpe2fs je alat naredbenog retka koji se koristi za izbacivanje ext2/ext3/ext4 podataka o datotečnom sustavu, što znači da prikazuje super blok i blokira podatke o grupi za datotečni sustav na uređaju.

Prije pokretanja dumpe2fs, obavezno pokrenite naredbu df -hT da biste znali imena uređaja datotečnog sustava.

$ 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

Možete proslijediti zastavicu -b da biste prikazali bilo koji blok koji je rezerviran kao loš u datotečnom sustavu (nijedan izlaz ne podrazumijeva badblocks):

$ dumpe2fs -b

Provjeravanje datotečnih sustava EXT2/EXT3/EXT4 na pogreške

e2fsck se koristi za ispitivanje ext2/ext3/ext4 datotečnih sustava na greške i fsck provjere, a po želji može popraviti Linux datotečni sustav; u osnovi je front-end za čitav niz programa za provjeru datotečnog sustava (fsck.fstype na primjer fsck.ext3, fsck.sfx itd.) koji se nude pod Linuxom.

Zapamtite da Linux automatski pokreće e2fack/fsck prilikom pokretanja sustava na particijama koje su označene za provjeru u/etc/fstab konfiguracijskoj datoteci. To se obično radi nakon što datotečni sustav nije čisto demontiran.

Pažnja: Nemojte izvoditi e2fsck ili fsck na montiranim datotečnim sustavima, uvijek prvo demontirajte particiju prije nego što možete pokrenuti ove alate na njoj, kao što je prikazano dolje.

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

Alternativno, omogućite opsežni izlaz prekidačem -V i pomoću -t odredite vrstu datotečnog sustava poput ove:

$ sudo fsck -Vt ext4 /dev/sda10

Ugađanje datotečnih sustava EXT2/EXT3/EXT4

Od početka smo spomenuli da je jedan od uzroka oštećenja datotečnog sustava pogrešno podešavanje. Pomoću uslužnog programa tune2fs možete promijeniti prilagodljive parametre datotečnih sustava ext2/ext3/ext4 kako je objašnjeno u nastavku.

Da biste vidjeli sadržaj superbloka datotečnog sustava, uključujući trenutne vrijednosti parametara, upotrijebite opciju -l kao što je prikazano.

$ 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

Dalje, pomoću zastavice -c možete postaviti broj montiranja nakon čega će e2fsck provjeriti datotečni sustav. Ova naredba upućuje sustav da pokrene e2fsck protiv /dev/sda10 nakon svaka 4 montiranja.

$ sudo tune2fs -c 4 /dev/sda10

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

Također možete definirati vrijeme između dvije provjere datotečnog sustava pomoću opcije -i . Sljedeća naredba postavlja interval od 2 dana između provjera datotečnog sustava.

$ sudo tune2fs  -i  2d  /dev/sda10

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

Sada ako pokrenete ovu naredbu u nastavku, interval provjere datotečnog sustava za /dev/sda10 je sada postavljen.

$ 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

Da biste promijenili zadane parametre dnevnika, upotrijebite opciju -J . Ova opcija također ima podopcije: veličina = veličina dnevnika (postavlja veličinu časopisa), uređaj = vanjski dnevnik (određuje uređaj na kojem je pohranjen) i lokacija = mjesto dnevnika (definira mjesto dnevnika).

Imajte na umu da se za datotečni sustav može postaviti samo jedna od opcija veličine ili uređaja:

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

I na kraju, ali ne najmanje važno, oznaka volumena datotečnog sustava može se postaviti pomoću opcije -L kao u nastavku.

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

Otklonite pogreške s datotečnim sustavima EXT2/EXT3/EXT4

debugfs je jednostavan, interaktivni program za uklanjanje pogrešaka ext2/ext3/ext4 zasnovan na naredbenom retku. Omogućuje vam interaktivnu izmjenu parametara datotečnog sustava. Da biste pregledali podnaredbe ili zahtjeve, upišite "?" .

$ sudo debugfs /dev/sda10

Prema zadanim postavkama, datotečni sustav trebao bi se otvoriti u načinu čitanja i pisanja, upotrijebite zastavicu -w da biste ga otvorili u načinu čitanja i pisanja. Da biste ga otvorili u katastrofalnom načinu, upotrijebite opciju -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
....

Da biste prikazali fragmentaciju slobodnog prostora, upotrijebite zahtjev za freefrag, slično tome.

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:  

Možete istražiti toliko drugih zahtjeva kao što su stvaranje ili uklanjanje datoteka ili direktorija, promjena trenutne radne mape i još mnogo toga, jednostavnim čitanjem kratkog opisa. Da biste napustili otklanjanje pogrešaka, upotrijebite zahtjev q .

To je sve za sada! U nastavku imamo zbirku povezanih članaka u različitim kategorijama, koji će vam biti korisni.

  1. 12 korisnih naredbi "df" za provjeru prostora na disku u Linuxu
  2. Ispitajte alternativnu naredbu "df" za provjeru upotrebe diska u različitim bojama
  3. 10 korisnih naredbi du (upotreba diska) za pronalaženje upotrebe datoteka na disku, datoteka i direktorija

  1. 3 korisna GUI i alati za skeniranje diskova na temelju terminala
  2. Kako provjeriti loše sektore ili loše blokove na tvrdom disku u Linuxu
  3. Kako popraviti i defragmentirati Linux sistemske particije i direktorije

Održavanje zdravog datotečnog sustava uvijek poboljšava ukupnu izvedbu vašeg Linux sustava. Ako imate bilo kakvih pitanja ili dodatnih razmišljanja za dijeljenje, upotrijebite obrazac za komentar u nastavku.