Ubuntu 分区恢复实用指南
一、先做的三件事
- 立刻停止对疑似丢失分区所在磁盘的一切写入操作(下载、安装、拷贝、格式化等),避免覆盖丢失分区的扇区,降低恢复成功率。
- 确认设备名称,避免误操作其他盘:使用命令查看磁盘与分区,例如:lsblk、sudo fdisk -l。
- 若涉及系统盘且无法进入系统,优先准备一个Ubuntu Live USB或GParted Live启动介质,在外部环境中进行只读或最小写入操作。
二、方法一 使用 TestDisk 恢复分区表(优先)
- 安装与启动:在 Ubuntu 或 Live 环境中执行
sudo apt update && sudo apt install testdisk
sudo testdisk
- 基本流程:
- 选择“Create”新建日志;2) 选中目标磁盘(如 /dev/sda);
- 选择分区表类型:Intel/PC partition(MBR)或EFI GPT(GPT);
- 进入“Analyse”→“Quick Search”,未找到再用“Deeper Search”;
- 在列表中找到丢失分区(常见标记为“D/Deleted”或未标记),按 P 预览验证文件结构;
- 选中后按“Enter”标记为“*”(激活),再选“Write”写入分区表,确认并重启;
- 系统识别后,挂载分区验证数据:
sudo mkdir -p /mnt/recovered
sudo mount /dev/sdaX /mnt/recovered
ls /mnt/recovered
- 要点:全程避免对目标盘写入;写入分区表前务必用 P 预览确认大小、文件系统与文件是否完整。
三、方法二 图形化方式 GParted Live
- 制作并启动:下载 GParted Live 镜像,用 Rufus 或 balenaEtcher 写入 U 盘,从 U 盘启动进入 GParted Live。
- 恢复思路:
- 若只是分区被删除但空间仍在,可在图形界面中查看未分配空间,按原文件系统类型(如 ext4)新建分区并应用;
- 若能看到“未知/未识别”的分区,说明分区表项可能仍在,优先改用 TestDisk 恢复分区表,再在 GParted 中检查与挂载。
- 适用场景:更直观地处理未分配空间或可见但未挂载的分区;当分区表损坏时仍以 TestDisk 为主。
四、方法三 分区无法恢复时的文件级恢复(extundelete)
- 适用前提:分区表无法找回,但分区数据区未被覆盖;仅适用于 ext3/ext4。
- 操作步骤:
- 卸载目标分区(若已挂载):sudo umount /dev/sdXY;
- 安装工具:sudo apt-get install extundelete;
- 恢复全部:sudo extundelete /dev/sdXY --restore-all(恢复文件会生成在 RECOVERED_FILES 目录);
或恢复单个文件:sudo extundelete /dev/sdXY --restore-file 路径/到/文件;
- 将恢复出的文件拷贝到另一块磁盘,避免写回原盘。
- 注意:执行前确保分区为只读或已卸载;对 NTFS/FAT 等文件系统,请改用支持相应文件系统的工具。
五、常见问题与修复
- 无法开机(GRUB 救援/引导丢失):
- 使用 Boot-Repair:sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt update && sudo apt install -y boot-repair,运行后选择“Recommended repair”;
- 或手动修复:在 Live 环境中挂载系统分区并 chroot,执行 update-grub2 与 grub-install /dev/sda。
- 文件系统错误:对具体分区执行 sudo fsck /dev/sdaX 检查并修复。
- UUID 变化导致无法挂载:用 sudo blkid 查看新 UUID,更新 /etc/fstab 对应条目。
- 硬件健康:用 SMART 工具检查磁盘状态,排除坏道等硬件故障。
- 风险提示:若分区已被重新分区、格式化或大量写入覆盖,恢复成功率显著下降,建议尽快断电并寻求专业数据恢复服务。