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


Sistem datoteka je struktura podataka koja pomaže u kontroli načina na koji se podaci pohranjuju i preuzimaju na računarskom sistemu. Sistem datoteka se također može smatrati fizičkom (ili proširenom) particijom na disku. Ako se ne održava dobro i redovno prati, može se dugoročno oštetiti ili oštetiti, na mnogo različitih načina.

Postoji nekoliko faktora koji mogu uzrokovati da sistem datoteka postane nezdrav: rušenje sistema, kvarovi na hardveru ili softveru, pogrešni drajveri i programi, pogrešno podešavanje, preopterećenje prekomjernim podacima i druge manje greške.

Bilo koji od ovih problema može uzrokovati da Linux ne montira (ili demontažu) sistem datoteka graciozno, što dovodi do kvara sistema.

Pročitajte također: 7 načina za određivanje tipa sistema datoteka u Linuxu (Ext2, Ext3 ili Ext4)

Osim toga, pokretanje vašeg sistema sa oštećenim sistemom datoteka može dovesti do drugih grešaka u izvršavanju u komponentama operativnog sistema ili u korisničkim aplikacijama, što bi moglo eskalirati do ozbiljnog gubitka podataka. Da biste izbjegli oštećenje ili oštećenje sistema datoteka, morate paziti na njegovo zdravlje.

U ovom članku ćemo pokriti alate za praćenje i održavanje zdravlja ext2, ext3 i ext4 sistema datoteka. Svi ovdje opisani alati zahtijevaju privilegije root korisnika, stoga koristite naredbu sudo da ih pokrenete.

Kako pogledati EXT2/EXT3/EXT4 informacije o sistemu datoteka

dumpe2fs je alat komandne linije koji se koristi za dump ext2/ext3/ext4 informacija o sistemu datoteka, što znači da prikazuje super blok i blokira informacije grupe za sistem datoteka na uređaju.

Prije pokretanja dumpe2fs, obavezno pokrenite df -hT naredbu da biste znali imena uređaja sistema datoteka.

sudo dumpe2fs /dev/sda10
Sample Output
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 oznaku -b da prikažete sve blokove koji su rezervirani kao loši u sistemu datoteka (bez izlaza ne podrazumijeva loše blokove):

dumpe2fs -b

Provjera EXT2/EXT3/EXT4 sistema datoteka na greške

e2fsck se koristi za ispitivanje ext2/ext3/ext4 sistema datoteka za greške i fsck provjere i može opciono popraviti Linux sistem datoteka; to je u osnovi front-end za niz programa za provjeru sistema datoteka (fsck.fstype na primjer fsck.ext3, fsck.sfx itd.) koji se nude pod Linuxom.

Zapamtite da Linux pokreće e2fack/fsck automatski pri pokretanju sistema na particijama koje su označene za provjeru u /etc/fstab konfiguracijskoj datoteci. Ovo se obično radi nakon što sistem datoteka nije čisto demontiran.

Pažnja: Nemojte pokretati e2fsck ili fsck na montiranim sistemima datoteka, uvijek prvo demontirajte particiju prije nego što možete pokrenuti ove alate na njemu, kao što je prikazano u nastavku.

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

Alternativno, omogućite opširni izlaz pomoću prekidača -V i koristite -t da odredite tip sistema datoteka poput ovog:

sudo fsck -Vt ext4 /dev/sda10

Podešavanje EXT2/EXT3/EXT4 sistema datoteka

Od početka smo spomenuli da je jedan od uzroka oštećenja sistema datoteka pogrešno podešavanje. Možete koristiti tune2fs uslužni program za promjenu podesivih parametara ext2/ext3/ext4 sistema datoteka kao što je objašnjeno u nastavku.

Da vidite sadržaj superbloka sistema datoteka, uključujući trenutne vrijednosti parametara, koristite opciju -l kao što je prikazano.

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

Zatim, koristeći -c zastavicu, možete postaviti broj montiranja nakon kojih će sistem datoteka biti provjeren od strane e2fsck. Ova komanda daje instrukcije sistemu 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 sistema datoteka pomoću opcije -i. Sljedeća komanda postavlja interval od 2 dana između provjera sistema datoteka.

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 ispod, interval provjere sistema datoteka za /dev/sda10 je sada postavljen.

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

Za promjenu zadanih parametara dnevnika koristite opciju -J. Ova opcija također ima podopcije: size=journal-size (postavlja veličinu dnevnika), device=external-journal (određuje uređaj na kojem je pohranjen) i location=journal-location (definira lokaciju dnevnika).

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

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

Na kraju, ali ne i najmanje važno, oznaka volumena sistema datoteka može se postaviti pomoću opcije -L kao u nastavku.

sudo tune2fs -L "ROOT" /dev/sda10

Otklanjanje grešaka u EXT2/EXT3/EXT4 sistemima datoteka

debugfs je jednostavan, interaktivni debager baziran na komandnoj liniji ext2/ext3/ext4. Omogućava vam da interaktivno mijenjate parametre datotečnog sistema. Za pregled podnaredbi ili zahtjeva upišite "?".

sudo debugfs /dev/sda10

Podrazumevano, sistem datoteka treba da se otvori u režimu čitanja i pisanja, koristite oznaku -w da biste ga otvorili u režimu čitanja i pisanja. Da biste ga otvorili u katastrofalnom načinu rada, koristite opciju -c.

Sample Output
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
....

Za prikaz fragmentacije slobodnog prostora, koristite zahtjev freefrag, na sličan način.

debugfs: freefrag
Sample Output
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 mnoge druge zahtjeve kao što su kreiranje ili uklanjanje datoteka ili direktorija, promjena trenutnog radnog direktorija i još mnogo toga, jednostavnim čitanjem kratkog opisa. Da biste napustili debugfs, koristite zahtjev q.

To je sve za sada! Imamo kolekciju srodnih članaka u različitim kategorijama ispod, koji će vam biti korisni.

Informacije o korištenju sistema datoteka:

  1. 12 korisnih “df” naredbi za provjeru prostora na disku u Linuxu
  2. Pydf alternativna “df” naredba za provjeru korištenja diska u različitim bojama
  3. 10 korisnih naredbi du (Upotreba diska) za pronalaženje korištenja diska za datoteke i direktorije

Provjerite zdravlje diska ili particije:

  1. 3 Korisni GUI i terminalski bazirani Linux alati za skeniranje diskova
  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 sistema datoteka uvijek poboljšava ukupne performanse vašeg Linux sistema. Ako imate bilo kakvih pitanja ili dodatnih misli koje možete podijeliti, koristite obrazac za komentare ispod.