当前位置: 首页 > 科技观察

在Linux中管理EXT2、EXT3和EXT4文件系统健康的4个工具

时间:2023-03-17 10:23:54 科技观察

文件系统是一种数据结构,可帮助您管理数据在计算机上的存储和检索方式。文件系统也可以被认为是磁盘上的物理(或扩展)分区。如果没有得到很好的维护或定期监控,从长远来看,它可能会出现各种错误或损坏。以下是可能导致文件系统问题的几个因素:系统崩溃、硬件或软件故障、错误的驱动程序和程序、不正确的优化、大量数据过载以及一些故障。这些问题中的任何一个都可能导致Linux无法顺利挂载(或卸载)文件系统,从而导致系统故障。进一步阅读:Linux中确定文件系统类型(Ext2、Ext3或Ext4)的7种方法此外,在您的系统上运行的损坏的文件系统可能会导致操作系统或用户应用程序中的组件出现运行时错误,这可能会进一步扩展到服务器数据丢失。为避免文件系统错误或损坏,您需要密切关注其健康状况。在本文中,我们将介绍用于监控或维护ext2、ext3和ext4文件系统健康状况的工具。这里描述的所有工具都需要root用户权限,因此,需要sudo命令来运行它们。如何查看EXT2/EXT3/EXT4文件系统信息dumpe2fs是一个转储ext2/ext3/ext4文件系统信息的命令行工具,也就是说它可以显示设备上文件系统的超级块和块组信息。在运行dumpe2fs之前,运行df-hT命令以确保您知道文件系统的设备名称。$sudodumpe2fs/dev/sda10示例输出:dumpe2fs1.42.13(17-May-2015)Filesystemvolumename:Lastmountedon:/FilesystemUUID:bb29dda3-bdaa-4b39-86cf-4a6dc9634a1bFilesystemmagicnumber:0xEF53Filesystemrevision#:1(dynamic)Filesystemfeatures:has_journalext_attrresize_inodedir_indexfiletypeneeds_recoveryextentflex_bgsparse_superlarge_filehuge_fileuninit_bgdir_nlinkextra_isizeFilesystemflags:signed_directory_hashDefaultmountoptions:user_xattraclFilesystemstate:cleanErrorsbehavior:ContinueFilesystemOStype:LinuxInodecount:21544960Blockcount:86154752Reservedblockcount:4307737Freeblocks:22387732Freeinodes:21026406Firstblock:0Blocksize:4096Fragmentsize:4096ReservedGDTblocks:1003Blockspergroup:32768Fragmentspergroup:32768Inodespergroup:8192Inodeblockspergroup:512Flexblockgroupsize:16Filesystemcreated:SunJul3116:19:362016Lastmounttime:MonNov610:25:282017Lastwritetime:MonNov610:25:192017Mountcount:432Maximummountcount:-1Lastchecked:SunJul3116:19:362016Checkinterval:0()Lifetimewrites:2834GBReservedblocksuid:0(userroot)Reservedblocksgid:0(grouproot)Firstinode:11Inodesize:256Requiredextraisize:28Desiredextraisize:28Journalinode:8Firstorphaninode:6947324Defaultdirectoryhash:half_md4DirectoryHashSeed:9da5dafb-bded-494d-ba7f-5c0ff3d9b805Journalbackup:inodeblocksJournalfeatures:journal_incompat_revokeJournalsize:128MJournallength:32768Journalsequence:0x00580f0cJournalstart:12055可以使用-b选项显示文件系统中的任何保留块,如坏块(没有输出表示没有坏块):$sudodumpe2fs-b检查EXT2/EXT3/EXT4文件系统中的错误e2fsck用??于检查ext2/ext3/ext4文件系统错误fsck可以检查并可选择修复Linux文件系统;它实际上是底层Linux前端程序提供的一组文件系统检查器(fsck.fstype,例如fsck.ext3、fsck.sfx等)。请记住,当系统启动时,Linux会自动为/etc/fstab配置文件中标记为“已检查”的分区运行e2fsck/fsck。它也通常在文件系统尚未完全卸载时运行。注意:不要在已挂载的文件系统上运行e2fsck或fsck,在运行这些工具之前,请先卸载分区,如下所示。$sudounmount/dev/sda10$sudofsck/dev/sda10此外,您可以使用-V开关启用详细输出并使用-t指定文件系统类型,如下所示:$sudofsck-Vtext4/dev/sda10调整EXT2/EXT3/EXT4文件系统前面我们提到,导致文件系统损坏的因素之一是不正确的调整。您可以使用tune2fs实用程序更改ext2/ext3/ext4文件系统的可调参数,如下所述。要查看文件系统的超级块,包括参数的当前值,请使用-l选项,如下所示。$sudotune2fs-l/dev/sda10示例输出:tune2fs1.42.13(17-May-2015)Filesystemvolumename:Lastmountedon:/FilesystemUUID:bb29dda3-bdaa-4b39-86cf-4a6dc9634a1bFilesystemmagicnumber:0xEF53Filesystemrevision#:1(dynamic)Filesystemfeatures:has_journalext_attrresize_inodedir_indexfiletypeneeds_recoveryextentflex_bgsparse_superlarge_filehuge_fileuninit_bgdir_nlinkextra_isizeFilesystemflags:signed_directory_hashDefaultmountoptions:user_xattraclFilesystemstate:cleanErrorsbehavior:ContinueFilesystemOStype:LinuxInodecount:21544960Blockcount:86154752Reservedblockcount:4307737Freeblocks:22387732Freeinodes:21026406Firstblock:0Blocksize:4096Fragmentsize:4096ReservedGDTblocks:1003Blockspergroup:32768Fragmentspergroup:32768Inodespergroup:8192Inodeblockspergroup:512Flexblockgroupsize:16Filesystemcreated:SunJul3116:19:362016Lastmounttime:MonNov610:25:282017Lastwritetime:MonNov610:25:192017Mountcount:432Maximummountcount:-1Lastchecked:SunJul3116:19:362016Checkinterval:0()Lifetimewrites:2834GBReservedblocksuid:0(userroot)Reservedblocksgid:0(grouproot)Firstinode:11Inodesize:256Requiredextraisize:28Desiredextraisize:28Journalinode:8Firstorphaninode:6947324Defaultdirectoryhash:half_md4DirectoryHashSeed:9da5dafb-bded-494d-ba7f-5c0ff3d9b805Journalbackup:inodeblocks接下来,使用-c标识,你您可以设置文件系统挂载多少次后检查e2fsck。以下命令指示系统在每4次挂载后在/dev/sda10上运行e2fsck。$sudotune2fs-c4/dev/sda10tune2fs1.42.13(17-May-2015)设置maximalmountcountto4您还可以使用-i选项定义两次文件系统检查之间的时间间隔。以下命令设置文件系统检查之间的2天间隔。$sudotune2fs-i2d/dev/sda10tune2fs1.42.13(17-May-2015)Settingintervalbetweenchecksto172800seconds现在,如果运行以下命令,您可以看到文件系统检查间隔已设置为/dev/sda10.$sudotune2fs-l/dev/sda10示例输出:Filesystemcreated:SunJul3116:19:362016Lastmounttime:MonNov610:25:282017Lastwritetime:MonNov613:49:502017Mountcount:432Maximummountcount:4Lastchecked:SunJul3116:19:362016Checkinterval:172800(2days)Nextcheckafter:TueAug216:19:362016Lifetimewrites:2834GBReservedblocksuid:0(userroot)Reservedblocksgid:0(grouproot)Firstinode:11Inodesize:256Requiredextraisize:28Desiredextraisize:28Journalinode:8Firstorphaninode:6947324Defaultdirectoryhash:half_md4DirectoryHashSeed:9da5dafb-bded-494d-ba7f-5c0ff3d9b805Journalbackup:inodeblocks要改变缺省的日志参数,您可以使用-J选项。该选项还有子选项:size=journal-size(设置日志的大小),device=external-journal(指定存储日志的设备),location=journal-location(定义日志的位置).注意文件系统一次只能设置一个日志大小或设备选项:$sudotune2fs-Jsize=4MB/dev/sda10***,同样重要的是,可以使用-L选项设置卷标文件系统,如下图所示。$sudotune2fs-L"ROOT"/dev/sda10debugEXT2/EXT3/EXT4文件系统debugfs是一个用于ext2/ext3/ext4文件系统的简单、交互式命令行调试器。它允许您以交互方式修改文件系统参数。进入?查看子命令或请求。$sudodebugfs/dev/sda10默认情况下,文件系统将以只读模式打开,使用-w标志以读写模式打开它。使用-c选项以灾难模式打开它。示例输出:debugfs1.42.13(17-May-2015)debugfs:?Availabledebugfsrequests:show_debugfs_params,paramsShowdebugfsparametersopen_filesys,openOpenafilesystemclose_filesys,closeClosethefilesystemfreefrag,e2freefragReportfreespacefragmentationfeature,featuresSet/printsuperblockfeaturesdirty_filesys,dirtyMarkthefilesystemasdirtyinit_filesysInitializeafilesystem(DESTROYSDATA)show_super_stats,statsShowsuperblockstatisticsncheckDoinode->nametranslationicheckDoblock->inodetranslationchange_root_directory,chroot....要显示未使用空间的碎片,请像这样使用freefrag请求:debugfs:freefrag示例输出:Device:/dev/sda10Blocksize:4096bytesTotalblocks:86154752Freeblocks:22387732(26.0%)Min.freeextent:4KBMax.freeextent:2064256KBAvg.freeextent2664KBNum.freeextent:33625HastogramofkReexizes:ExtentSerage:freeExtentsFreeblockSpercent4K...8k--:488348830.02%8K...16K--:402993570.04%16K...128K...256K-:2088954420.43%256K...512K-:24622185260.98%512K...1024K-:31755710552.55%1M...2M-:455116091887.19%2M...4M-:287019421778.68%4M...8M-:106514483746.47%8M...16M-.3648918%1633..32M-:1949844484.40%32M...64M-:868731813.90%64M...128M-:7717336297.74%128M...256M-:114904452.19%256M...512M-:108894483.97%512M...410:459%1G...2G-:221021780145.64%debugfs:通过简单浏览它提供的简短描述,你可以尝试更多的请求,比如创建或删除文件或目录,更改当前工作目录等。要退出debugfs,使用q.目前为止就这样了!我们在不同类别下收集了相关文章,您可以在其中找到对您有用的内容。文件系统使用信息:12个有用的“df”命令,用于检查Linux中的磁盘空间分区健康状况:3个有用的GUI和基于终端的Linux磁盘扫描工具如何在Linux中检查硬盘上的坏扇区或坏块如何修复和整理Linux系统分区和目录维护健康的文件系统可以提高Linux系统的性能整体表现。如果您有任何问题或更多想法,请随时使用下面的评论与我们分享。