dev c++如何恢复默认设置_记录Linux下的一次惊险的数据恢复过程

    最近《软件开发与设计实践》的课程快要到结束啦,于是打算抓着这最后几天的时间再来优化一下代码吧。测试了一会,发现没什么大问题了。突然发现工程目录下多了几个碍眼的文件夹,我整整齐齐的代码怎么能被几个文件夹影响到呢,看我来个"rm",就像下面那样。

sudo rm ***

命令打完后,想到代码目录如此整洁,我不禁露出充实而欣慰的微笑。出于习惯,我打下了一个"ls"用来查看目录内容。风吹着窗帘嗒嗒的响,我渐渐发现事情没那么简单。立马查看历史记录,发现了绝望的一幕。

44a6a93abe806632bc0c9f93896698d3.png

那个pm就是整个核心代码的目录,然而不知发了什么神经的我把它给删了。

        太阳穴隐隐有些发麻。突然想起关于"rm"命令的种种趣闻, 总有人会用

sudo rm -rf *

来调侃,每次看到只当成玩笑,可是没想到自己也会有这种脑子短路的操作。

        大脑在快速查找有关误删除操作的知识。删除操作只是清空了inode里的内容,实际上数据存储在block块内,如果block块的内容没有被覆盖,理论上还是有可能恢复的。现在我需要一个强大的恢复工具,于是我打开了浏览器。实际上这是一个非常错误的操作,由于误删的文件与当前的登录用户位于同一个分区中,这个时候应该尽快取消挂载目标分区,因为如果对这个分区的文件进行写操作有可能会覆盖误删文件的block块内的数据,那就几乎很难恢复了。

        后来又恰好发现,当时我正好开了一个进程使用vim对其中一个误删的文件进行操作。由于vim编辑文本时是将内容加载到内存的,所以当时有两个选择,一是将文件写回到硬盘里,那么至少可以保留一个文件,但是缺点是,如果把它写回原路径,如前面所说,会有非常大的可能覆盖其他文件的block块,导致其他文件无法恢复。二是将其直接丢弃,换取恢复其他文件的希望。

        但是我没得选。因为太贪心了,想着有没有可能我用vim打开了多个文件,于是切换了vim的缓冲区。但是因为不了解vim的缓冲区不会一直保留在内存里,换句话说就是被动做了第二个选择。其实这个局面最好的解决办法是将内存写入到其他分区,这样既可以保留一个文件,也不会覆盖block块。

         在对着屏幕发呆了10分钟后(减少对目标分区的写操作),只能把桌面环境关闭,进入控制台,取消挂载目标分区。

       刚开始使用的恢复工具是extundelete,尝试了好几次,每次都提示我找不到可恢复文件。一度陷入绝望,想到好几个月来的付出就这样没了,甚至在距离答辩的最后这几天能不能再写出来都说不准,还会挂科,就觉得风好大,眼睛都进石头了。

        后来又在某些个角落看到还有一个工具foremost。下载,执行

foremost -t cpp /dev/sda7

"-t" 指定文件类型,就是cpp,"/dev/sda7"就是目标分区。

        命令执行了有好几分钟。几分钟挺长的,我已经把这几天的残酷生活都在脑子里演绎了几遍。

        执行完成了,看看输出,生成了一个文本文件"audit.txt"和一个文件夹"cpp"

            ‍

‍‍

ab84db001792c6790388d7f4ebdfa23c.png

文本文件里列出了cpp文件夹下面的文件。

3e874b360d4c703d290939dcdec34f1a.png

cpp文件夹下有大概8万个后缀为cpp的文件,一共1.5G,而且命名没有规律。后来我猜测是以inode号命名的。问题是这是啥?只能猜测是从inode号恢复出来的文件。于是试试用误删文件的一些特征函数名对这些文件进行匹配,看到结果如下。

ef8a21057c54fee1655e7b86bb820a21.png

与误删文件部分内容大致吻合。剩下的就是耐心的写脚本匹配,然后打开所有可能的文件一个个核实了。

002730f9fc0f6f63e78c70602c3f433c.png

说起来容易,实际上没有一个文件是完整恢复的,能有一个大片的连续片段的也算比较好了。最终有一半的文件是可以恢复出大块连续片段的,一小部分是只能找到一些旧版本的片段,有几个文件是完全恢复不了的。

        自此,我懂得了备份的重要性。最后还是要补代码丫。。。2a033a71582bfc7ee40c5a256b3e4d65.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
恢复DevC++默认设置,您可以按照以下步骤操作: 1. 首先,打开DevC++编程工具。 2. 在菜单栏中,选择 "Tools"(工具)并点击 "Compiler Options"(编译器选项)。 3. 在弹出的窗口中,选择 "Directories"(目录)选项卡。 4. 点击 "Reset"(重置)按钮以将所有目录设置恢复为默认值。请注意,这将清除任何自定义的目录设置。 5. 接下来,选择 "Programs"(程序)选项卡。 6. 在 "Make" 字段中,选择 "Default"(默认)选项。 7. 最后,点击 "OK"(确定)按钮以保存并应用更改。 这样,您的DevC++编程工具就会恢复默认设置了。请确保在恢复之前备份您的个人设置和项目文件以防万一。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Dev C++(C++编程工具)](https://download.csdn.net/download/xingyu4414/2141417)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [dev c++如何恢复默认设置_如何在后台运行Linux命令](https://blog.csdn.net/weixin_39963255/article/details/110234939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值