处理目录或文件结构损坏导致无法删除问题
问题起因:因为大数据环境,服务器资源有限,磁盘很容易被数据跑满,长期需要手动清理,导致有时候清理出现问题。
问题:
文件无法删除成功,执行ls命令报错:
ls: cannot access blk_xxxxxxxx: Structure needs cleaning
分析:这个错误信息表明文件系统的某个目录或文件的结构损坏,可能是由于磁盘问题、存储设备损坏、系统异常关机等原因引起的。
解决问题:检查和修复文件系统。
1、如果是非根文件系统,做好数据备份后,卸载掉文件系统进行修复就行。
2、如果是根文件系统,需要进入单用户模式,卸载掉根文件系统后对文件系统进行修复。
注意:修复文件系统可能导致数据丢失,所以最好做个重要数据备份或者快照再进行修复。
解决过程:
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、修复完成后,重启操作系统,无法删除的文件已经在修复过程中清理。