4 Mga Himan sa Pagdumala sa EXT2, EXT3 ug EXT4 Health sa Linux


Ang filesystem usa ka istruktura sa datos nga makatabang sa pagkontrolar kung giunsa pagtipig ug pagbawi ang datos sa sistema sa kompyuter. Ang usa ka filesystem mahimo usab nga isipon nga usa ka pisikal (o gipalugway) nga partisyon sa usa ka disk. Kung dili maayo nga pagmentinar ug kanunay nga gibantayan, kini mahimong madaot o madaot sa kadugayan, sa daghang lainlaing mga paagi.

Adunay ubay-ubay nga mga hinungdan nga mahimong hinungdan sa usa ka filesystem nga mahimong dili maayo: system crashes, hardware o software malfunctions, buggy drivers ug mga programa, pag-tune niini nga dili husto, pag-overload niini sa sobra nga data ug uban pang gagmay nga mga glitches.

Ang bisan unsa niini nga mga isyu mahimong hinungdan nga ang Linux dili mag-mount (o mag-unmount) sa usa ka filesystem nga matahum, sa ingon nagdala sa pagkapakyas sa sistema.

Dugang pa, ang pagpadagan sa imong sistema nga adunay depekto nga sistema sa file mahimong magpahinabog uban pang mga sayup sa pagdagan sa mga sangkap sa operating system o sa mga aplikasyon sa gumagamit, nga mahimong mosangko sa grabe nga pagkawala sa datos. Aron malikayan ang pag-antos sa filesystem nga korapsyon o kadaot, kinahanglan nimo nga bantayan ang kahimsog niini.

Niini nga artikulo, tabonan namon ang mga himan aron ma-monitor ug mapadayon ang kahimsog sa ext2, ext3 ug ext4 filesystem. Ang tanan nga mga himan nga gihulagway dinhi nanginahanglan mga pribilehiyo sa gamut nga tiggamit, busa gamita ang sudo nga mando aron madala kini.

Unsaon Pagtan-aw sa EXT2/EXT3/EXT4 Filesystem Information

Ang dumpe2fs kay usa ka command line tool nga gigamit sa paglabay sa ext2/ext3/ext4 filesystem information, nagpasabot nga kini nagpakita sa super block ug nag-block sa impormasyon sa grupo para sa filesystem sa device.

Sa dili pa magpadagan sa dumpe2fs, siguruha nga ipadagan ang df -hT nga mando aron mahibal-an ang mga ngalan sa filesystem device.

$ 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

Mahimo nimong ipasa ang -b nga bandila aron ipakita ang bisan unsang mga bloke nga gireserba nga dili maayo sa filesystem (walay output nga nagpasabut sa mga badblock):

$ dumpe2fs -b

Pagsusi sa EXT2/EXT3/EXT4 Filesystems Alang sa mga Sayop

Ang e2fsck gigamit sa pagsusi sa ext2/ext3/ext4 filesystems alang sa mga sayop ug fsck checks ug mahimong opsyonal nga ayohon ang Linux filesystem; kini mao ang batakan sa usa ka front-end alang sa usa ka lain-laing mga filesystem checkers (fsck.fstype alang sa panig-ingnan fsck.ext3, fsck.sfx etc) nga gitanyag ubos sa Linux.

Hinumdumi nga ang Linux nagpadagan sa e2fack/fsck awtomatik sa system boot sa mga partisyon nga gimarkahan alang sa pagsusi sa /etc/fstab configuration file. Kini kasagarang buhaton human ang usa ka filesystem wala ma-unmount nga limpyo.

Atensyon: Ayaw pagdagan ang e2fsck o fsck sa mga naka-mount nga filesystem, kanunay nga i-unmount ang partition sa dili pa nimo mapadagan kini nga mga himan, sama sa gipakita sa ubos.

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

Sa laing bahin, i-enable ang verbose output gamit ang -V switch ug gamita ang -t aron itakda ang usa ka filesystem type nga sama niini:

$ sudo fsck -Vt ext4 /dev/sda10

Pag-tune sa EXT2/EXT3/EXT4 Filesystems

