热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

拯救数据

拯救数据--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
  当一个放着几百G数据的硬盘因为误操作而分区全毁时,是什么心情?开窗跳楼?有这个心也没这个胆,我恐高,肯定跳不出去的。。。后悔自己手痒不该乱来?后悔能让数据回来么?所以只有沉住气了,只要还有3.5寸盘在,数据就有希望找得回来的。。。

  话说这个惨剧发生在春节前补的三天年假的第一天下午,想反正本来就要重装系统,不如再试一下传说中的Ubuntu,下载刻盘,进入安装界面,居然没认出我做RAID的硬盘。。。GOOGLE之,发现要手动加载一个模块,加载后硬盘和分区都认出来了,比较奇怪的是除了那棵看上去比较正常的树状分区表外,每个分区还被单独列了一遍,那我该选哪个?有点晕。。。也是N年不碰LINUX了,忘了仔细确认一下各分区的device path,凭所谓的“经验”(其实根本就不存在),选了看上去比较像正常的树状中的一个分区(搏错了。。。),开始安装,进度条显示正在格式化分区,几秒后恶梦降临,一个对话框弹出说无法挂载分区,点了OK,回到分区界面,但。。。之前还每个都列了两遍的分区呢?咋一个都没了。。。当时就懵了。。。400G的硬盘啊。。。怀着侥幸心理重启了一下,启动菜单都么了,彻底废了。。。这就回到原始社会了?绝对不行,不是传说中专做数据拯救的人,多数情况下靠软件就能恢复么,那我应该也可以的

  还好还有个本本活着。。。继续Google,找到一个号称是很好的国产分区软件DiskGenius,不过是DOS下的,他的原理是按某种规律搜分区表的结束标志位,所以只要放分区表的地方没被破坏,理论上都能找回来。从doshome.com下了集成这个的超级急救盘光盘版,找到“重建硬盘分区表”,试跑了一下,自动模式不准,估计类似标志位的地方太多了,在手动模式下,它会把每次猜的分区都让你确认一下,所以一般来说,只要还记得之前分区的大致大小(比如可能是30G左右之类的),基本上都蛮好判断哪些是假的。经过多次尝试,终于把除了第一个分区之外的所有分区都找回来了,这软件还真是不错,第一个分区估计是被LINUX格式化得太惨了,彻底毁了,算了,反正是个XP,上面没多少数据。。。况且我还有下一招。。。

  分区回来后,粗地查看了一下,除了第一个分区外,其它分区的目录显示都正常,当时松了口气,想貌似损失很小(其实又大意了),随便装了个XP,进入第二阶段:文件级恢复。由于第一个分区是被重建后格式化的,所以特地找那种支持误格式化恢复的,装了个Easy Recovery Pro,这个软件还真是蛮EASY的,选了C盘,设了一些参数,让它自己搜吧,过了一阵,整个C盘原来的文件就都出来了,虽然有一大部分还是丢了,但最主要的Document and Settings目录恢复出来了,有这个就足够了。

  至此,我以为抢救工作完成了,只要重装下系统就可以了。谁知道新刻的盘装OS时,装到一半说某文件坏的,以为没刻好,又刻一张,又坏在同一个地方,么想法了。重新从本本上的ISO刻,这次好了,装驱动,居然声卡显卡驱动接连报解压出错,这就很可疑了,一个不好的念头在脑子中闪过。MASAKA,那个LINUX的分区格式化居然是会对整个硬盘写的?这可灾大发了,必须要做一个完整地检查了。从网上又下了一遍驱动,把好的和坏的做二进制比较,果然,两个文件中各有长为4K的区域被写了一个字节的1和4095个0。这个至少还算个不坏的消息吧,至少它写的数据是一样的。接下来就该找它是按什么规律写的了,随手点了硬盘上几个比较小的RAR测试一下,不是个个都坏,似乎还有点救,找了个本本上有好的版本的400多M的文件拿来再作一下比较,结果是每隔128M就被写了4K,按这个规律,128M以上的文件很难幸免了。最大的一个区里放的游戏和各种收藏了还没来得及压或刻的片子,估计全灭了。不过工作区的代码之类应该中的概率很少,也算一个安慰吧。。。

  按这个规律写了个程序对整个硬盘作了一遍检查,结果和预计一样,工作区受损的大多是那些VC编译中生成的很大的临时文件,代码只有少数几个文件中了,反正也有备份,而娱乐区300G不到的数据里,有合计220G的文件受损。。。不过看上去大多数还是能下得到的,但有几部可能历史久了点,估计很难找到源了。不过又发现了BT下载的一个好处,有几十G的数据,因为种子文件还在,直接拉过去重新校验一下,就可以只下被破坏的那部分了。可是BT下的毕竟是少数,大量收藏用的DVDRIP的片子都是通过EM下的,EM居然没这个功能,真是Feature到用时方恨少啊,甚至想自己去下EM的代码来写一个了。。。想想还是算了,不就是多挂几天么,还是让本本受点累,我休息一下吧。。。

  至此,整个灾害拯救和评估过程结束,10天长假中的前一半就耗在这堆烂事上了。灾后重建就得从长计议,慢慢来了。从这件事,总结出这几个经验:

  分区表要记得备份,这样即使不小心删了,恢复起来是很简单的。分区不见或被格式化并不可怕,千万不要过早放弃,只要用适当的软件,还是可以很好的恢复的(至少表面上是这样。)

  家里备一张类似“超级急救盘”这样的盘还是很有必要的

  BT在这种时候还是有其独特的优势的,EM么,但愿有人能做个类似的功能出来。做人要勤快,不能懒,能刻盘时就刻盘,甚至有人说要给我做“异地容灾备份”(其实就是拿硬盘来COPY)手痒想折腾时最好查一下RP值,太低的话还是歇几天吧

  当然,“罪恶”的根源之一Ubuntu是不能轻易放过的,不能让我的数据白白牺牲了,所以春节的后一半假期就耗在这个上面了,但事实证明Ubuntu的确是值得一试的,比一年多前初试Vista时的感觉好得多了,欲知Ubuntu的庐山真面目,且听下回分解。

  原文作者:freelancerhc
推荐阅读
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu安装常用软件详细步骤
    目录1.GoogleChrome浏览器2.搜狗拼音输入法3.Pycharm4.Clion5.其他软件1.GoogleChrome浏览器通过直接下载安装GoogleChro ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文讨论了在Linux系统中,使用chown命令将django项目目录下的static目录的拥有者从root改为eureka的问题。作者尝试了多种命令,包括chown和sudo chown等,但都没有成功修改拥有者。文章提供了相关目录的权限信息,并补充了项目所在磁盘和操作系统的信息。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • STM32与FPGA的对比及学习建议
    本文对比了野火STM32F103指南针板和Xilinx的PYNQ-Z2板(ZYNQ-7020),介绍了野火STM32F103指南针板的学习资料和讲解视频的详细程度,建议初学者学习野火的资料。同时,介绍了STM32开发所用的Keil程序和C指针的重要性。对于ZYNQ-7020的开发,提到了其自带的Linux、Ubuntu18.4系统以及使用SD卡烧入镜像的方法。 ... [详细]
  • 本文介绍了如何在使用emacs时去掉ubuntu的alt键默认功能,并提供了相应的操作步骤和注意事项。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
author-avatar
精典伏击
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有