我意外地删除/home
了sudo rm -rf
。
我尝试使用 testdisk 来恢复它,但是因为 Ubuntu 来自 Wubi,它无法列出文件系统,而且我不知道其他方法来做到这一点。
我怎样才能恢复我的数据?这很重要。
我在 Wubi 上使用 10.10
答案1
不幸的是,无论是在 wubi 还是标准 ubuntu 中,当你用 删除东西时rm -rf
,几乎不可能恢复。虽然有工具,但当你使用rm -rf
编辑
对此的评论中解释的工具之一是photorec
。它可能有助于恢复数据,但不会恢复文件名或路径,因此您必须自己弄清楚是什么。此外,它可能无法工作,因为您使用的是 Wubi 而不是直接安装到驱动器。
答案2
应该可以使用 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])
然后选择除 wubi 安装之外的某个地方进行恢复(我假设您将从实时 CD 运行它,因此选择本地硬盘驱动器...我使用了 /host/ubuntu )
然后按 Y 选择并运行。
然后检查结果。以下是一些终端输出
bcbc@ubuntu:~$ sudo photorec /dev/loop0
PhotoRec 6.11, Data Recovery Utility, April 2009
Christophe GRENIER <[email protected]>
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
...
如果您从 Live CD 运行,请首先挂载 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
然后您可以继续选择适当的循环设备。
答案3
恢复数据主要有两种方法。第一种是文件雕刻,它试图识别文件的开始和结束并提取它们。这对于某些类型的文件非常有用,但会丢失文件名和文件时间。它对 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
(我没有使用过 WUBI,所以我不知道你的主分区可能在哪里。)
这将显示可能可恢复的文件名。如果它们可恢复,则可以使用 icat 来恢复它们。
答案4
也许你可以尝试我的工具 -http://freshmeat.net/projects/extcarve “extcarve 是一个 ext2/ext3/ext4 文件恢复和语义文件雕刻工具。它可以恢复多种文件格式,包括 PNG、JPG、GIF、PDF、C/C++ 程序、PHP 和 HTML”