记一次有惊无险的Linux数据恢复过程
问题阶段
起因:
昨天晚上思路不是很清晰(上了一天班回来有点蒙),还是强忍着疲惫想搞事情,结果悲剧了… …
本来想拿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
`
遇事冷静思考,寻找最优解决方案.
记一次有惊无险的Linux数据恢复过程相关推荐
- Linux服务器硬盘故障后恢复数据的方法和数据恢复过程
[数据恢复故障描述] 一台linux网站服务器,DELL R200,管理约50个左右网站,使用一块SATA 160GB硬盘.正常使用中突然宕机,尝试再次启动失败,将硬盘拆下检测时发现存在约100个坏扇 ...
- linux reiserfs文件系统损坏后的数据恢复过程记录
[数据恢复故障描述] 一台IBM X3850服务器,由4块146G SAS硬盘组成RAID5作为存储介质,操作系统为SUSE LINUX,文件系统全部是reiserfs. 分析后得知:之前的硬盘数据组 ...
- linux从接通电源到操作系统启动,第4章-Linux引导过程及原理要点.ppt
<第4章-Linux引导过程及原理要点.ppt>由会员分享,可在线阅读,更多相关<第4章-Linux引导过程及原理要点.ppt(98页珍藏版)>请在人人文库网上搜索. 1.Li ...
- linux 数据恢复
Linux 数据恢复通常可以使用下列方法之一: 使用备份:如果你在系统损坏之前已经做过备份,那么可以使用备份来恢复数据. 使用系统安装盘:如果你有系统的安装盘,则可以使用安装盘来重装系统,在重装过程中 ...
- linux 文件恢复 软件,用于Linux数据恢复的前5大软件
数据恢复是为了确保硬盘驱动器的内容在计算机内置功能的帮助下或安装任何第三方软件程序时都没有任何问题和问题.完全避免危机的最佳方法是确保在这方面做了足够的准备工作,以便启动灾难恢复或灾难恢复计划.编写本 ...
- 记一次阿里云linux服务器中毒处理
记一次阿里云linux服务器中毒处理 事件 定位进程 人肉筛查 clamav 来源 参考 事件 阿里云告警: 您的云服务器(XXXXX)由于被检测到对外攻击,已阻断该服务器对其它服务器端口(XXX)的 ...
- ZYNQ 7000成长记——菜鸟从零开始学嵌入式linux(前言)
ZYNQ 7000成长记--菜鸟从零开始学嵌入式linux(前言) 大概七八年前,大概是2010年,还在大学的时候就开始接触Linux,还买了一块天嵌的S3C2440的开发板.当时热情高涨,几天内就看 ...
- Ext4文件系统fsck后损坏的修复过程-linux数据恢复
在数据恢复案例开始之前有几个概念需要了解 块组:Ext4文件系统的全部空间被划分为若干个块组,每个块组内的结构都是大致相同的. 块组描述符表:每个块组都对应一个块组描述符,这些块组描述符统一放在文件系 ...
- Linux 引导过程内幕
linux 启动过程 分析 linux 引导过程内幕 从主引导记录到第一个用户空间应用程序的指导 级别: 初级 m. tim j (mtj@mtjones.com), 顾问工程师, emulex 20 ...
最新文章
- 零基础如何学习java技术?
- LeetCode: 111. Minimum Depth of Binary Tree
- SpringBoot中整合Thymeleaf
- 基于 OData 模型和 JSON 模型的 SAP UI5 表格控件行项目的添加和删除实现
- 32接上拉5v_51单片机P0口上拉电阻的选择
- 分布式MinIO快速入门 ​​​​​​​
- IT桔子分布式项目1
- 35 【kubernetes】configMap
- python制作物联网控制软件下载_Python+树莓派制作IoT(物联网)门控设备
- linux中的特殊符号 (|) 管道。
- linux ffmpeg 简单视频播放器
- Android studio3.5调用Numcpp库方法
- java实习生面试题
- 聊聊在小米实习的日子
- 逆水寒2021最新服务器,逆水寒公布2021部分更新计划,写满了离经叛道
- 服务器和售票系统,网上售票系统的开发与实现.doc
- 推荐一款快速生成海报的微信小插件
- 使用ar_receipt_api_pub.apply失误
- C语言程序设计第二次作业
- Ubuntu/CentOS配置主机名IP映射关系