新买了一块 3TB 的硬盘和一个两座的硬盘底座,很开心。由于我的主系统是 Linux, 所以就格式化成了 ext4 分区。在 Windows 系统下可以通过工具 ext2fsd 来访问。朋友说有很多高清电影等资料可以分享,就把硬盘借给他,结果悲剧了:他说在拷贝文件到 2TB 左右时,硬盘挂了,识别不了了。没办法,我只好自己试着修复一下。如后是数据恢复过程的摘要。

通过 dmesg 得到系统提示, GPT 分区表被破坏。使用 GNU Parted 工具恢复一下 GPT 分区表,问题解决。

此时使用 gdisk 工具查看硬盘分区,显示分区为 Microsoft basic data 格式,而我原来的分区为 ext4. 用 gdisk 的命令 t 更换分区类型为 0x8300, 即 Linux filesystem. 保存退出,问题解决。

此时无法加载分区,出现的错误如下:

e2fsck: 超级块无效, trying backup blocks...

e2fsck: Bad magic number in super-block 当尝试打开 /dev/sdh1 时

The 超级块 could not be read or does not describe a correct ext2

文件系统. If the 设备 is valid and it really contains an ext2

文件系统 (and not swap or ufs or something else), then the 超级块

is corrupt, and you might try running e2fsck with an alternate 超级块:

e2fsck -b 8193

此时用 dumpe2fs 工具查看分区信息,得到如下的错误信息:

dumpe2fs 1.41.12 (17-May-2010)

dumpe2fs: Bad magic number in super-block 当尝试打开 /dev/sdh1 时

找不到有效的文件系统超级块.

使用 testdisk 检测硬盘,找到分区的 superblock 位置如下:

819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616

尝试使用备份的超级块加载硬盘分区:

-> % sudo mount -t ext4 -r -o sb=819200 /dev/sdh1 /mnt

mount: wrong fs type, bad option, bad superblock on /dev/sdh1,

missing codepage or helper program, or other error

In some cases useful info is found in syslog - try

dmesg | tail or so

不管这些,直接尝试从 819200 超级块的位置恢复文件系统:

root@memes:~# fsck.ext4 -b 819200 -p -v /dev/sdh1

EADEPOT was not cleanly unmounted, 强制检查.

EADEPOT: Inode 1598038, i_块s is 7830912, 应为 7822912. 已处理.

... ...

分区数据总算是正常找回了,丢失的内容不多。

小结:

在硬盘出现故障时,没想清楚前不要着急着动手修复。

分析故障,首先排除硬件故障,其后排查是否分区表有误。本次修复数据经历中涉及到的分区表使用的是 GPT 格式,因此,绝不可按处理 MBR 分区格式的方法对待。现在, 2TB 以上的硬盘越来越普遍,老旧的 MBR 分区格式逐渐被淘汰,你的工具应该跟上时代。在 Linux 下应该学会使用 gdisk, parted 等较新的工具。 fdisk 等很实用,但只适用于 MBR 格式的分区表。

修复硬盘数据时,首先要将分区格式恢复到正确的配置上。比如 EXT3, NTFS, 等。

修复数据时,不要着急着直接修复,不妨先使用参数 -n 之类的先看看具体情况,如果没什么问题,再直接修复。与 ext2/3/4 相关的工具都在软件包 e2progs 中,包括 e2fsck, dumpe2fs, 等。

testdisk 工具很好用,但涉及底层,操作须谨慎。

参考:

