使用rm -rf在Wubi上恢复删除的数据吗?

我无意中使用sudo rm -rf删除了/home

我尝试使用testdisk恢复,但由于Ubuntu是通过Wubi安装的,无法列出文件系统,我不知道其他方法。

我该如何恢复我的数据?这很重要。

我在Wubi上使用的是10.10版。


相关,但并非完全重复:终端中删除的文件/目录可以恢复吗? - Seth
4个回答

很不幸的是,无论是在五笔还是标准的Ubuntu系统中,当你使用rm -rf命令删除文件时,几乎不可能恢复。虽然有一些工具可以尝试恢复数据,但它们的效果相对较低,特别是在使用了rm -rf命令之后。
编辑: 在评论中提到的一个工具是photorec。它可以帮助恢复数据,但无法恢复文件名或路径,所以你需要自己弄清楚每个文件的内容。另外,由于你使用的是Wubi而不是直接安装在硬盘上,这个工具可能无法正常工作。

2Photorec能够在我使用rm -rf命令后,成功恢复了超过75%的数据。虽然不适用于整个分区的恢复,但如果你只想要救回一些非常重要的文件,这是一个可行的方法(由于无法恢复文件名,所以需要一些时间来找到正确的文件)。 - arrange
@arrange 强调“few”。根据他们的消息,他们删除了整个 /home/ 目录结构。因此,很有可能 /home/ 区域所在的部分已经损坏到无法修复或恢复的程度。还要注意这是 wubi,所以并非所有功能都能正常工作。 - Thomas Ward

应该可以使用photorec来实现... 例如,在我的wubi安装中,我做了以下操作:
sudo apt-get install testdisk
sudo photorec /dev/loop0
[proceed]
[none] (partition type table)
P ext4 [search]
[ext2/ext3]
[free] (or I guess you could use [whole])

然后选择一个除了五笔安装之外的地方进行恢复(我假设您会从光盘启动,所以选择本地硬盘...我使用了/host/ubuntu)。
然后按Y进行选择并运行。
然后检查结果。这是一些终端输出。
bcbc@ubuntu:~$ sudo photorec /dev/loop0
PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER <grenier@cgsecurity.org>
http://www.cgsecurity.org
PhotoRec exited normally.
bcbc@ubuntu:~$ ls /host/ubuntu
disks    recup_dir.1  recup_dir.3  recup_dir.5      Ubuntu.ico          winboot
install  recup_dir.2  recup_dir.4  tedwireless.txt  uninstall-wubi.exe
bcbc@ubuntu:~$ cd /host/ubuntu/recup_dir.1/
bcbc@ubuntu:/host/ubuntu/recup_dir.1$ ls
f0270448.txt  f1666616.txt  f1668496.txt  f1791600.txt  f2403160.txt
f0270472.txt  f1666624.txt  f1668528.txt  f1791608.txt  f2403176.txt
f0270488.txt  f1666632.txt  f1668560.txt  f1791616.txt  f2403208.txt
...

如果你正在使用一个光盘系统运行,首先挂载你的Windows主机,然后挂载root.disk:

sudo mkdir -p /media/win
sudo mount /dev/sda1 /media/win #change /dev/sda1 for your own partition
sudo mount -o loop /media/win/ubuntu/disks/root.disk /mnt

然后您可以继续选择适当的循环设备。

嗯...谢谢这个,我会试一下。关于使用Photorec恢复的文件,第一次尝试时我收到了一些图像文件和很多.txt文件,但是.php、.css或.html文件呢?Photorec能恢复它们吗? - Shogun
根据http://www.cgsecurity.org/wiki/File_Formats_Recovered_By_PhotoRec,它可以恢复.php和.html文件,但是.css文件没有列出。如果你想要缩小结果范围,你应该能够选择特定类型...请参考http://www.cgsecurity.org/wiki/PhotoRec_Step_By_Step#Selection_of_files_to_recover。 - bcbc
谢谢,这是正确的方法,它恢复了很多文件,我要检查它们全部)) 这总比没有好。我已经将您的答案标记为解决方案;) - Shogun
祝你好运。告诉我们进展如何。 - bcbc

有两种主要的数据恢复方法。第一种是文件切割,它试图识别文件的起始和结束,并提取它们。这对于某些类型的文件非常有效,但你会丢失文件名和文件时间。它特别适用于JPEG图像。
第二种方法非常依赖于文件系统。你可能正在使用ext3或ext4。如果你正在使用ext3,那么sleuthkit应该可以工作。然而,我相信sleuthkit还不能处理ext4。如果你的文件系统是ext3,请尝试以下操作:
sudo apt-get install sleuthkit

和运行

fls -r <device name of your home directory>

例如

fls -r /dev/sda1

(我没有使用五笔输入法,所以不知道你的主分区可能在哪里。)
这将显示可能可以恢复的文件名。如果它们可以恢复,那么可以使用icat来恢复它们。

Wubi不使用分区。Wubi安装在Windows内部,并运行虚拟映像文件,该文件充当包含所有数据的硬盘驱动器。它实际上并不作为自己的分区存在于驱动器上。因此,由于Linux操作系统不存在该分区,您上述的方法可能无法奏效。 - Thomas Ward
是的,我尝试过这种方法,还使用了TestDisk和PhotoRec,但都没有起作用...现在我的头脑乱糟糟的。 :( - Shogun
@Shogun,看来你已经没有其他尝试的方法了。因为99.99%的情况下,即使只是使用rm命令在终端中删除任何东西,都是无法恢复的。很遗憾,对于你的问题,目前没有解决方案,因为之前提到过恢复几乎是不可能的。 - Thomas Ward
好的,谢谢大家的回答。我要去买肥皂和绳子了... =)) - Shogun

也许你可以试试我的工具 - http://freshmeat.net/projects/extcarve "extcarve是一个用于恢复ext2/ext3/ext4文件和语义文件切割的工具。它可以恢复多种文件格式,包括PNG、JPG、GIF、PDF、C/C++程序、PHP和HTML"

谢谢,但我已经用photorec完成了这个任务。 - Shogun