Unix 中用了rm命令错误的删除了一些文件,请问用什么命令可以恢复?

Unix 中用了rm命令错误的删除了一些文件,请问用什么命令可以恢复?

阅读 18.4k
7 个回答
  1. 挂载为只读
  2. 用 debugfs、extundelete 类似的软件手动找吧。。

PS:(我主要想说 ps 好吗)

  1. 如果你经常用 Linux,以防万一还是 apt-get install trash-clialias rm=trash
  2. 如果是阿里云(或者其他云服务?),直接找客服,他们有三天的磁盘快照。(我弄丢过一次数据库然后就这样找回来了 TT)

数据恢复软件的原理是,文件系统在删除文件时并没有覆盖文件的内容,而只是将此文件标记为“已删除”,并从目录的文件列表中删除,然后你就再也找不到这个文件了。但是文件内容还在磁盘上。

这里:https://wiki.archlinux.org/index.php/File_Recovery 有一些相关工具。我用过 photorec 恢复照片,效果很不错。因为 JPEG 文件头很有规律。如果想恢复其他类型的文件可能会难一些。

搜索关键词:你的文件系统类型(ext3 / ext4) + "file recovery"

P.S. 数据恢复要做的第一件事是不要再向那个分区写入数据了,因为可能会导致你要恢复的文件内容被覆盖。你应该尽快 umount 那个分区。

前两天我不小心误删了两个文件,没卸载也没挂载成只读(那是 / 啊,而且文件并不重要),直接用 extundelete 恢复了其中的一个,另一个更有用的没能恢复。

  1. umount
  2. debugfs to checkout file node
  3. dd to copy

如果你的文件很重要,建个硬链接,防止误删除。

找数据恢复软件吧,系统没有自带的命令能干这事的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