在本文中,学习如何使用fsck和xfs_repair命令修复Linux磁盘错误。什么是FSCK?fsck(FileSystemConsistencyCheck)是用于检查Linux操作系统文件系统一致性的工具。列出Linux磁盘分区和类型:首先,您需要确定Linux系统的磁盘分区、它们各自的文件系统和挂载点。使用lsblk命令列出磁盘名称、文件系统类型和挂载点:[root@localhost~]#lsblk-oNAME,FSTYPE,MOUNTPOINTNAMEFSTYPEMOUNTPOINTsdasdbsdcsddsr0iso9660nvme0n1├─nvme0n1p1ext4/boot└─nvme0n1p2LVM2_member├─cl-rootxfs/└─cl-swapswap[SWAP]如何扫描和修复Linux磁盘错误分区的最后一次扫描时间。[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepcheckedLastchecked:WedSep115:42:112021如何扫描和修复Linux磁盘错误如何扫描和修复Linux磁盘错误扫描和修复Ext4类型磁盘分区要扫描Linux磁盘分区,可以使用fsck(文件系统一致性检查)命令。但在检查和修复之前,需要卸载该分区。在以下示例中,我们卸载/boot分区。[root@localhost~]#umount/dev/nvme0n1p1卸载成功后,使用fsck.ext4查看/dev/nvme0n1p1分区[root@localhost~]#fsck.ext4/dev/nvme0n1p1e2fsck1.44.3(10-July-2018)/dev/nvme0n1p1:clean,311/65536files,55546/262144blocks如何扫描并修复Linux磁盘错误分割。执行以下命令挂载/etc/fstab配置文件中列出的所有磁盘分区。[root@localhost~]#mount-a如何扫描和修复Linux磁盘错误如何扫描和修复Linux磁盘错误在Linux启动时启用Ext4磁盘分区扫描在系统启动时启用磁盘检查。您必须修改磁盘分区的MountCount参数。[root@localhost~]#tune2fs-c1/dev/nvme0n1p1tune2fs1.44.3(10-July-2018)将最大安装计数设置为1如何扫描和修复Linux磁盘错误如何扫描和修复Linux磁盘错误重启后系统,fsck命令现在将在启动时检查您的Ext4磁盘分区。[root@localhost~]#reboot重启后获取磁盘分区的LastChecked值,此时会显示上次启动Linux的时间。[root@localhost~]#tune2fs-l/dev/nvme0n1p1|grepcheckedLastchecked:TueSep1411:08:112021如何扫描和修复Linux磁盘错误如何扫描和修复Linux磁盘错误恢复默认值MountCount参数,否则每次系统启动时都会继续执行磁盘扫描。[root@localhost~]#tune2fs-c-1/dev/nvme0n1p1tune2fs1.44.3(2018年7月10日)将最大装载计数设置为-1如何扫描和修复Linux磁盘错误如何扫描和修复Linux磁盘错误什么是XFS_REPAIR?xfs_repair实用程序具有高度可扩展性,旨在有效地修复具有许多inode的超大文件系统。与其他Linux文件系统不同,xfs_repair不会在引导时运行,即使XFS文件系统没有完全卸载也是如此。在脏卸载的情况下,xfs_repair只是在挂载时重放日志,确保文件系统是一致的。扫描和修复XFS类型的磁盘分区XFS类型的磁盘分区有自己的一套命令,这与Ext4有点不同。XFS磁盘分区必须先卸载,然后才能检查它们的一致性。[root@localhost~]#umount/dev/sda1我们有xfs_repair命令来检查和修复磁盘错误。使用xfs_repair命令的-n选项检查磁盘错误。[root@localhost~]#xfs_repair-n/dev/sda1第1阶段-查找并验证超级块...第2阶段-使用内部日志-零日志...-扫描文件系统空闲空间和inode映射...-找到根inodechunkPhase3-对于每个AG...-扫描(但不清除)agi未链接列表...-处理已知inode并执行inode发现...-agno=0-agno=1-agno=2-agno=3-处理新发现的inode...阶段4-检查重复块...-设置重复范围列表...-检查inode声明重复块...-agno=0-agno=1-agno=2-agno=3Nomodifyflagset,跳过阶段5阶段6-检查inode连接...-遍历文件系统...-遍历完成...-将断开连接的inode移动到丢失+找到...阶段7-验证链接计数...没有修改标志集,跳过文件系统刷新并退出。如何扫描和修复Linux磁盘错误如何扫描和修复Linux磁盘错误上面的命令只执行磁盘检查,不会尝试修复任何错误。现在,执行不带-n选项的xfs_repair命令,它将执行Linux磁盘分区的扫描和修复。[root@localhost~]#xfs_repair/dev/sda1Phase1-查找并验证超级块...阶段2-使用内部日志-零日志...-扫描文件系统空闲空间和inode映射...-找到根inodechunkPhase3-对于每个AG...-扫描并清除agi未链接列表...-处理已知inode并执行inode发现...-agno=0-agno=1-agno=2-agno=3-处理新发现的inode...Phase4-检查重复块...-设置重复范围列表...-检查inode声明重复块...-agno=0-agno=1-agno=2-agno=3Phase5-重建AG标题和树...-重置超级块...第6阶段-检查inode连接性...-重置实时位图和摘要inode的内容-遍历文件系统...-遍历完成...-将断开连接的inode移动到丢失+找到...阶段7-验证和更正链接计数...完成如何扫描和修复Linux磁盘错误如何扫描和修复Linux诚实挂载分区后出现磁盘错误[root@localhost~]#mount/dev/sda1/data/在Linux启动时启用XFS磁盘分区扫描在某些情况下,如果磁盘分区正在被LinuxOS使用,则无法卸载磁盘因此,您可能必须将磁盘检查推迟到下一次系统启动时进行。要使xfs_repair命令能够在Linux启动时运行,请将“fsck.mode=forcefsck.repair=yes”添加到GRUB菜单内核命令的末尾。检查系统日志以验证磁盘修复命令的执行情况。[root@localhost~]#journalctl|grepsystemd-fsck要在启动时永久启用磁盘检查,您必须将“fsck.mode=forcefsck.repair=yes”添加到GRUB配置文件中。编辑下面的grub配置文件,找到GRUB_CMDLINE_LINUX参数并将fsck.mode=forcefsck.repair=yes添加到该行的末尾。[root@localhost~]#cat/etc/default/grubGRUB_TIMEOUT=5GRUB_DISTRIBUTOR="$(sed's,release.*$,,g'/etc/system-release)"GRUB_DEFAULT=savedGRUB_DISABLE_SUBMENU=trueGRUB_TERMINAL_OUTPUT="控制台"GRUB_CMDLINE_LINUX="crashkernel=autoresume=/dev/mapper/cl-swaprd.lvm.lv=cl/rootrd.lvm.lv=cl/swapfsck.mode=forcefsck.repair=yes"GRUB_DISABLE_RECOVERY="true"GRUB_ENABLE_BLSCFG=true如何扫描和修复Linux磁盘错误如何扫描和修复Linux磁盘错误根据新参数重新生成GRUB菜单配置。[root@localhost~]#grub2-mkconfig如何扫描并修复Linux磁盘错误如何扫描并修复Linux磁盘错误并重启系统:reboot总结至此XFS和Ext4文件系统已经成功扫描修复。
