背景
前天在国外工作室机子(Dell台式机,应该是Fedora 25)上,本来想运行
rm -rf */
删掉工作目录下所有子目录(包含测试程序的输出),结果手滑运行了
rm -rf /*
1. 我是在root下,虽然我在0.5秒后按了Ctrl+C,但/bin, /boot等目录已经没了
2. 机子的硬盘是SSD,数据恢复好像比较困难
当时没有立刻关机,桌面还能操作,但已经不能运行任何系统命令了,命令行也打不开,正在运行的程序苦苦支撑了几个小时后run完了,我才开始着手修理。
本人没有任何装机经验,找人又贼贵,我想我是凉了,跑路又跑不了,春节假期好不容易预处理的数据都在里面。
退而求其次,能把最近做的数据抓出来就不错了。
方法
1. 按照这位大哥的思路:使用TestDisk恢复分区表 | aurorax
2. 先安装老毛桃完整版:老毛桃winpe,u盘启动盘制作工具,u盘重装系统,老毛桃winpe下载
3. 拿一块不用的U盘制作启动盘:老毛桃U盘启动盘制作教程 - 知乎
4. 同时下载TestDisk软件的Windows版:TestDisk Download - CGSecurity,往U盘里拷贝一份解压的文件夹
5. 从U盘启动:老毛桃U盘重装系统教程 - 知乎 (不同电脑方法不同),进入桌面
6. 在“此电脑”中找到testdisk的文件夹,执行testdisk_win.exe
7. 根据提示和以下几位的描述把需要的文件复制到这个启动盘或另一个U盘上就好了
如何使用testdisk在Linux上恢复已删除的文件 - BYTESEA
效果
-
复制是需要一定时间的
-
advanced下能把分区下的各级文件拷过来,analyse下似乎只能拷整个分区
-
软件会显示你曾经删掉过的文件(也可用于恢复删除的文件),但如果为了转移数据,就别勾选它们了,否则会把没用的文件也拷出来
-
但它当然是无法恢复rm -rf 掉的文件的。
结语
我是因为其他数据不太重要,所以选择重装系统和程序,但这个protocol确实是在操作系统损坏、无法启动时恢复文件的好方法。