Linux云服务器文件删除恢复方法命令extundelete工具testdisk使用
如果不小心删除了系统盘的文件,尤其是使用了rm -rf * ,请立即停止对磁盘的写入,并且使用数据恢复软件进行恢复(下文有详细的步骤)。立即停止对磁盘的写入实际情况可能没那么容易。
服务器可能是云服务器也可能是物理机,下面是可能的情况以及操作方法:
1、云服务器:立即去控制台创建快照(防止系统运行继续写入数据),然后使用该重新创建一个服务器实例,再单独挂载一块磁盘,接下来的恢复都将在该磁盘进行
2、物理机:关机,将系统盘挂载到另一台物理机,接下来的恢复都将在这台物理机进行
开始恢复:推荐使用这两款软件,extundelete(操作简单,只支持ext文件系统)、testdisk(操作稍复杂,支持多文件系统,如fat、ext等常见文件系统)
* 该教程不适用XFS文件系统,关于XFS文件系统的恢复请移步至我的另一篇文章:https://www.cnblogs.com/yzeng/p/18131290
extundelete使用方法:
wget https://github.com/curu/extundelete/releases/download/v1.0/extundelete
chmod a+x extundelete
./extundelete --restore-all /dev/sda1
操作比较简单,下载授权运行即可,/dev/sda1是你要恢复的盘符路径,如果不知道,请使用 fdisk -l 命令查看(第一列即是)
执行完后恢复的文件将在RECOVERED_FILES目录下
testdisk使用方法:
1、下载并解压:
wget https://www.cgsecurity.org/testdisk-7.2.linux26-x86_64.tar.bz2
tar xjf testdisk-7.2.linux26-x86_64.tar.bz2
如果无法压请安装bz2插件 yum install bzip2
2、运行应用,选择要恢复的文件
cd testdisk-7.2/ ./testdisk_static
↑ 进入目录运行主程序
↑ 选择第一项,按回车
↑ 按上下键选择需要恢复的磁盘,回车选择[Proceed]进入下一步
↑ 选择文件系统,根据自己实际情况来,Linux选择默认的第一项,回车进入下一步
↑ 接着选择第二项Filesystem Utils,回车下一步
↑ 这一步注意,按右方向键选择[List]按回车进入下一步
↑ 此时将列出文件列表(红色的为被删除的文件),使用上下键+回车键进入你要恢复的目录,光标停留在文件/目录上按c键进行恢复,选择目标路径后再按c键恢复到目标路径
以上就是数据恢复的方法,祝各位都能成功恢复误删的文件。
另外为避免误删,养成良好的操作习惯,在使用rm -rf * 的时候一定要再确认一遍当前目录、当前服务器,如果是使用xshell工具还要再次确认当前命令是否仅对当前窗口有效(我曾经就因为“发送命令到所有窗口”导致误删了重要的文件)