- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一次 Linux 下 testdisk+gdisk 恢复 XFS 文件系统及数据的经历
硬盘之前状况,用 gdisk 进行硬盘分区( SATA 标准, 3.6T 容量), 1.6T+2.0T两个
分区,然后用 mkfs.xfs 格式化分区,最后结果就是, GPT 分区表 +两个 XFS 文件系
统的硬盘 (/dev/sdb,/dev/sdb1,/dev/sdb2)
我已无法确定引起这次硬盘错误的原因,但我确实这么做过:
原因一,从另一个硬盘的/home 挂载点复制了大量数据到/dev/sdb1,然后我就将硬盘的
数据线和电源线都拔掉了 ,这个动作在系统运行和关闭的两种情况下都做过 ,(SATA
硬盘是否安全的支持热插拔?)
原因二,在这次准备复制数据的之前,我没有将硬盘固定,也没有平放在台面(有一点斜
度),然后开机 ,(胡乱的猜想着斜坡加载技术)
下面进入正题 :
1,硬盘错误引起分区无法读取,挂载,开始纳闷哪里出了问题
2 ,运行gdisk -l /dev/sdb,显示如下
有警告信息及注意事项,虽然这里的标记 GPT:damaged 说明 GPT 有问题,但最后还
是显示出了有分区的信息存在,(GPT 分区表信息应该没有彻底损坏,不然怎么读取到
两个分区的信息的呢),两个分区里 Code 标记都变成了 0700 (Microsoft basic
data),正常的应该是 8300 (Linux filesystem),这个标记应该说明的是 XFS 文件
系统的 superblock 信息毁了,这是后来经过 XFS 文件系统工具 xfs_repair 知道的
详细分区情况,但是是得出来的结果有问题的
gdisk 检测到五个问题,(惊讶,这么多的问题)
3,进行到这里,我着急了,于是寻求帮助
首先,尝试了 xfs_repair /dev/sdb,这个命令进行了几次,因为中途中断过,这个修
复时间是比较长的,几小时(差不多 3 ,4 小时?)后得到的结果却是无法检测验证到
有效的备份 superblock 信息,(失败,心都凉了)
然后,找到 testdisk 工具,大略的看了下说明就上手做(英文实在是差,仔细地看也
不明白),第一次进行 Analyse 后,完全不知道做什么,就直接退出
然后就去测试查看,运行 lsblk ,gdisk ,没有任何改变,(此刻是没抱什么希望的),
输出的日志文件 testdisk.log 也完全看不懂 ,但我在日志文件里看到了有XFS 这三个
字母的身影,(此时心中还是有一丝喜悦的)
4,继续网上搜索,寻求答案 ,(辛辛苦苦建立的文件数据啊 ,那个心情真是
无奈啊)
使用 testdisk 进行第二次 Analyse(分析目前分区结构及搜寻丢失的分区),经过 6 小
时的分析与搜索后,我大胆的进行了第二个动作,转换分区类型 ,(当时的想法是
inode 及 data block 里记录的信息应该是不会丢失或被覆盖的) ,于是我选择了
Linux reserved (谷歌翻译了一下,“Linux 保留” ,这里是没有Linux filesystem
的,找来找去也没找到更合适的了),再进入子菜单选择了 XFS (还有
XFS2,XFS3 ,XFS4 ,这里是比较疑惑的,网上没有找到任何答案),至此点击写入 ,
然后退出 。再一次阅读 testdisk.log 文件 , (这里有点小插曲 ,我在主文件侠里找不
到 testdisk.log 文件,进行 whereis testdisk.log 搜寻,这个文件怎么会跑
到/usr/src/linux-3.10.3-1-ARCH/testdisk.log 这里了呢)?
5,testdisk.log 文件内容如下 :
这里是系统的一些相关信息
这里是选择了 EFI GPT 选项后得出的结果,在这里就分析出了当前的分区结构 ,只有
一个 Linux Reserved 分区类型的分区,(这里的这个分析是不是肯定的)
这里是应该是选择了 Analyse 选项后再点击quick search 得到的,大概是两段内 ,
第一,对于分区 1文件系统的标记搜索,成功 ,(这个标记是什么,superblock ?,
不是损毁了吗?)。第二,对于分区 2 文件系统的标记搜索,在这里搜索到了很多标记 ,
但是在比对数据(能这样表达吗)时却出现了问题,(这里应该就是为什么会耗时 6 小
时的原因) ,因为数据的信息标记超出了磁盘的整个容量,(这会是什么原因造成的呢)
这里是搜索完成后得到无法恢复分区 2 文件系统的
文档评论(0)