欢迎光临
我们一直在努力

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-4a6dc9634a1bFilesystem magic number:  0xEF53Filesystem 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_isizeFilesystem flags:         signed_directory_hash Default mount options:    user_xattr aclFilesystem state:         cleanErrors behavior:          ContinueFilesystem OS type:       LinuxInode count:              21544960Block count:              86154752Reserved block count:     4307737Free blocks:              22387732Free inodes:              21026406First block:              0Block size:               4096Fragment size:            4096Reserved GDT blocks:      1003Blocks per group:         32768Fragments per group:      32768Inodes per group:         8192Inode blocks per group:   512Flex block group size:    16Filesystem created:       Sun Jul 31 16:19:36 2016Last mount time:          Mon Nov  6 10:25:28 2017Last write time:          Mon Nov  6 10:25:19 2017Mount count:              432Maximum mount count:      -1Last checked:             Sun Jul 31 16:19:36 2016Check interval:           0 ()Lifetime writes:          2834 GBReserved blocks uid:      0 (user root)Reserved blocks gid:      0 (group root)First inode:              11Inode size:	          256Required extra isize:     28Desired extra isize:      28Journal inode:            8First orphan inode:       6947324Default directory hash:   half_md4Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805Journal backup:           inode blocksJournal features:         journal_incompat_revokeJournal size:             128MJournal length:           32768Journal sequence:         0x00580f0cJournal 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-4a6dc9634a1bFilesystem magic number:  0xEF53Filesystem 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_isizeFilesystem flags:         signed_directory_hash Default mount options:    user_xattr aclFilesystem state:         cleanErrors behavior:          ContinueFilesystem OS type:       LinuxInode count:              21544960Block count:              86154752Reserved block count:     4307737Free blocks:              22387732Free inodes:              21026406First block:              0Block size:               4096Fragment size:            4096Reserved GDT blocks:      1003Blocks per group:         32768Fragments per group:      32768Inodes per group:         8192Inode blocks per group:   512Flex block group size:    16Filesystem created:       Sun Jul 31 16:19:36 2016Last mount time:          Mon Nov  6 10:25:28 2017Last write time:          Mon Nov  6 10:25:19 2017Mount count:              432Maximum mount count:      -1Last checked:             Sun Jul 31 16:19:36 2016Check interval:           0 ()Lifetime writes:          2834 GBReserved blocks uid:      0 (user root)Reserved blocks gid:      0 (group root)First inode:              11Inode size:	          256Required extra isize:     28Desired extra isize:      28Journal inode:            8First orphan inode:       6947324Default directory hash:   half_md4Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805Journal backup:           inode blocks

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

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

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

$ sudo tune2fs  -i  2d  /dev/sda10tune2fs 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 2016Last mount time:          Mon Nov  6 10:25:28 2017Last write time:          Mon Nov  6 13:49:50 2017Mount count:              432Maximum mount count:      4Last checked:             Sun Jul 31 16:19:36 2016Check interval:           172800 (2 days)Next check after:         Tue Aug  2 16:19:36 2016Lifetime writes:          2834 GBReserved blocks uid:      0 (user root)Reserved blocks gid:      0 (group root)First inode:              11Inode size:	          256Required extra isize:     28Desired extra isize:      28Journal inode:            8First orphan inode:       6947324Default directory hash:   half_md4Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805Journal 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, paramsShow debugfs parametersopen_filesys, open       Open a filesystemclose_filesys, close     Close the filesystemfreefrag, e2freefrag     Report free space fragmentationfeature, features        Set/print superblock featuresdirty_filesys, dirty     Mark the filesystem as dirtyinit_filesys             Initialize a filesystem (DESTROYS DATA)show_super_stats, stats  Show superblock statisticsncheck                   Do inode->name translationicheck                   Do block->inode translationchange_root_directory, chroot....

要显示可用空间碎片,请使用freefrag请求。

debugfs: freefrag
示例输出
Device: /dev/sda10Blocksize: 4096 bytesTotal blocks: 86154752Free blocks: 22387732 (26.0%)Min. free extent: 4 KB Max. free extent: 2064256 KBAvg. free extent: 2664 KBNum. free extent: 33625HISTOGRAM OF FREE EXTENT SIZES:Extent Size Range :  Free extents   Free Blocks  Percent4K...    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系统的整体性能。 如果您有任何问题或其他想法共享使用下面的评论表格。

赞(0) 打赏
未经允许不得转载:老赵部落 » 4个工具来管理Linux中的EXT2,EXT3和EXT4健康

评论 抢沙发