Linux系统数据恢复方法与工具指南
在Linux系统中,数据恢复的核心原则是**“停止写入+选择合适工具”**:数据删除后并未立即消失,只是被标记为可覆盖,及时停止写入可避免数据被覆盖;根据数据丢失场景(如误删除、分区丢失、文件系统损坏)选择对应工具,能显著提升恢复成功率。
umount /dev/sdXN)或停止对存储设备的所有操作,防止新数据覆盖原有数据。fdisk -l查看分区表是否正常,若有硬件故障(如磁盘异响、无法识别),需先修复硬件问题;若分区表损坏,可使用testdisk修复。TestDisk是一款开源工具,支持恢复丢失的分区表、修复引导扇区,适用于FAT、NTFS、EXT2/3/4等文件系统。
sudo apt-get install testdisk(Debian/Ubuntu)、sudo yum install testdisk(CentOS/RHEL)。sudo testdisk,选择目标磁盘(如/dev/sda);Extundelete专门用于恢复EXT3/EXT4文件系统中被删除的文件,通过inode信息还原文件。
sudo apt-get install extundelete;e2fsprogs-devel依赖后,下载源码编译)。umount /dev/sdXN);sudo extundelete /dev/sdXN --restore-all,恢复所有文件至RECOVERED_FILES目录;--restore-file(按文件名)或--restore-inode(按inode号)。Photorec是TestDisk的组件,专注于恢复照片、视频、文档等文件(通过文件头识别,无需依赖文件系统)。
sudo photorec /dev/sdXN,选择文件类型(如“Photos”),指定恢复目录即可。sudo apt-get install foremost;sudo foremost -t jpeg,pdf -i /dev/sdXN -o /recovery/(-t指定类型,-i输入设备,-o输出目录)。/etc/scalpel/scalpel.conf启用所需文件类型(如取消# jpeg jpg y的注释),然后运行sudo scalpel /dev/sdXN -o /recovery/。若存储设备存在物理损坏,需先创建映像再恢复数据,避免进一步损坏。
sudo dd if=/dev/sdXN of=/mnt/backup.img bs=4M conv=noerror,sync(if为输入设备,of为映像文件,bs为块大小)。sudo ddrescue /dev/sdXN /mnt/backup.img /mnt/logfile.log(logfile记录恢复进度,可重复运行)。若之前使用tar、rsync或mysqldump等工具做过备份,恢复是最可靠的方式:
tar -xzvf backup.tar.gz -C /path/to/restore(-C指定恢复目录)。rsync -av /path/to/backup/ /path/to/original/(同步备份目录至原目录)。mysql -u username -p database_name < backup.sql(导入SQL备份文件)。cron设置自动备份(如每天凌晨备份/home目录),备份介质建议存放在异地。mount -o ro /dev/sdXN /mnt)。extundelete,FAT/NTFS用testdisk),避免盲目使用工具导致二次损坏。