Ubuntu 误删分卷的恢复步骤
一、操作前的关键准备
- 立刻停止对受影响磁盘的一切写入操作(下载、解压、缓存、日志、挂载为可写等),避免覆盖丢失分卷的数据块。
- 优先使用Ubuntu Live CD/USB或GParted Live启动进行恢复,避免在原系统环境中对磁盘产生写入。
- 备份当前磁盘的分区表/分区布局(只读方式),便于回滚:例如使用命令只读查看分区信息(如 lsblk、fdisk -l),或使用 dd 将磁盘前若干 MB 做镜像备份到其它盘(仅读取源盘)。
- 恢复成功率取决于是否发生覆盖与磁盘后续使用情况,无法保证**100%**成功。
二、优先方案 使用 TestDisk 恢复分区表
- 安装并启动:在 Live 环境中执行 sudo apt update && sudo apt install -y testdisk,然后运行 sudo testdisk。
- 选择磁盘与分区表类型:在 TestDisk 中选择目标磁盘(如 /dev/sda),根据磁盘选择分区表类型(常见为 Intel/MBR 或 EFI GPT)。
- 分析并搜索分区:进入 Analyse,先做 Quick Search;未找到则做 Deeper Search。已删除分区通常会标记为 D(Deleted)。
- 核对与预览:用方向键选中疑似丢失的分区,按 P 预览目录与文件,核对大小、位置、文件系统类型是否匹配。
- 写入分区表:确认无误后,按 Enter 标记为“*”(激活),选择 Write 将分区表写回磁盘,输入 Y 确认;退出并重启。
- 挂载验证:重启后或重新插拔磁盘,创建挂载点并挂载分区(如 sudo mount /dev/sda2 /mnt/recovered),检查文件是否完整;建议立即备份重要数据到其他介质。
三、文件系统级恢复 extundelete(仅限 ext3/ext4)
- 适用前提:分卷的文件系统为 ext3/ext4,且删除后该分区未被大量写入覆盖。
- 基本步骤:
- 以只读方式挂载或确保分区不被占用;
- 安装工具:sudo apt-get install extundelete;
- 恢复单个文件:sudo extundelete /dev/sdXY --restore-file path/to/file;
- 恢复整个分区:sudo extundelete /dev/sdXY --restore-all(文件将恢复到当前工作目录下的 RECOVERED_FILES 文件夹)。
- 重要说明:此方法恢复的是“文件内容”,不会重建丢失的分区表;若分区表已损坏或分区被重新格式化,应优先用 TestDisk 恢复分区结构。
四、其它工具与场景
- 图形化方式:使用 GParted Live 启动后查看是否能识别到未覆盖的丢失分区,若可识别且状态正常,可尝试重新挂载或进一步操作(仅查看/挂载阶段不会对分区表写入)。
- 文件类型恢复:当分区结构无法恢复但数据区未被覆盖时,可用 PhotoRec 按文件签名扫描恢复多种类型文件(注意恢复文件将分散存放,需后续整理)。
- 分区表损坏且系统无法启动:在恢复分区表后,如出现 GRUB Rescue 或无法引导,可使用 Boot-Repair 进行引导修复(在 Live 环境中添加 PPA 并运行 boot-repair)。
五、常见注意事项与建议
- 恢复前严禁对目标盘写入;若条件允许,先对目标盘做只读镜像再操作。
- 写入分区表前务必用 P 预览确认文件结构完整,避免误写导致进一步损坏。
- 恢复完成后立即将重要数据完整备份到其它物理盘或云端。
- 数据极其重要或涉及业务连续性时,建议尽快联系专业数据恢复服务,以降低二次损失风险。