TuskedEvening0's Blog

备份用硬盘的数据恢复与教训

Preface:写作原因

天杀的联想ThinkBook OEM恢复盘把我数据备份盘给格掉了。

意外操作猜测

它抹掉了分区表并抹除了前几个扇区的数据。

磁盘状况

原先只分了一个ext4分区。

恢复思路

  • 恢复分区表
  • 恢复分区数据

恢复方法

恢复分区表

首先TestDisk扫一下。

需要注意的是,浅搜索得出的结果一般是准确的,但是如果你发现分区表重建后感觉不太对劲,建议深度搜索。

我踩了这个坑,照着恢复的错误分区找superblock发现根本找不到,才发现我找错分区了。DiskGenius和PhotoRec一顿乱恢复把我干懵逼了。

对于ext4分区恢复,个人不建议使用DiskGenius恢复,因为我自己试过,确实不太行。TestDisk恢复更妥当一些。

恢复文件系统

此时你会发现该ext4始终无法读取,你需要fsck一下。fsck.ext4需要找到超级块进行恢复,你首先需要超级块的位置。

巧了,如果你用TestDisk恢复了正确的分区的话,你还可以顺势让它找备用超级块的位置。如果一个都没找到,要么是你运气太背,要么是你恢复错分区了。

跑fsck.ext4首先需要确认你是否用上了滚动更新模式的Linux发行版下的最新的软件包。至于为什么,有些ext4的新特性旧fsck会表示爱莫能助,但是fsck已经对你的superblock进行了一波寻思的改了,没啥辙了。这种情况建议换个备用suprblock继续日。

如果你什么都做对了,fsck应该会跑起来,然后问一堆东西。很显然对我来说恢复是第一要务且相当于背水一战了,所以全部填y。实际上如果想让它自己慢慢日,不用非得按y的话,按a相当于全部填y。

找到恢复的文件

然后在我这边,会发现:

这特么恢复了个毛线啊!

等下,2.7TB怎么TM只剩1.7TB了?

对咯,lost+found里面。su打开后会发现:

root@TUSKEDEV /r/m/u/a/lost+found# ls
'#113246209'/  '#121372673'/  '#144441345'/  '#15466497'/   '#175374337'/  '#61079553'/  '#75497473'/
'#115736577'/  '#134217729'/  '#144703489'/  '#165675009'/  '#21233665'/   '#74711041'/

都在里面呢!

逐个ls一下:

