当你在Linux系统中不小心使用rm
命令删除了重要文件时,有几种方法可以尝试恢复数据。以下是详细的恢复方案:
重要提示:在发现文件被误删后,立即停止对该磁盘的任何写入操作,因为新数据可能会覆盖被删除文件占用的空间。
# 安装extundelete
sudo apt-get install extundelete # Ubuntu/Debian
sudo yum install extundelete # CentOS/RHEL
# 查看可恢复文件
sudo extundelete /dev/sdX --restore-all
# 恢复特定文件
sudo extundelete /dev/sdX --restore-file /path/to/deleted/file
# 恢复特定目录
sudo extundelete /dev/sdX --restore-directory /path/to/deleted/dir
# 安装testdisk
sudo apt-get install testdisk # Ubuntu/Debian
sudo yum install testdisk # CentOS/RHEL
# 运行photorec
sudo photorec
# 按照向导选择磁盘和恢复选项
# 安装scalpel
sudo apt-get install scalpel # Ubuntu/Debian
sudo yum install scalpel # CentOS/RHEL
# 配置scalpel
sudo cp /etc/scalpel/scalpel.conf /etc/scalpel/scalpel.conf.orig
sudo nano /etc/scalpel/scalpel.conf # 取消注释要恢复的文件类型
# 运行scalpel
sudo scalpel /dev/sdX -o /recovery/output/directory
如果你有定期备份的习惯,可以从备份中恢复:
# 使用rsync备份恢复
rsync -avz /backup/location/ /original/location/
# 使用tar备份恢复
tar -xzvf backup.tar.gz -C /original/location/
# 列出快照
sudo lvdisplay
# 恢复快照
sudo lvconvert --merge /dev/vgname/snapshotname
如果数据极其重要且上述方法无效,可以考虑专业数据恢复服务。
为避免未来发生类似问题:
alias rm='rm -i'
让rm命令询问确认trash-cli
代替rm(将文件移至回收站)mv
到临时目录代替直接删除记住,数据恢复的成功率取决于删除后磁盘的使用情况,越早尝试恢复,成功率越高。