Gihisgutan namon gikan sa sinugdanan nga usa sa mga hinungdan sa pagkadaot sa filesystem mao ang dili husto nga pag-tune. Mahimo nimong gamiton ang tune2fs utility aron usbon ang tunable nga mga parameter sa ext2/ext3/ext4 filesystems sama sa gipatin-aw sa ubos.

Aron makita ang mga sulod sa filesystem superblock, lakip ang kasamtangang mga bili sa mga parameter, gamita ang -l nga opsyon sama sa gipakita.

$ 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

Sunod, gamit ang -c nga bandila, mahimo nimong itakda ang gidaghanon sa mga mounts nga pagkahuman susihon ang filesystem sa e2fsck. Kini nga sugo nagmando sa sistema sa pagpadagan sa e2fsck batok /dev/sda10 human sa matag 4 nga pag-mount.

$ sudo tune2fs -c 4 /dev/sda10

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

Mahimo nimo usab nga ipasabut ang oras tali sa duha nga mga pagsusi sa filesystem gamit ang kapilian nga -i. Ang mosunud nga mando nagtakda usa ka agwat sa 2 ka adlaw tali sa mga pagsusi sa filesystem.

$ sudo tune2fs  -i  2d  /dev/sda10

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

Karon kung imong ipadagan kini nga sugo sa ubos, ang filesystem check interval para sa /dev/sda10 gitakda na.

$ 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

Para usbon ang default nga mga parametro sa journaling, gamita ang -J nga opsyon. Kini nga opsyon aduna usab mga sub-opsyon: size=journal-size (nagtakda sa gidak-on sa journal), device=external-journal (nagtino sa device diin kini gitipigan) ug lokasyon=journal-location (naghubit sa lokasyon sa journal).

Timan-i nga usa lang sa gidak-on o opsyon sa device ang mahimong itakda para sa filesystem:

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

Katapusan apan dili labing gamay, ang label sa volume sa usa ka filesystem mahimong itakda gamit ang -L nga kapilian sama sa ubos.

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

Debug EXT2/EXT3/EXT4 Filesystems

Ang debugfs kay simple, interactive nga command line base sa ext2/ext3/ext4 filesystems debugger. Gitugotan ka niini nga usbon ang mga parameter sa filesystem nga interactive. Para tan-awon ang mga sub-command o hangyo, type \?\.

$ sudo debugfs /dev/sda10

Sa kasagaran, ang filesystem kinahanglang ablihan sa read-write mode, gamita ang -w flag aron maablihan kini sa read-write mode. Para maablihan kini sa catastrophic mode, gamita ang -c nga opsyon.

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

Aron ipakita ang libre nga pagbahinbahin sa wanang, gamita ang hangyo nga freefrag, sama niini.

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:  

Mahimo nimong tukion ang daghang uban pang mga hangyo sama sa paghimo o pagtangtang sa mga file o direktoryo, pagbag-o sa karon nga direktoryo sa pagtrabaho ug daghan pa, pinaagi lamang sa pagbasa sa mubo nga paghulagway nga gihatag. Sa pag-undang sa mga debugf, gamita ang q hangyo.

Kana lang sa pagkakaron! Adunay kami usa ka koleksyon sa mga may kalabutan nga mga artikulo sa ilawom sa lainlaing mga kategorya sa ubos, nga makit-an nimo nga mapuslanon.

  1. 12 Mapuslanon nga \df” nga mga Sugo sa Pagsusi sa Disk Space sa Linux
  2. Pydf usa ka Alternatibong \df” nga Sugo sa Pagsusi sa Paggamit sa Disk sa Lainlaing Kolor
  3. 10 ka Mapuslanon nga du (Disk Usage) Commands sa pagpangita sa Disk Usage sa Files ug Directories

  1. 3 Mapuslanon nga GUI ug Terminal Based Linux Disk Scanning Tools
  2. Unsaon Pagsusi sa Bad Sectors o Bad Blocks sa Hard Disk sa Linux
  3. Unsaon Pag-ayo ug Pag-defragment sa Linux System Partitions ug Direktoryo

Ang pagpadayon sa usa ka himsog nga filesystem kanunay nga nagpauswag sa kinatibuk-ang pasundayag sa imong sistema sa Linux. Kung naa kay pangutana o dugang nga mga hunahuna nga ipaambit gamita ang porma sa komento sa ubos.