linux ext4 磁盘修复,修复损坏的 ext4 大分区数据相关推荐

  1. linux下磁盘检查修复命令e2fsck

    linux下磁盘检查修复命令e2fsck -a: 检查 partition,如发现问题会自动修复. -b: 设定 superblock 位置. -B size: 指定 size 作为区块大小. -c: ...

  2. mount查看linux分区大小,【128】Linux 中磁盘空间查询df、du和分区fdisk和挂载mount

    内容目录(原文见公众号python宝) 一.Linux 查看磁盘空间可以使用 df 和 du 命令二.linux磁盘分区fdisk命令详解三.Linux挂载命令mount四.挂载分区实例 一.Linu ...

  3. linux的磁盘文件系统特点总结

    背景 我们经常安装操作系统时,会遇到选着文件系统,那到底应该选一个什么文件系统呢?centos/redhat 7 默认将文件系统设置为xfs.拿Centos7.5为例,默认分区的文件系统为xfs,但是 ...

  4. linux服务器硬盘修复,Linux服务器磁盘坏道怎么修复

    Linux服务器磁盘坏道怎么修复 发布时间:2020-06-02 17:23:24 来源:亿速云 阅读:316 作者:Leah Linux服务器磁盘坏道怎么修复?针对这个问题,今天小编总结这篇有关磁盘 ...

  5. Linux 常用系统故障(修复MBR扇区故障、修复GRUB引导故障、遗忘root用户密码、修复文件系统、磁盘配额等)

    修复MBR(主引导记录)扇区故障 故障原因 病毒.木马等造成的破坏 不正确的分区操作.磁盘读写误操作 故障现象 找不到引导程序,启动中断 无法加载操作系统,开机后黑屏 解决思路 应提前做好备份文件 以 ...

  6. linux反复出现文件系统损坏,Linux日常维护之文件系统损坏后的修复

    Linux文件系统损坏后的修复技巧详细介绍 在日常运维中,经常会遇到文件系统损坏的问题,如下图: Linux不正常关机,有时候再次启动时会报文件系统损坏,如何修复文件? 首先会让你输入root用户的密 ...

  7. 最好用的Linux系统磁盘数据修复工具合集!

    磁盘是计算机技术中非常常见的概念,它是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失.但在日常工作中,我们经常会遇到不小心误删数据的情况,因此就需要进行数据恢复,那么Li ...

  8. linux centos7如何格式化磁盘,Linux CentOS 7 磁盘格式化mke2fs、mkfs.ext4、磁盘挂载及手动增加swap空间...

    一. 磁盘格式化 查看系统支持的分区类型: cat /etc/filesystems[root@fxq-1 ~]# cat /etc/filesystems xfs ext4 ext3 ext2 no ...

  9. linux单用户模式修复磁盘,在单用户模式下使用fsck命令修复受损的Mac硬盘

    在Mac上使用磁盘工具来恢复硬盘是官方推荐的方法,不过万一连系统都进不去就操蛋了.所以在很多情况下,在Unix/Linux系统的单用户模式下使用fsck都是最后的救命稻草. fsck 这个命令行工具在 ...

  10. ext3分区修复linux,ext3文件系统超级块损坏修复

    1,一服务器/dev/sdb文件系统损坏,重启后系统启不来,进入单用户模式fsck无法修复,把/etc/fstab中的/dev/sdb注释掉后,系统成功起来. 2,mount挂载/dev/sdb提示b ...

最新文章

  1. C# WinForm程序App.Config数据库连接配置文件的使用过程
  2. 日志中的秘密 Windows登录类型知多少?
  3. VBA编程常用词汇英汉对照表
  4. 20165333第一次课堂测试补漏
  5. 【单调栈 动态规划】bzoj1057: [ZJOI2007]棋盘制作
  6. Java Servlet API中文说明文档
  7. java 输入人名_Java 读取控制台输入
  8. Java基础--反射
  9. 电脑如何设置不休眠_电脑休眠了却没法唤醒?设置一下就好!
  10. Clay:易塑的c#动态对象——第一部分:为什么我们需要它
  11. 蓝桥杯集训之STL和algorithm
  12. Android自定义ScrollBar,android自定义View之垂直的滚动条
  13. Teigha4.0数据结构和读取
  14. 蓝牙耳机买哪种?不错的蓝牙耳机推荐
  15. 华为鸿蒙os logo,华为鸿蒙OS Logo曝光:Powered by HarmonyOS
  16. 2021-08-18
  17. linux awk 字符串匹配,awk匹配字符串
  18. 【论文阅读】UAV-Based Crop and Weed Classification for Smart Farming
  19. 【历史上的今天】10 月 12 日:C 语言之父逝世;西门子诞生;乔布斯推出 NeXT 电脑
  20. 从移动应用创作者到产品总监—专访微软MVP邹建峰

热门文章

  1. 医院设备管理系统方案/案列/软件/APP/小程序/网站
  2. python转js对象_将Python对象转换为PyV8的JavaScript
  3. Java List retainAll 记录坑
  4. qt 部署 错误_Qt 5.9 安装过程报错现象及解决方案
  5. 2022年度GitHub中文Java项目排行榜Top 10
  6. Linux宝塔禁止国外ip访问服务器,屏蔽国外ip访问网站代码
  7. Unity2D 游戏中对象无法显示问题
  8. CSS4.2.3 参考手册.CHM
  9. HTML CSS参考文档,css离线手册
  10. 左耳朵耗子的时间管理法则