4 Orodja za upravljanje zdravja EXT2, EXT3 in EXT4 v Linuxu


Datotečni sistem je podatkovna struktura, ki pomaga nadzorovati shranjevanje in pridobivanje podatkov v računalniškem sistemu. Datotečni sistem lahko obravnavamo tudi kot fizično (ali razširjeno) particijo na disku. Če se ne vzdržuje in redno spremlja, se lahko dolgoročno poškoduje ali poškoduje na toliko različnih načinov.

Obstaja več dejavnikov, ki lahko povzročijo, da datotečni sistem postane nezdrav: zrušitve sistema, okvare strojne ali programske opreme, napaki v gonilnikih in programih, napačno uglaševanje, preobremenitev s prekomernimi podatki in drugimi manjšimi napakami.

Vsaka od teh težav lahko povzroči, da Linux ne namesti (ali odstrani) datotečnega sistema na miren način, kar povzroči okvaro sistema.

Poleg tega lahko delovanje vašega sistema z okvarjenim datotečnim sistemom povzroči druge napake pri izvajanju v komponentah operacijskega sistema ali v uporabniških aplikacijah, ki se lahko stopnjujejo v hudo izgubo podatkov. Da bi se izognili poškodbam ali poškodbam datotečnega sistema, morate paziti na njegovo zdravje.

V tem članku bomo obravnavali orodja za spremljanje in vzdrževanje zdravja datotečnih sistemov ext2, ext3 in ext4. Vsa tukaj opisana orodja zahtevajo pravice uporabnika root, zato jih uporabite za ukaz sudo.

Kako si ogledate informacije o datotečnem sistemu EXT2/EXT3/EXT4

dumpe2fs je orodje ukazne vrstice, ki se uporablja za izpis podatkov o datotečnem sistemu ext2/ext3/ext4, kar pomeni, da prikazuje super blok in blokira informacije o skupinah datotečnega sistema v napravi.

Preden zaženete dumpe2fs, se prepričajte, da zaženete ukaz df -hT, če želite poznati imena naprav datotečnega sistema.

$ 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

Oznako -b lahko posredujete, če želite v datotečnem sistemu prikazati vse bloke, ki so rezervirani kot slabi (izhod ne pomeni slabih blokov):

$ dumpe2fs -b

Preverjanje napak pri datotečnih sistemih EXT2/EXT3/EXT4

e2fsck se uporablja za pregled datotečnih sistemov ext2/ext3/ext4 glede napak in preverjanj fsck in lahko po želji popravi datotečni sistem Linux; v bistvu je sprednji del za vrsto pregledovalnikov datotečnih sistemov (fsck.fstype, na primer fsck.ext3, fsck.sfx itd.), ki jih ponuja Linux.

Ne pozabite, da Linux samodejno zažene e2fack/fsck pri zagonu sistema na particijah, ki so označene za preverjanje v konfiguracijski datoteki/etc/fstab. To se običajno naredi potem, ko datotečni sistem ni popolnoma odstranjen.

Opozorilo: Ne zaženite e2fsck ali fsck na nameščenih datotečnih sistemih, vedno najprej odstranite particijo, preden lahko na njej zaženete ta orodja, kot je prikazano spodaj.

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

Druga možnost je, da omogočite podroben izhod s stikalom -V in z -t določite vrsto datotečnega sistema, kot je ta:

$ sudo fsck -Vt ext4 /dev/sda10

Uglaševanje datotečnih sistemov EXT2/EXT3/EXT4

Že na začetku smo omenili, da je eden od vzrokov za poškodbe datotečnega sistema nepravilno nastavljanje. S pripomočkom tune2fs lahko spremenite nastavljive parametre datotečnih sistemov ext2/ext3/ext4, kot je razloženo spodaj.

Če si želite ogledati vsebino superbloka datoteke, vključno s trenutnimi vrednostmi parametrov, uporabite možnost -l , kot 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

Nato lahko z zastavico -c nastavite število nosilcev, po katerih bo datotečni sistem preveril e2fsck. Ta ukaz sistemu naroči, naj po vsakih 4 vklopih zažene e2fsck proti /dev/sda10 .

$ sudo tune2fs -c 4 /dev/sda10

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

Določite lahko tudi čas med dvema pregledoma datotečnega sistema z možnostjo -i . Naslednji ukaz nastavi 2 -dnevni interval med preverjanji datotečnega sistema.

$ sudo tune2fs  -i  2d  /dev/sda10

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

Če zaženete ta ukaz spodaj, je zdaj nastavljen interval preverjanja datotečnega sistema za /dev/sda10 .

$ 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

Če želite spremeniti privzete parametre beleženja, uporabite možnost -J . Ta možnost ima tudi podmožnosti: velikost = velikost dnevnika (nastavi velikost dnevnika), naprava = zunanji dnevnik (podaja napravo, na kateri je shranjen) in lokacija = lokacija dnevnika (določa lokacijo dnevnika).

Upoštevajte, da je za datotečni sistem mogoče nastaviti le eno od možnosti velikosti ali naprave:

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

Nenazadnje lahko oznako nosilca datotečnega sistema nastavite z možnostjo -L , kot je prikazano spodaj.

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

Odpravljanje napak datotečnih sistemov EXT2/EXT3/EXT4

debugfs je preprost, interaktivni iskalnik napak za datotečne sisteme ext2/ext3/ext4, ki temelji na ukazni vrstici. Omogoča interaktivno spreminjanje parametrov datotečnega sistema. Če si želite ogledati podpovedi ali zahteve, vnesite \"? \" .

$ sudo debugfs /dev/sda10

Privzeto je treba datotečni sistem odpreti v načinu za branje in pisanje, z zastavico -w pa ga odprite v načinu za branje in pisanje. Če ga želite odpreti v katastrofalnem načinu, uporabite možnost -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
....

Če želite prikazati razdrobljenost prostega prostora, uporabite tako zahtevo freefrag.

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:  

Toliko drugih zahtev, kot so ustvarjanje ali odstranjevanje datotek ali imenikov, spreminjanje trenutnega delovnega imenika in še veliko več, lahko preberete tako, da preprosto preberete kratek opis. Če želite zapreti odpravljanje napak, uporabite zahtevo q .

To je vse za zdaj! Spodaj imamo zbirko sorodnih člankov v različnih kategorijah, ki se vam bodo zdeli koristni.

  1. 12 uporabnih ukazov "df" za preverjanje prostora na disku v sistemu Linux
  2. Pydf alternativni ukaz "df" za preverjanje uporabe diska v različnih barvah
  3. 10 koristnih ukazov du (uporaba diska) za iskanje uporabe datotek in imenikov na disku

  1. 3 Uporabna grafična vmesnika in terminalska orodja za skeniranje diskov Linux
  2. Kako preveriti slabe sektorje ali slabe bloke na trdem disku v Linuxu
  3. Kako popraviti in defragmentirati sistemske particije in imenike Linuxa

Ohranjanje zdravega datotečnega sistema vedno izboljša splošno delovanje vašega sistema Linux. Če imate kakršna koli vprašanja ali dodatne misli, ki jih želite deliti, uporabite spodnji obrazec za komentar.