求助:GPT损坏的磁盘无法通过gdisk修复,如何恢复数据与修复磁盘?
求助:GPT损坏的磁盘无法通过gdisk修复,如何恢复数据与修复磁盘?
先别慌!这种磁盘在读写操作中被强制中断导致的GPT分区表+文件系统双重损坏确实挺棘手,但咱们先把救数据放在第一位,再考虑磁盘修复的事,一步步来:
第一步:先给整个磁盘做镜像,绝对不能跳过!
现在任何对原磁盘的读写操作都可能加重损坏,甚至覆盖可恢复的数据。找一块比损坏磁盘容量大的外部存储,用dd命令做完整镜像:
dd if=/dev/sda of=/path/to/external/disk/sda_backup.img bs=4M status=progress
后续所有操作都在这个镜像文件上进行,原磁盘先别动,放安全的地方。
第二步:尝试用TestDisk恢复GPT分区表
gdisk读不了盘,大概率是GPT的表头或备份表头损坏了,TestDisk是专门干分区表恢复的工具,比gdisk更灵活:
- 安装TestDisk(大部分发行版仓库都有,比如
apt install testdisk或dnf install testdisk) - 运行
testdisk /dev/sda(如果用镜像就替换成镜像路径) - 选择「Create」新建日志文件,然后选中你的损坏磁盘
- 分区类型选「Intel/PC partition」(虽然gdisk显示MBR only,但可能是GPT损坏后系统识别成了MBR)
- 选「Analyze」→「Quick Search」,让它扫描磁盘上的分区痕迹
- 如果扫描到了你原来的GPT分区,选中后按
P可以预览分区里的文件,确认是自己的数据后,按Write把修复后的分区表写入磁盘,重启后再尝试挂载磁盘。
第三步:如果分区表救不回来,直接用PhotoRec恢复文件
要是TestDisk找不到有效的分区表,那就跳过分区表,直接恢复文件——PhotoRec和TestDisk是一套工具,能忽略分区结构直接识别磁盘上的文件:
- 运行
photorec /dev/sda(同样可以用镜像文件) - 选中损坏磁盘,然后选择文件系统类型(如果原来用的是ext4就选「ext2/ext3/ext4」,不确定就选「Other」)
- 选择恢复文件的保存目录必须是外部存储,绝对不能选损坏的磁盘本身
- 开始扫描,它会自动识别并恢复能读取的文件,扫描时间取决于磁盘大小,耐心等就行。
第四步:分区恢复后修复文件系统
要是分区表成功恢复,挂载时还是有问题,再回头处理superblock损坏的问题:
- 先找到分区的备份superblock:
dumpe2fs /dev/sda1 | grep -i superblock
- 用备份superblock运行e2fsck修复:
e2fsck -b 备份superblock的编号 /dev/sda1
比如输出里显示Backup superblock at 32768,就用e2fsck -b 32768 /dev/sda1。
最后提醒一句:现在别再反复挂载、格式化损坏的磁盘,每一次操作都可能让数据更难恢复,先做镜像再动手!
备注:内容来源于stack exchange,提问作者LobaLuna
相关产品推荐
相关产品推荐

