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#
你应该知道都是些什么玩意儿了。
教训
多备份
以多重备份抵抗不可控因素。尽量避免灵车漂移状况的出现。
不要相信各厂商的自动恢复程序
原因很简单,恢复程序不是你自己写的,你也不知道人家是否比你还草台班子。
即使真要用,建议提前把重要的盘拔了。
发表回复