以下是恢复文本文件的一般步骤。
首先使用 wall 命令告诉用户系统进入单用户模式:
接下来使用init 1命令将系统带入单用户模式:
使用grep(传统的UNIX方式)恢复文件
接下来使用vi命令查看file.txt。
发现在http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html
几年前我也是这样做的。我的做法是直接,没有时间损失,卸载分区,然后
dd if=/dev/hda1 of=backup_image.ext3
有一个备份文件的确切状态的分区。然后你可以再次挂载分区,然后继续像往常一样在你创建的镜像中寻找被删除的文件。这个镜像可能会非常大,因为你需要所有的 “空 "空间,所以存储它可能是一个实际问题。
然后就是在我预期的分区内容的汤的某处的文本片段后进行无聊的搜索。例如,为了查找.tex-files,我运行了
grep --binary-files=text -1000 "subsection" < backup_image.ext3 > latexfiles
,它打印了一个大的上下文,围绕着 "subsection "这个短语,并将输出保存到一个文件中,以便手动搜索。我打印了这么大的上下文,因为搜索图像要花很长时间,所以我宁愿不要多做几次。
另外,strings
命令对清除输出中的二进制垃圾很有帮助,但如果我没记错的话,它也会把所有的换行符都去掉,这可能是个问题。
要用同样的方法找到二进制文件,可能会成功找到某个文件的特征头之类的东西,但我想象这是个相当大的冒险。
简要技术说明:磁盘恢复和Ext3/4有技术上的困难。说来话长,简单(也不充分)解释一下。Ext3/4删除了 "标记",当你删除文件时,它会告诉操作系统文件在磁盘上的位置。这些文件没有被擦除,但没有人知道它们在磁盘上的起始和结束的位置了,有时甚至会在几个地方被分割成碎片。还有一些文件系统只是将文件的状态设置为 "已删除",但保留了位置数据。那么撤消删除也不难,比起看一下有这个标志的文件指针(如果不是发生了太多的活动,它们应该还是可以的),然后希望它们的内容没有被覆盖,
什么最好?修辞,在我看来。经常备份是解决这些问题的答案。重要的数据如果没有自动化的备份系统,那就是等待事故的发生,IMHO。
强制性的个人轶事。我本来想从foo\ foo*
中删除~
。我写了
rm -r foo<Tab>*
,很可悲的是,由于foo
显然是一个symlink,而且是唯一匹配的文件,所以shell做成了
rm -r foo\ foo *
,我按了回车键,坐在那里看着命令,最多只需要一秒钟。又过了一会儿,rm
问我是否要 "删除受写保护的文件'某事’",我很快就感觉到了寒意,轻轻地很有控制地按下了Ctrl+c
。~我的~
被删除了一半,但我通过上面描述的grepping和一些或多或少的当前备份,成功地找回了所有有价值的东西。我有一些个人非常有价值(读:耗时)和最近的测量数据在磁盘上丢失了,但我做了四次备份。一个在这里消失了,另一个由于在学校的系统中断,另一个是损坏的,起初我无法找到第四个,因为我错误地把它放在错误的文件夹:-D . 如果不是rm -r
卡在了一个写保护的文件上,第四个文件夹就会被吃掉,因为我的~
中的那个文件夹是通过sshfs挂载的。从那以后,我对这种事情就更加小心了。
唯一正确答案是:从备份中恢复文件。每个人都必须有一个备份。对于真正重要的文件,你应该有两个备份。你没有吗?好吧,太糟糕了,这里有一个教训(抱歉,我是做数据存储的,但我是做数据存储的,人们在丢失一些重要的数据之前是不会备份的,这是既定的事实。所以是的,你看起来很蠢,但几乎所有人都是如此)。
OK,你没有备份。任何写入活动都可能会影响到磁盘上的文件数据。
如果你只使用一个分区作为根文件系统和/home,那意味着你必须从其他设备启动。**
如果你的文件是一些常见的格式(Word文件、JPG等),请使用Photorec。
你可以尝试之前提出的 “ext3 undelete "方法,但你需要熟悉命令行,了解基本的linux内部工作原理等等。我曾经写过一个Perl程序来扫描驱动器中的一些特殊文件,效果很好,但你需要懂一些编程,而且对linux也很熟悉。
如果你当前打开的应用程序正在读取文件,比如VLC或LibreOffice,那么这个很好的L&U.SO答案就帮我摆脱了这个困境。下面是另一种方法的做法。
一般的思路是找到/proc/PID/fd/DESCRIPTOR_NUMBER
中的链接,然后复制回原来的位置。用ps aux | grep APP_NAME
找到PID,然后用ls -la /proc/PID/fd/
找到合适的DESCRIPTOR_NUMBER。
这里有一个很好的【文档】(https://help.ubuntu.com/community/DataRecovery)。你会发现有很多实用的技巧。
BTW,这里有两类人:
1.做备份的人 2.会做备份的人
恭喜你,你刚刚晋升为第二组。)
你可以试试这个脚本。效果很好,可以代替rm使用,我现在正在广泛使用。 https://github. com/nateshmbhat/safe-rm
rm
中出现的那些错误信息一样。上周我也遇到了同样的问题,试了很多程序,比如debugfs、photorec、ext3grep和extundelete,其中ext3grep是恢复文件最好的程序。sintax很简单:
ext3grep image.img --restore-all
或:
ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’
本视频显示的是一个小教程,可以帮助你。