误格式化后数据可恢复,因格式化仅重置元数据而不擦除数据区;但必须立即停写原盘,否则新写入会覆盖原始数据,导致永久丢失。

误格式化后必须立刻停写原盘
格式化操作本身不擦除数据,只重置文件系统元数据。但只要继续往该分区写入任何内容(包括安装软件、保存日志、甚至运行photorec自身),就可能覆盖尚未恢复的文件块。真实案例中,有用户在误格式化/dev/sdb1后直接在该分区编译testdisk,导致前200MB原始数据永久丢失。
正确做法是:
• 拔掉或卸载待恢复设备(sudo umount /dev/sdb1)
• 用另一块硬盘/U盘挂载为恢复目标(如/mnt/recover)
• 所有操作全程使用Live USB环境更稳妥(避免系统自动写盘)
启动PhotoRec时选“整个磁盘”而非单一分区
格式化会破坏分区内的文件系统结构,但原始数据仍散落在物理扇区中。如果只选已格式化的/dev/sdb1,PhotoRec会尝试解析其当前空文件系统,大概率跳过大量有效数据块。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
应进入PhotoRec主界面后:
• 用方向键高亮显示/dev/sdb(整块磁盘,不含数字后缀)
• 按Enter确认 → 进入分区列表页
• 选择[Whole disk]选项(不是某个具体分区)
• 再按Enter,此时PhotoRec才会执行真正的扇区级暴力扫描
photorec命令行参数比交互式界面更可控
交互式界面默认启用快速扫描,对格式化场景效果差。命令行可强制深度模式并跳过干扰项:
sudo photorec /d /mnt/recover /cmd /dev/sdb "search" "ext2" "disable" "all" "enable" "jpg" "png" "docx" "pdf" "quit"
说明:
• /d /mnt/recover:指定输出目录(必须提前mkdir -p /mnt/recover)
• /cmd:启用命令行模式,避免交互阻塞
• "search":开始扫描
• "ext2":告诉PhotoRec按ext2/ext3/ext4签名规则匹配(即使当前是空ext4分区)
• "disable all" + "enable xxx":只恢复关键类型,大幅缩短耗时且减少垃圾文件
恢复后的文件名和路径全是乱码,怎么识别有效数据?
PhotoRec不恢复原始文件名和目录结构,所有文件都以f0000000.jpg、f0000001.pdf等命名。靠人工翻找效率极低,需配合校验:
• 先用file f0000000.jpg确认实际类型(常有扩展名错配)
• 对文档类批量检查头信息:head -c 100 f0000005.docx | strings | head -5看是否含PK(ZIP头)或WordDocument
• 照片可用identify -verbose f0000000.jpg 2>/dev/null | grep -E "(Geometry|DateTime)"提取尺寸和拍摄时间
• 最关键一点:别依赖文件名排序,PhotoRec按发现顺序写入,最早恢复的文件未必是最早删除的

















