在 CentOS 上误删文件,能否恢复主要取决于 文件删除的方式、文件系统类型、是否有备份以及是否继续写入数据。下面按常见场景给你一套实用排查与恢复方案。
请先确认以下几点:
删除方式
rm / rm -rf ❌(最难恢复)文件系统
df -T
ext4:有恢复可能xfs:恢复难度大(但仍可尝试)tmpfs / 内存盘:基本无法恢复是否已写入新数据
如果是桌面环境:
ls ~/.local/share/Trash/files/
lsof | grep deleted
如果看到文件:
cp /proc/<PID>/fd/<FD> /恢复路径
✅ 这是成功率最高的情况
yum install e2fsprogs-devel gcc -y
wget http://extundelete.sourceforge.net/extundelete-0.2.4.tar.bz2
tar xjf extundelete-0.2.4.tar.bz2
cd extundelete-0.2.4
./configure
make
make install
umount /dev/sdXn
extundelete /dev/sdXn --restore-directory /path/to/dir
extundelete /dev/sdXn --restore-all
恢复文件在:
RECOVERED_FILES/
⚠️ 必须卸载分区,否则可能覆盖数据
yum install testdisk -y
testdisk
✅ 支持 ext4 / xfs / fat32
❌ 操作偏复杂
yum install xfsprogs -y
⚠️ XFS 元数据不保留删除信息,恢复成功率较低
✅ 更适合数据未覆盖的情况
dd 做磁盘镜像yum install trash-cli -y
trash-put file
alias rm='rm -i'
rsynctar你可以直接告诉我:
我可以给你一步一步可执行的恢复方案。