4个工具来管理Linux中的EXT2,EXT3和EXT4健康

文件系统是一种数据结构,有助于控制如何在计算机系统上存储和检索数据。 文件系统也可以被视为磁盘上的物理(或扩展)分区。 如果维护得不好并且经常受到监控,则可能会以多种不同方式长期受到损害或损坏。

有几个因素可能会导致文件系统变得不健康:系统崩溃,硬件或软件故障,错误的驱动程序和程序,错误地调整它,过度的数据加上其他轻微的故障。

任何这些问题都会导致Linux不能正常挂载(或卸载)文件系统,从而导致系统故障。

另请参阅在Linux中确定文件系统类型的7种方法(Ext2,Ext3或Ext4)

另外,在系统运行受损的文件系统时,可能会在操作系统组件或用户应用程序中产生其他运行时错误,从而导致严重的数据丢失。 为了避免遭受文件系统损坏或损坏,您需要注意其健康状况。

在本文中,我们将介绍用于监视和维护ext2,ext3和ext4文件系统健康的工具。 这里描述的所有工具都需要root用户权限,因此使用sudo命令来运行它们。

如何查看EXT2 / EXT3 / EXT4文件系统信息

dumpe2fs是一个用于转储ext2 / ext3 / ext4文件系统信息的命令行工具,意思是它显示超级块,并在设备上显示文件系统的组信息。

在运行dumpe2fs之前,请确保运行df -hT命令以了解文件系统设备名称。

$ 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

您可以传递-b标志以显示在文件系统中保留为坏的任何块(不输出意味着坏块):

$ dumpe2fs -b

检查EXT2 / EXT3 / EXT4文件系统是否有错误

e2fsck用于检查ext2 / ext3 / ext4文件系统的错误和fsck检查,并可以选择修复Linux文件系统 ; 它基本上是在Linux下提供的一系列文件系统检查程序( fsck.fstype ,例如fsck.ext3fsck.sfx等)的前端

请记住,在标记为检入/ etc / fstab配置文件的分区上,Linux在系统引导时会自动运行e2fack / fsck 这通常在文件系统尚未完全卸载之后完成。

注意 :不要在已挂载的文件系统上运行e2fsckfsck ,请务必首先卸载分区,然后才能运行这些工具,如下所示。

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

或者,使用-V开关启用详细输出,并使用-t指定文件系统类型,如下所示:

$ sudo fsck -Vt ext4 /dev/sda10

Tuning EXT2 / EXT3 / EXT4文件系统

我们从一开始就提到文件系统损坏的原因之一是错误的调整。 您可以使用tune2fs实用程序来更改ext2 / ext3 / ext4文件系统的可调参数,如下所述。

要查看文件系统超级块的内容(包括参数的当前值),请使用-l选项,如图所示。

$ 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

接下来,使用-c标志,您可以设置文件系统在e2fsck之后的挂载次数。 这个命令指示系统在每4次挂载之后对/dev/sda10运行e2fsck。

$ sudo tune2fs -c 4 /dev/sda10
tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4

您还可以使用-i选项定义两次文件系统检查之间的时间。 以下命令设置文件系统检查之间的间隔为2天。

$ sudo tune2fs  -i  2d  /dev/sda10
tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds

现在,如果您在下面运行此命令,现在设置/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

要更改默认日记参数,请使用-J选项。 此选项还具有子选项: size = journal-size (设置日志的大小), device = external-journal (指定存储它的设备)和location = journal-location (定义日志的位置 )。

请注意,只能为文件系统设置一个大小或设备选项:

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

最后但并非最不重要的一点,可以使用-L选项来设置文件系统的卷标,如下所示。

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

调试EXT2 / EXT3 / EXT4文件系统

debugfs是一个基于ext2 / ext3 / ext4文件系统调试器的简单的交互式命令行。 它允许您以交互方式修改文件系统参数。 要查看子命令或请求,请键入"?"

$ sudo debugfs /dev/sda10

默认情况下,应该以读写模式打开文件系统,使用-w标志以读写模式打开文件系统。 要以灾难模式打开它,请使用-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
....

要显示可用空间碎片,请使用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:  

您可以通过简单阅读所提供的简要说明来探索如此多的其他请求,例如创建或删除文件或目录,更改当前工作目录等等。 要退出debugfs,请使用q请求。

目前为止就这样了! 我们有以下不同类别的相关文章的集合,你会发现有用的。

文件系统使用信息:

  1. 12个有用的“df”命令来检查Linux中的磁盘空间
  2. Pydf替代“df”命令来检查不同颜色的磁盘使用情况
  3. 10个有用的du(磁盘使用)命令来查找文件和目录的磁盘使用情况

检查磁盘或分区运行状况:

  1. 3个有用的基于GUI和终端的Linux磁盘扫描工具
  2. 如何在Linux中检查硬盘上的坏扇区或坏块
  3. 如何修复和碎片整理Linux系统分区和目录

保持一个健康的文件系统总能提高你的Linux系统的整体性能。 如果您有任何问题或其他想法共享使用下面的评论表格。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