root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#15466497/
expunged/  files/  info/
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#21233665/
user/
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#61079553/
'$RECYCLE.BIN'/                   db.txt*              remote_utils_installer.msi*   terminal_services_installer.msi.msi*
 AdPlayerSetup-product1116.exe*   logtail_installer/   softnumber.txt*               UpgradeServiceSetup.msi.msi*
 check_file/                     'Program Files'/     'System Volume Information'/   UpgradeServiceSetup.msi.rar*
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#74711041/
下载/  桌面/
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#75497473/
Downloads/  TuskedEvening0/  Users/
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#113246209/
blkdev.list                     nvme0n1p3.btrfs-ptcl-img.gz.aq  nvme0n1p3.btrfs-ptcl-img.gz.ca
blkid.list                      nvme0n1p3.btrfs-ptcl-img.gz.ar  nvme0n1p3.btrfs-ptcl-img.gz.cb
clonezilla-img                  nvme0n1p3.btrfs-ptcl-img.gz.as  nvme0n1p3.btrfs-ptcl-img.gz.cc
dev-fs.list                     nvme0n1p3.btrfs-ptcl-img.gz.at  nvme0n1p3.btrfs-ptcl-img.gz.cd
disk                            nvme0n1p3.btrfs-ptcl-img.gz.au  nvme0n1p3.btrfs-ptcl-img.gz.ce
efi-nvram.dat                   nvme0n1p3.btrfs-ptcl-img.gz.av  nvme0n1p3.btrfs-ptcl-img.gz.cf
Info-dmi.txt                    nvme0n1p3.btrfs-ptcl-img.gz.aw  nvme0n1p3.btrfs-ptcl-img.gz.cg
Info-img-id.txt                 nvme0n1p3.btrfs-ptcl-img.gz.ax  nvme0n1p3.btrfs-ptcl-img.gz.ch
Info-lshw.txt                   nvme0n1p3.btrfs-ptcl-img.gz.ay  nvme0n1p3.btrfs-ptcl-img.gz.ci
Info-lspci.txt                  nvme0n1p3.btrfs-ptcl-img.gz.az  nvme0n1p3.btrfs-ptcl-img.gz.cj
Info-OS-prober.txt              nvme0n1p3.btrfs-ptcl-img.gz.ba  nvme0n1p3.btrfs-ptcl-img.gz.ck
Info-packages.txt               nvme0n1p3.btrfs-ptcl-img.gz.bb  nvme0n1p3.btrfs-ptcl-img.gz.cl
Info-smart.txt                  nvme0n1p3.btrfs-ptcl-img.gz.bc  nvme0n1p3.btrfs-ptcl-img.gz.cm
nvme0n1-chs.sf                  nvme0n1p3.btrfs-ptcl-img.gz.bd  nvme0n1p3.btrfs-ptcl-img.gz.cn
nvme0n1-gpt-1st                 nvme0n1p3.btrfs-ptcl-img.gz.be  nvme0n1p3.btrfs-ptcl-img.gz.co
nvme0n1-gpt-2nd                 nvme0n1p3.btrfs-ptcl-img.gz.bf  nvme0n1p3.btrfs-ptcl-img.gz.cp
nvme0n1-gpt.gdisk               nvme0n1p3.btrfs-ptcl-img.gz.bg  nvme0n1p3.btrfs-ptcl-img.gz.cq
nvme0n1-gpt.sgdisk              nvme0n1p3.btrfs-ptcl-img.gz.bh  nvme0n1p3.btrfs-ptcl-img.gz.cr
nvme0n1-mbr                     nvme0n1p3.btrfs-ptcl-img.gz.bi  nvme0n1p3.btrfs-ptcl-img.gz.cs
nvme0n1p1.vfat-ptcl-img.gz.aa   nvme0n1p3.btrfs-ptcl-img.gz.bj  nvme0n1p3.btrfs-ptcl-img.gz.ct
nvme0n1p3.btrfs-ptcl-img.gz.aa  nvme0n1p3.btrfs-ptcl-img.gz.bk  nvme0n1p3.btrfs-ptcl-img.gz.cu
nvme0n1p3.btrfs-ptcl-img.gz.ab  nvme0n1p3.btrfs-ptcl-img.gz.bl  nvme0n1p3.btrfs-ptcl-img.gz.cv
nvme0n1p3.btrfs-ptcl-img.gz.ac  nvme0n1p3.btrfs-ptcl-img.gz.bm  nvme0n1p3.btrfs-ptcl-img.gz.cw
nvme0n1p3.btrfs-ptcl-img.gz.ad  nvme0n1p3.btrfs-ptcl-img.gz.bn  nvme0n1p3.btrfs-ptcl-img.gz.cx
nvme0n1p3.btrfs-ptcl-img.gz.ae  nvme0n1p3.btrfs-ptcl-img.gz.bo  nvme0n1p3.btrfs-ptcl-img.gz.cy
nvme0n1p3.btrfs-ptcl-img.gz.af  nvme0n1p3.btrfs-ptcl-img.gz.bp  nvme0n1p3.btrfs-ptcl-img.gz.cz
nvme0n1p3.btrfs-ptcl-img.gz.ag  nvme0n1p3.btrfs-ptcl-img.gz.bq  nvme0n1p3.btrfs-ptcl-img.gz.da
nvme0n1p3.btrfs-ptcl-img.gz.ah  nvme0n1p3.btrfs-ptcl-img.gz.br  nvme0n1p3.btrfs-ptcl-img.gz.db
nvme0n1p3.btrfs-ptcl-img.gz.ai  nvme0n1p3.btrfs-ptcl-img.gz.bs  nvme0n1p3.btrfs-ptcl-img.gz.dc
nvme0n1p3.btrfs-ptcl-img.gz.aj  nvme0n1p3.btrfs-ptcl-img.gz.bt  nvme0n1p3.btrfs-ptcl-img.gz.dd
nvme0n1p3.btrfs-ptcl-img.gz.ak  nvme0n1p3.btrfs-ptcl-img.gz.bu  nvme0n1-pt.parted
nvme0n1p3.btrfs-ptcl-img.gz.al  nvme0n1p3.btrfs-ptcl-img.gz.bv  nvme0n1-pt.parted.compact
nvme0n1p3.btrfs-ptcl-img.gz.am  nvme0n1p3.btrfs-ptcl-img.gz.bw  nvme0n1-pt.sf
nvme0n1p3.btrfs-ptcl-img.gz.an  nvme0n1p3.btrfs-ptcl-img.gz.bx  parts
nvme0n1p3.btrfs-ptcl-img.gz.ao  nvme0n1p3.btrfs-ptcl-img.gz.by
nvme0n1p3.btrfs-ptcl-img.gz.ap  nvme0n1p3.btrfs-ptcl-img.gz.bz
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#115736577/
FILE0000.CHK*
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#121372673/
pixelstar/
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#134217729/
android_vendor_tree_xiaomi_munch/  device_xiaomi_munch/  kscope/  nexus_kernel_xiaomi_sm8250/
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#144441345/
maimaicharts/
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#144703489/
IndexerVolumeGuid*  WPSettings.dat*
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#165675009/
'1-环境(先安装运行!!!!!!!!!)'/   bh3.pdf*            BH3_total.7z.008*   BH3_total.7z.016*
 备份/                                    BH3_total.7z.001*   BH3_total.7z.009*   BH3_total.7z.017*
 崩坏三指令.txt                           BH3_total.7z.002*   BH3_total.7z.010*   BH3_total.7z.018*
 女武神人物ID.jpg                         BH3_total.7z.003*   BH3_total.7z.011*   BH3_v7.0.0_8490f6dfa13b/
 一键关闭.exe                             BH3_total.7z.004*   BH3_total.7z.012*   phpstudy_pro/
 一键启动.exe                             BH3_total.7z.005*   BH3_total.7z.013*
 BH3/                                     BH3_total.7z.006*   BH3_total.7z.014*
 BH3.7z*                                  BH3_total.7z.007*   BH3_total.7z.015*
root@TUSKEDEV /r/m/u/a/lost+found# ls ./\#175374337/
root@TUSKEDEV /r/m/u/a/lost+found# 

你应该知道都是些什么玩意儿了。

教训

多备份

以多重备份抵抗不可控因素。尽量避免灵车漂移状况的出现。

不要相信各厂商的自动恢复程序

原因很简单,恢复程序不是你自己写的,你也不知道人家是否比你还草台班子。

即使真要用,建议提前把重要的盘拔了。


发布于

分类:

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

许可协议