Linux误删怎么办?详解rm rf找回方法 (linux rm -rf 找回)

在使用Linux操作系统时,误删文件或目录是一件常见的事情。尤其是在使用rm命令时,如果加上了-rf参数,就会彻底删除整个文件夹及其所有的文件。这时候,我们怎么才能找回这些被误删的文件呢?本文将详细介绍Linux误删的解决方法。

一、误删原理

在理解找回误删文件的方法之前,首先需要了解误删的原理。在Unix或Linux系统中,所有的文件和目录都有自己的inode号码和block号码。inode是一个索引节点,每个文件或目录都有一个唯一的inode号,inode中记录了该文件或目录的所有属性信息(如文件大小、权限、创建时间、修改时间等)。而block是文件或目录实际存储的地方,每个文件或目录都可以有多个block号。当我们删除一个文件或目录时,只是删除了它的inode号码,并没有真正删除磁盘上的数据块。只有在新的数据占据了这些block才会覆盖原有的数据。所以,如果我们能够找到被删除的inode号码,就可以通过inode号码找到文件或目录对应的block号,进而恢复被误删的文件。

二、准备工作

在实现误删文件的找回,首先需要准备一个备份设备,该设备应有足够的容量,能够存放误删的文件。我们可以使用外接硬盘、USB闪存盘、网络存储设备等作为备份设备。

三、通过命令找回误删文件

1. 使用find命令

find命令可以在指定目录以及其子目录中查找符合条件的文件。我们可以通过以下命令查找被删掉的文件:

“`

find / -inum inode_number -print

“`

其中/inum是指定要查找的目录(包括子目录),inode_number是被误删除文件的inode号码。执行该命令后,会输出所有inode号码为inode_number的文件路径。如果找到了被删除的文件,那么可以通过一个管道符号‘|’将其传输到另一个命令中,如cp命令,将文件复制到备份设备中:

“`

find / -inum inode_number -print | xargs cp /path/to/backup/folder

“`

2. 使用debugfs命令

debugfs是一个Linux文件系统内部数据结构调试和维护工具。它可以查看inode和block的详细信息,包括路径名、大小、权限等信息。我们可以使用以下命令调用debugfs:

“`

debugfs /dev/sdaX

“`

其中/dev/sdaX是指被误删除文件所在的设备名和分区号码。输入以上命令后,可以进入debugfs的命令行模式。在此模式下,我们可以通过以下命令查找被删除文件的inode号码:

“`

lsdel

“`

该命令会列出所有被删除的inode号码,找到被误删的文件所对应的inode号码后,可以通过以下命令进行恢复:

“`

#创建一个新文件夹,用来存放误删的文件

mkdir /path/to/recovered/folder

#将被误删文件的inode号码所在的block读取到新的文件中

debugfs -R ‘dump /path/to/recovered/folder/filename’ /dev/sdaX

“`

其中,‘’和‘/path/to/recovered/folder/filename’分别为被误删文件的inode号码和新文件的路径和名称。

四、通过工具找回误删文件

1. extundelete

extundelete是一个帮助用户恢复被删除文件的工具,它可以恢复以ext2、ext3或ext4文件系统格式的磁盘中的被删除文件。使用该工具的前提是文件所在分区没有被深度格式化或覆盖。可以通过以下命令安装extundelete:

“`

sudo apt-get install extundelete

“`

使用该工具的命令格式如下:

“`

extundelete /dev/sdaX –inode –restore-file

“`

其中/dev/sdaX是指文件所在的设备和分区号码,和分别是被删除文件的inode号码和文件名。

2. TestDisk

TestDisk是一个免费的开源数据恢复软件,它可以恢复各种文件系统格式(如ext2、ext3、ext4、FAT、NTFS等)的被删除文件、分区表、引导记录等。使用该工具的命令格式如下:

“`

sudo testdisk /dev/sdaX

“`

其中/dev/sdaX是指文件所在的设备和分区号码。执行后会进入一个交互式界面,引导用户选择需要查找的分区、选择需要恢复的文件、选择恢复的目标位置等。TestDisk提供了丰富的恢复手段,用户可以按自己的需要进行操作。

五、

相关问题拓展阅读:

笔记本电脑双系统在linux根目录下执行了rm -rf /*重装Windows系统后部分设备无法识别怎么恢复?

如果你这么干,如果是有boot分区,那么他也会被删除了,

而他也是windows需要的(win7以后),或滑所以怕是win也引导不好基到了,

但是你可以做重装,然后它也会被恢复。

部分友团谨设备无了,那么看你rm的时候,是不是在mount的,是的话,它也会清除掉的。,

在linux系统下用rm命令误删了一个文件,怎样才能恢复这个文件?

1、先要进行重启ubuntu,随即长按shirft进入grub菜单,这时候注意的是再进行选择recovery mode,按”段顷敬e”键进入编辑页面,如下图所示。

2、然后这时候注意的是就会进入恢复模式的,然后就是要将要找回的文件所在的分区重新挂载成只读,如下图所示。

3、接着就是将ro recovery nomodeset注意的是乎袭进行替换为”rw single init=/bin/bash” ,然后就是要这时候注意的是按ctrl+x进入单用户模式,这握慎时候就可以看到当前用户即为root即可。

4、最后要按ctrl+x 启动,这时候就会进行进入root的shell环境,然后就可以恢复文件了,如下图所示。

如何恢复linux下被rm后的文件

linux的文件被rm删除是可以通过linux自带的文件恢复工具debugfs来进行恢复,但是只能恢复ext2文件系统的文件,不能恢复ext3文件系统的文件。

1,首先查看需要恢复的文件所在的文件系统

命令行模式下输入指令mount

# mount

/dev/xvda1 on / type ext2 (rw,errors=remount-ro)

proc on /proc type proc (rw,noexec,nosuid,nodev)

sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)

由上知,/dev/xvda1挂载在/下,即根目录,且文件系统是ext2

2,将要找回的文件所在的分区重新挂载成只裂隐哪读

(因为这样比较安全,可以防止因新的文件写入该分区肆码而导致无法找回文件)

# mount -n -o remount,ro /dev/xvda1

如果不能重新挂载,那么一定有用户正在使用该分区中的文件,我们可以使用指令:fuser -m -v /dev/xvda1来查看当前哪个用户正在使用该分区中的文件,然后使用fuser -k -m -v /dev/xvda1来杀死用户使用该分区的任何进程。

3,使用debugfs工具携敬恢复文件

# debugfs /dev/xvda1

debugfs 1.42 (29-Nov-2023)

debugfs: lsdel

进入debugfs模式后输入lsdel后可以看到被删除的文件信息

stat显示某个节点所对应的文件信息,

恢复文件使用dump 文件路径。

如果被删除的文件很多,那么通过lsdel可看出文件的时间,然后自己判断进行恢复。

1、在浏览器中搜索并下载安装D-Recovery闪电版软件。打开D-Recovery闪电版,显示如图所示的界面。

2、选择一个磁盘,这里以选F盘为例,如图所示,点击展开燃慎。

3、展开后,在零散目录中会皮逗敬看到很多已删除文件夹,如图所示。

关于linux rm -rf 找回的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » Linux误删怎么办?详解rm rf找回方法 (linux rm -rf 找回)