我在嵌入式领域工作。在为一个项目创建文件系统时,我将文件系统名称保留为~
。它是写保护的。然后尝试通过 rm -rf ~
文件系统(嵌入式项目)所在目录中的命令删除整个文件系统。但是,此命令删除了我的系统主目录文件,因为它~
指的是 ubuntu 中的主目录。它花费了更多时间。然后我停下来,才知道它正在删除我的系统主目录文件。
那么,如何才能重新获取所有已删除的文件?请给我一个确切的解决方案。我的系统详细信息是
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
我的硬盘中没有任何分区。我将其用作单个驱动器。我的磁盘详细信息
*-disk
description: ATA Disk
product: ST500LM012 HN-M5
vendor: Seagate
physical id: 0.0.0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: 2BA3
serial: S316J90F200261
size: 465GiB (500GB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 sectorsize=512 signature=0002c421
给我最有利的解决方案......
答案1
首先,在文件恢复之前,您不应该使用操作系统,因为磁盘中仍然存在的数据可能会被覆盖。您应该使用 live-cd/live-usb(可能是 Ubuntu DVD)进行数据恢复,并将文件保存在不同的磁盘上。如果数据确实很有价值,您应该将磁盘映像(逐字节复制)并对其进行处理:
dd if=/dev/sda1 of=/home/user/image.bin bs=1048576
其中 /dev/sda1 是包含数据的分区,/home/user/image.bin - 磁盘映像文件的名称示例。您应该确保磁盘映像文件位于另一个磁盘或分区中。
如果您的文件系统是 ext2/3/4,则没有简单的方法可以取消删除通过 rm 删除的文件。
如果你的文件系统是 ext2/3/4,请参见: https://superuser.com/questions/171673/how-to-recover-files-from-linux-ext4-harddrive
您可以尝试 extundelete: https://unix.stackexchange.com/questions/122305/undelete-a-just-deleted-file-on-ext4-with-extundelete
如果这没有给出预期的结果,您可以使用 TestDisk: http://www.cgsecurity.org/wiki/TestDisk