处理目录或文件结构损坏导致无法删除问题

发布时间 2023-09-20 17:34:13作者: 难止汗

 问题起因:因为大数据环境,服务器资源有限,磁盘很容易被数据跑满,长期需要手动清理,导致有时候清理出现问题。

 

问题:

文件无法删除成功,执行ls命令报错:

ls: cannot access blk_xxxxxxxx: Structure needs cleaning

 

分析:这个错误信息表明文件系统的某个目录或文件的结构损坏,可能是由于磁盘问题、存储设备损坏、系统异常关机等原因引起的。

 

解决问题:检查和修复文件系统。

  1、如果是根分区以外的分区,做好数据备份后,umount掉文件系统进行修复就行。

  2、如果是根分区,需要进入单用户模式,umount掉根分区后对文件系统进行修复。

 

解决过程:

  1、重启系统,在重启操作系统过程中,当进度进行到GRUB引导菜单时,按“e”键,进入编辑启动项。

  2、找到linux开头的行,在最末尾添加以下参数(注意该添加项与最末尾的字符之间是有空格的):

init=/bin/bash rd.break

  3、按下 “Ctrl + X” 来启动,这将在启动时中断启动过程,进入一个仅包含基本功能的环境。

  4、进入命令输入行后,输入命令进行文件系统修复操作。

    4.1、卸载根分区

umount /dev/mapper/centos-root

    4.2、修改文件系统(我这里是xfs文件系统,其他文件系统类型修复命令可能不同)。

xfs_repair /dev/mapper/centos-root

  5、修复完成后,重启操作系统,无法删除的文件已经在修复过程中清理。