一种基于Linux文件系统的数据恢复方法_武汉病例轨迹

一种基于Linux文件系统的数据恢复方法_武汉病例轨迹问题阶段起因:昨天晚上思路不是很清晰(上了一天班回来有点蒙),还是强忍着疲惫想搞事情,结果悲剧了……本来想拿SD卡做一张linux烧录卡,烧录脚本是很久以前写的,有git记录,一直不成功,就回退了几次提交,然后执行的时候没有给脚本传参(/dev/sd**),结果脚本中默认磁盘设备为/dev/sdb,在现在电脑上是一块数据磁盘,执行到一半的时候由于某些原因意外退出,但还是有一些命令执行,比

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

问题阶段

起因:
昨天晚上思路不是很清晰(上了一天班回来有点蒙),还是强忍着疲惫想搞事情,结果悲剧了… …
本来想拿SD卡做一张linux烧录卡,烧录脚本是很久以前写的,有git记录,一直不成功,就回退了几次提交,然后执行的时候没有给脚本传参(/dev/sd**),结果脚本中默认磁盘设备为/dev/sdb ,在现在电脑上是一块数据磁盘,执行到一半的时候由于某些原因意外退出,但还是有一些命令执行,比如最致命的一条:
dd if=/dev/zero of=${node} bs=1024 count=1 conv=fsync conv=notrunc
node指向的就是/dev/sdb
然后把LVM2 label、meta data、分区表都给删除了,由于此硬盘在/etc/fstab中有记录,所以今天开机有卡主了,开始以为磁盘接触不良,进入linux recovery模式屏蔽掉fstab中相关选项后进入系统. ls -l /dev/sd* 发现只有/dev/sdb 没有分区信息,接着执行fdisk /dev/sdb, p打印信息
Command (m for help): p
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x*********

同样没有分区信息,回想昨晚的操作,终于……(一身冷汗)

处理过程

冷汗过后就需要冷静的思考,既然只是删除了磁盘的头信息,那么分区实际上还是存在的,而且数据也应该完好的存在.

尝试一:

首先找到一篇lvm数据恢复的文章,PC 上的 LVM 灾难修复,虽然文章中类似情景,但是恢复的时候需要/etc/lvm/backup/ 中有对应的lvm备份信息,而我的磁盘但是不是在现在的机器分的所以没有相应信息. 文章至少透露出一个重要信息,可以恢复,应该直接恢复出分区表即可.
还有一篇文章跟上面一篇很像:一次Linux LVM VG丢失完整找回过程记录

尝试二:

挂载到windwos上用diskgenius扫描分区表,能够看到一些零星的数据,但都是乱码.当时心又亮了一截, 此路不通.

尝试三:

直接查找linux的数据恢复软件,最终找到一款靠谱的:testdisk 官方文档
简单介绍:
它不能从故障的存储设备上拷贝数据,相反,它可以解决一些因为分区的原因而 造成数据无法访问的问题。该工具可以帮助你恢复丢失的分区,让磁盘重新变得可以启动,整理分区表,恢复主引导记录,恢复引导扇区以及文件系统表,可以从 NTFS、FAT、exFAT和ext2类型的文件系统中恢复被删除的文件,还能从已经删除了的NTFS、FAT、exFAT和ext2/3/4文件系统 中拷贝文件。
尝试:
testdisk /dev/sdb
选择硬盘后回车:
Select a media (use Arrow keys, then press Enter):
Disk /dev/sdb - 500 GB / 465 GiB - *******************

选择分区:
Please select the partition table type, press Enter when done.
[Intel ] Intel/PC partition
[EFI GPT] EFI GPT partition map (Mac i386, some x86_64...)
[Humax ] Humax partition table
[Mac ] Apple partition map
[None ] Non partitioned media
[Sun ] Sun Solaris partition
[XBox ] XBox partition
[Return ] Return to disk selection

选择[Intel ] Intel/PC partition

选择动作:
[ Analyse ] Analyse current partition structure and search for lost partitions
[ Advanced ] Filesystem Utils
[ Geometry ] Change disk geometry
[ Options ] Modify options
[ MBR Code ] Write TestDisk MBR code to first sector
[ Delete ] Delete all data in the partition table
[ Quit ] Return to disk selection

这里选择[ Analyse ] Analyse current partition structure and search for lost partitions
过一会会显示扫描到分区表信息,选择写入到磁盘,然后提示重启电脑(其实就是重新加载硬盘).
怀着一颗忐忑的新重启后惊喜的发现,分区已经恢复,检查数据一切正常:
`Command (m for help): p
Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x*********

Device Boot Start End Sectors Size Id Type
/dev/sdb1 * ####### ####### ####### xxG 83 Linux
/dev/sdb2 ####### ####### ####### xxG 83 Linux
/dev/sdb3 ####### ####### ####### xxG 7 exFAT
`

遇事冷静思考,寻找最优解决方案.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:http://www.javaforall.cn/234644.html原文链接:http://www.javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • UIScrollView 和 UIPageControl 实现启动滑动图[通俗易懂]

    UIScrollView 和 UIPageControl 实现启动滑动图

  • JS后退一页, JS返回上一页代码,

    JS后退一页, JS返回上一页代码,Javascript返回上一页: 1.history.go(-1),返回两个页面:history.go(-2); 2.history.back(). 3.window.history.forward()返回下一页 4.window.history.go(返回第几页,也可以使用访问过的URL) 例: <ahref="java…

  • 知识图谱—知识推理综述(三)

    知识图谱—知识推理综述(三)知识图谱—知识推理综述(三)接上一篇文章知识图谱—知识推理综述(二)3基于表示的知识推理3.1方法简述在之前所介绍的知识推理中,都显示的定义了知识推理所需要的规则,条件等等离散符号。而在基于表示的知识推理中,我们第一步是将知识图谱中的节点和关系进行连续向量空间的映射,需要将其物理表示映射为数值表示,然后在利用数学中的相关算法,通过数值计算的方式进行知识推理。对于映射的向量空间而言,其可以是一个或者多个的向量或者矩阵。基于表示的推理的核心在于“如何表示”,在表示学习的过程中,我们需要的是让算法自

  • ov7725 stm32_如何给实验培养皿拍照

    ov7725 stm32_如何给实验培养皿拍照平台:STM32ZET6(核心板)+ST-LINK/V2+SD卡+USB串口线+鹰眼OV7725摄像头(注意,为了减少摄像头连线的麻烦,建议初学者选取单片机时选用带有摄像头接口的板子)工程介绍:需要移植FatFs文件系统,同时需要了解BMP位图的存储数据结构,从而实现将摄像头输出的RGB565像素数据直接输出到sd卡上,保存为*.bmp文件。1.BMP位图的存储1.1 数据结构介绍//BMP头文…

  • 一款轻量级,可快速上手的开源后台系统

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:funnyZpC www.cnblogs.com/funnyzpc/p/13777881.html mee-a…

  • L2-029 特立独行的幸福

    L2-029 特立独行的幸福原题链接对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性就是依附于它的的幸福数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号