Ubuntu 分区恢复步骤
一 准备与环境
- 使用Ubuntu Live USB(Try Ubuntu)启动,避免对故障盘写入;将重要数据备份/拷贝到其他介质。
- 确认设备名:在终端执行sudo fdisk -l,常见为**/dev/sda**(SATA/USB)或**/dev/nvme0n1**(NVMe);全程只从 Live 环境操作原盘。
- 如条件允许,先对原盘做整盘镜像(只读方式)再恢复,降低二次损伤风险。
二 场景一 分区表丢失但数据仍在(用 TestDisk 重建分区表)
- 安装并启动:sudo apt update && sudo apt install -y testdisk;执行sudo testdisk。
- 选择磁盘 → 选择分区表类型(常见为Intel/MBR或EFI/GPT)→ 进入Analyse。
- 先做Quick Search;若未找到或结果不完整,再做Deeper Search。
- 在列表中用方向键选中旧分区,确认起始/结束扇区正确,按P可预览文件验证;将需要恢复的分区标记为P(主)/L(逻辑)。
- 回到主菜单选择Write写入分区表,确认保存;重启后在 Live 中尝试挂载验证:
- sudo mount /dev/sdXY /mnt && ls /mnt
- 若分区已可见但系统仍无法启动,见“步骤四 GRUB 修复”。
三 场景二 分区不可挂载或文件系统损坏(先救文件再修分区)
- 只读方式挂载检查:sudo mount -o ro,noexec,noload /dev/sdXY /mnt;如能挂载,先拷贝关键数据到其他盘。
- 谨慎修复文件系统(仅在确认无覆盖风险时):sudo fsck /dev/sdXY;修复会改写元数据,优先用于“能挂载但报错”的情况。
- 若无法挂载或目录结构损坏,使用文件恢复工具(在 Live 环境、目标盘只读):
- extundelete(ext3/ext4):sudo apt install extundelete;示例:
- 恢复单个文件:sudo extundelete /dev/sdXY --restore-file /path/in/partition/file
- 恢复全部:sudo extundelete /dev/sdXY --restore-all
- PhotoRec(按文件签名“挖数据”,目录结构不保留):sudo apt install photorec;选择磁盘/分区与输出目录后按类型恢复。
- foremost(文件头尾特征恢复):sudo apt install foremost;示例:foremost -t jpg,pdf -i /dev/sdXY -o /recover/out
四 场景三 分区已恢复但无法启动(修复 GRUB 引导)
- 挂载系统分区并 chroot:
- sudo mount /dev/sdXY /mnt
- sudo mount --bind /dev /mnt/dev && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys
- sudo chroot /mnt
- 若为 UEFI 启动:挂载 EFI 分区(如 /dev/sdXZ 为 FAT32,挂载到 /boot/efi),然后执行:
- apt update && apt install --reinstall grub-efi-amd64
- update-grub
- efibootmgr -v(确认 ubuntu 启动项存在;必要时 efibootmgr -c -d /dev/sdX -p Y -L “ubuntu” -l \EFI\ubuntu\shimx64.efi)
- 若为 Legacy/MBR 启动:
- apt update && apt install --reinstall grub-pc
- grub-install /dev/sdX
- update-grub
- 退出并重启:exit → sudo umount -R /mnt → reboot。
五 注意事项与常见误区
- 恢复前严禁向原盘写入(下载、解压、缓存、fsck 等都应避免或仅在只读/备份盘进行)。
- 写入分区表(TestDisk Write)前务必确认分区起始/结束与原先一致;不确定时先备份日志与扫描结果。
- 文件系统修复(fsck)可能改变元数据,优先用于“能挂载但报错”的场景;无法挂载时优先用extundelete/photorec抢救文件。
- 若数据极其重要或存在物理坏道/SSD TRIM影响,尽快断电并寻求专业恢复服务。