linux怎么恢复rm误删的数据(rm -rf 误删数据,如何进行磁盘数据恢复)

:暂无数据 2026-08-28 06:30:20 0

linux怎么恢复rm误删的数据(rm -rf 误删数据,如何进行磁盘数据恢复)

大家好,如果您还对linux怎么恢复rm误删的数据不太了解,没有关系,今天就由本站为大家分享linux怎么恢复rm误删的数据的知识,包括rm -rf 误删数据,如何进行磁盘数据恢复的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

本文目录

rm -rf 误删数据,如何进行磁盘数据恢复

在工作中,我们知道一些操作命令危险性很高,如: rm -rf,它会造成数据的误删除。如果万一出现这样情况导致数据误删除时,我们应该如何对数据进行恢复呢?

删除数据的两种场景

通常有两种数据删除的场景是你需要清晰了解的。第 1 个是在执行 rm -rf 删除文件时,该文件正在被进程使用。第 2 个是这个文件并没有被其他进程所使用,而被误删除。本课时我将围绕这两种场景进行讲解并演示。

为什么数据可以恢复

既然我执行了 rm -rf 命令,不就是删除文件了吗,为什么又可以恢复数据呢?首先我来为你介绍一下其原由,对于第 1 种进程正在使用文件的场景,数据可以恢复是由因为 Linux 里,每个文件都有 2 个 link 计数器:i_count 和 i_nlink。

i_count 的作用是当一个文件被一个进程引用时,它的数值会加 1,也就是说它记录的是文件被进程引用的次数。i_nlink 的作用则是记录文件产生硬链接的个数。Linux 系统只有在两个数值都清零的时候,文件才被系统认为是删除的。如果我们执行了 rm -rf,却并没有把 i_count 删除,假设此时删除文件有进程在使用,那么它(i_count)数值不为 0。这个时候就是文件看似被删除,但在操作系统还是能便捷的恢复回来。

这就是第 1 种场景删除数据能够被找回的原因(由于 i_count 不为 0)。

第 2 种场景是将没有被进程使用的文件误删除,此时 i_count 和 i_nlink 都为 0。这个时候文件的 inode 连接信息已经被删除了,我们就需要通存放文件的 block 单元,做数据块的数据找回。在系统上我们能看到的文件内容包括:文件名、文件大小、内容,但实际上它的存储依赖两个非常重要的单元,一个是 inode,它用于存放文件的相关元数据,它的元数据里会有一个类似于索引的值,能够索引到后面具体存放数据的 block 单元, block 是一个数据块,用来实际存放数据。我们在删除文件时,其实是把 inode 的链接删除了,但是 block 数据块,并没有删除。

所以这个时候我们依然可以通过分析后端的 block 块,对文件进行恢复。因为 block 块保存着真实的数据,理论上可以作完整的找回数据,不过有一个风险:如果有进程在不断往磁盘写数据时,需要申请新的 block 块,如果操作系统分配已删除文件的 block 块时,那么新的写入数据就会覆盖 block 原来的数据,这时就会造成数据真正丢失的风险。

所以,如果出现这样场景造成数据误删除,需要第一时间 umount 目录所在的磁盘设备。如果没有其他进程在不断地往同一个磁盘块(block)里写数据,那么你的数据理论上还是在 block 块里面,依然可以通过相关分析把数据找回。

这就是我们为什么可以在这两个场景中把数据找回的原因,那么接下来我将讲解如何来恢复数据。我会通过两个案例来进行演示。

案例演示

我们先演示第 1 种场景,第 1 种场景是文件在被进程使用过程中被删除,这种场景该如何去恢复文件呢?

首先我登录到测试环境的机器上,这里开启了两个窗口,第 1 个窗口我登录到了这台服务器上,cd /test 目录下,echo 一个测试文件(我把它命名为 DeleteFile),然后把这个内容("Delete file")重定向到本地的 deletefile.txt。这个时候我的测试文件就已经生成了。接下来我要做的是开启一个进程,让它实时地使用这个文件。

这里我使用 tail 命令,持续地查看并且保持监听并使用这个文件。

接下来在另一个窗口,我同样到/test 目录下,而此时我要执行的是 rm -rf ./deletefile.txt,这样就“彻底”把这个文件删除。接下来我们通过 ls,可以看到本地已经没有这个文件了。

现在我们已经模拟出文件在进程使用过程中被删除的场景,那么接下来我们来演示恢复该文件。

首先需要找到是哪个进程在使用这个文件,我们可以通过 lsof 命令,grep 刚刚删除的文件名称(deltefile.txt),会列出当前使用文件的进程。我们会看到tail 命令正在使用,它(进程)的 pid 是 4701。

接下来我们要根据这条线索去恢复数据。我们知道该进程会有使用的文件句柄,那么我们对该进程的文件句柄目录进行查找,cd 到 /proc/{pid}/fd 目录下(这里 pid 为4701),我们到这个目录下,输入 ls -l 命令,这个时候我们会看到,使用这个文件(/test/deletefile.txt)并且它的文件句柄为 3。

接下来我们要想办法把这个文件进行恢复,输入cp 3 /opt/recovertest/deletefile.txt_bak,这时我就把这 3 个文件做了一个拷贝,实现将数据恢复到 /opt/recovertest/deletefile.txt_bak 文件。

这个时候cd /opt/recovertest/,cat deletefile.txt_bak 看一下里面的内容,可以发现这个文件的内容与刚刚生成的的测试文件内容一致,所以刚刚删除的文件恢复完毕。

接下来我来演示误删数据场景2(在没有进程使用文件的情况下,如何恢复误删的文件)。演示这种场景,保险起见我在本地多挂载了一块 SDB 的独立硬盘设备。

这种情况要如何恢复数据呢?我们需要安装 extundelete 这个工具。登录到我的测试机上,在这个演示场景里,挂载一块独立硬盘设备 /dev/sdb 并作数据格式化。完成格式化后。把单独的 sdb 设备,挂载到 test 目录下(mount /dev/sdb /test),接下来在 test 目录下生成一个内容为“deletetest ”的测试文件file(echo ’deletetest’》file),这个时候本地目录会生成一个测试的文件:file,再新建一个叫 testdir 的目录(mkdir /test/testdir),那么这时本地既有文件又有目录,也就是我接下来要演示删除的这些文件。

我们可以通过 rm -rf ./*,直接把当前目录下的文件整体删除。然后我需要恢复这个文件,原理就是:通过分析它的 block 块,来恢复 inode 链接,要分析并恢复已删除文件的链接,我们要用到一些工具,这里推荐你使用一个叫 extundelete 的命令,它是在 Linux 下基于 ext3\ext4 的文件分析工具,可以对文件系统已删除的文件进行分析,并进行数据恢复。

在执行命令extundelete之前需要先做的是 umount,把我们刚刚误删的目录 umount 掉(umount  /test -l),避免有新的进程再往磁盘块里写数据,同时也便于执行工具进行接下来的分析。

附:extundelete 命令安装方式:

yum -y install bzip2 e2fsprogs e2fsprogs-devel gcc-c++

***隐藏网址***

tar jxvf extundelete-0.2.4.tar.bz2 

cd extundelete-0.2.4

./configure 

make && make install

安装好这个工具(extundelete)后,执行:extundelete /dev/sdb --inode 2

我们可以在命令后面加入设备名称,然后加入上面的 inode 进行分析。完成之后我们会看到显示屏幕上已经出现了刚刚删除的文件、名称及目录,还会看到 inode 号以及当前的状态。

我们也可以选择恢复单独文件类型文件,执行:extundelete /dev/sdb --restore-file file

加入的选项是 --restore-file,后面加你想恢复的文件名称。

在执行以上恢复操作之前,我先要确保数据恢复的目录 /opt/recovertest 下,cd  /opt/recovertest 目录下,执行想恢复的文件 extundelete /dev/sdb --restore-file file。

执行完命令后,会有一个成功的提示。此时在当前目录的 RECOVERED_FILES 目录,有对应恢复好的文件,一个是 file,一个是 file.v1(这个为刚恢复的文件),为什么是 file.v1 呢?因为我在做操作的时候有操作过两遍,所以它恢复了两个文件。第 1 个 file 是我之前写入的内容,第 2 个 file 则是由于我执行了第 2 次恢复,恢复的文件虽然也是 file,所以会自动命名成一个新的版本,叫作 file.v1(这个文件就是我们想要恢复的文件名称)。

刚刚讲到的选项是恢复单个文件,假设我们要恢复所有文件的话,就把选项改为 --restore-all,这样就把分析出来的已删除文件进行了恢复。如果件,只想恢复某一个目录,就可以把 "all" 改成 directory,然后用 restore-directory 这种方式恢复单个已删除的文件目录。

以上就是通过 extundelete 作场景 2 恢复演示。

平时工作中,你还是需要谨慎进行操作系统指令,以避免产生文件系统误删的情况,毕竟恢复起来对我们的业务影响,还有数据风险都是存在的。

linux 系统下面,rm -rf 删除的文件能找回来吗

使用rm -rf删除的文件不能找回的;

对rm命令的理解:

1.rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

2.使用rm命令删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。

3.rm命令可以用-i选项,这个选项在使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。

扩展资料:

rm命令参数如下

1.-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
2.-f:强制删除文件或目录;
3.-i:删除已有文件或目录之前先询问用户;
4.-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
5.-v:显示指令的详细执行过程。



linuxrm-rf删除的文件怎么恢复

1、首先针对Linux下的ext文件系统来说,常用的Linux文件删除恢复工具有debugfs、ext3grep、extundelete等。
2、其次删除的文件曾经在哪个驱动器内,就选择这个磁盘的盘符。
3、最后使用EasyRcovery软件恢复数据即可。

linux误删文件怎么恢复


linux系统是不同于windows系统和mac系统的,它独特的系统操作深受广大网友喜爱。有的朋友在使用linux系统的时候,不小心把一些重要的文件删除了,却不知道应该怎么恢复。那么linux误删命令行文件该怎么恢复呢?接下来小编就给大家带来linux恢复误删文件的教程。
具体方法如下:
1、执行命令“cd/home”进入服务器根目录home。
2、执行命令“touchdemo.txt”创建一个演示文稿。
3、执行命令“rm-rfdemo.txt”删除该文件。
4、执行命令“debugfs”运用系统自带恢复工具debugfs来修复。
5、额外开一个xshell,执行命令“df/home/”打开刚刚被删除文件所在分区。
6、执行命令“open/dev/mapper/vg_root-lv_root”查看目录分区。
7、执行命令“ls-d/home”显示被删除文件所在目录。
8、执行命令“logdump-i”查找文件所在区块号。
9、记住上图block后面的数值并执行命令“quit”退出debugfs。
10、执行命令“ddif=/dev/mapper/vg_root-lv_rootof=/home/demo.txtbs=640count=1skip=1089”恢复文件操作。
11、bs与上图offset值一致,skip与block值一致。
12、执行命令“ls”可以看到文件demo.txt被删除后又重新找回来了,恢复成功。
以上就是linux恢复误删文件的教程,有需要的朋友可以通过上面的步骤进行恢复文件,希望对您有帮助。

数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库



今天有客户的数据库意外被删除了整个目录中的数据文件,操作系统级别的删除,然而幸运的是这个数据库没有崩溃,仍然处于 open 状态的时候,客户就发现了问题,求助到我们,最终完整地恢复了所有数据文件。 在 Linux 下大致重新演示一下恢复的过程,恢复的步骤与数据库版本没有太大关系,与操作系统的不同会有所不同。 1. 在数据库 open 的时候,直接删除 users 表空间中的数据文件。2. 尝试在 users 表空间中创建表,开始报错。
在告警日志中,同样也可以看到类似信息。3. 检查 dbwr 的进程 PID4. dbwr 会打开所有数据文件的句柄。在 proc 目录中可以查到,目录名是进程 PID,fd 表示文件描述符。注意其中“/app/oracle/oradata/ORCL/datafile/o1_mf_users_555wrj4o_.dbf (deleted)”字样,表示该文件已经被删除,如果是 Solaris 操作系统,ls 命令不会有如此清晰的显示,为了在 Solaris 系统中确认哪个句柄对应哪个文件,则需要使用 lsof 程序。 5. 直接 cp 该句柄文件名回原位置。6. 进行数据文件 recover完成数据文件恢复。 恢复的原理是,在 Linux 操作系统中,如果文件从操作系统级别被rm掉,之前打开该文件的进程仍然持有相应的文件句柄,所指向的文件仍然可以读写,并且该文件的文件描述符可以从 /proc 目录中获得。但是要注意的是,此时如果关闭数据库,则此句柄会消失,那么除了扫描磁盘进行文件恢复之外就没有其它方法了,因此在数据库出现问题的时候,如果不确认情况的复杂程度,千万不要随便关闭数据库。重启数据库往往是没有意义的,甚至是致命的。 当然,客户的操作系统是Solaris,并且客户删除的文件还包括 current online redo log,因此还有其它更复杂的操作,不在这里描述。数据恢复:如何恢复Linux中意外删除的Oracle和MySQL数据库
标签:tleimage描述符displaycurrent.com情况mysql数据库height

linuxrm-rf删除的文件怎么恢复

linuxrm-rf删除的文件恢复方法如下:
***隐藏网址***
2、这个工具和还有一些其他类似的恢复工具,都是基于inode,还原文件的,也就是说,需要被删除文件的inode还在,没有被覆盖,即在文件删除之后,没有读写输入。所以第一件事就是挂起文件所在分区。但是这个操作有个问题就是,如果系统只有一个挂载盘,而且还是线上服务的话,挂起是不现实的。并且就算读写不多,但是系统本身没有安装这些恢复工具,在你安装编译这些恢复工具时的读写,也很可能把删除的文件inode覆盖了。

Linux系统下不小心使用rm命令删除的文件能有办法恢复吗

1、 查看一下当前系统版本号,及文件系统格式

2、新建一个文件夹及文件my.txt,然后删除

3、运用,系统自还工具debugfs来修复 打开,刚刚被删除文件所在的分区,用ls 加-d参数显示刚刚删除文件所在的

4、显示有《》尖括号的就是我们要找的文件Inode 号 执行logdump _i 《2378808》,然后输入“quit”退出

5、执行以下命令,进行恢复,bs与skip的值分

bs对应上面的offset后面的值,skip对应block后面的值

至此,刚删除的数据已恢复

linux dd命令

Linux dd命令用于读取、转换并输出数据。

dd可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出。

在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来恢复的。

1)打开被删除文件所在的分区
2)用ls -d显示被删除的文件
3)执行logdump –i 命令
4)退出

其中bs对应上面offset的值,skip对应上面block的值

linux下rm- rf能挽回数据吗

在linux下rm -rf是一个很可怕的命令,这个命令意味着一旦删除的文件是无法挽回的。但是在一定的条件下可以补救,但是有个大前提:就是不能有覆盖的动作(意思就是在尝试恢复删除的数据前,删除文件的目录内不能存放新东西),不然覆盖多少就损失多少。
这里用到的套件是ext3grep、系统必须默认的安装上e2fsprogs-lib、2fsprogs-devel、e2fsprogs5、gcc、gcc++这些软件。
1、# rpm -qa|grep e2fsprogs
e2fsprogs-libs-1.39-23.el5
e2fsprogs-devel-1.39-23.el5
e2fsprogs-1.39-23.el5
源码安装ext3grep
2、 # llext3grep-0.10.2.tar.gz
-rw-r--r-- 1 root root 236364 Oct 17 2011 ext3grep-0.10.2.tar.gz
# tar zxvf ext3grep-0.10.2.tar.gz
# cd ext3grep-0.10.2
# ./configure
# make && make install
# ll /usr/local/bin
total 2656
-rwxr-xr-x 1 root root 2709704 Oct 15 04:46 ext3grep //www.linuxidc.com这句是那个可执行文件。
接下来演示一个补救的过程实例
# mkdir /data/ /ixdba/
# dd if=/dev/zero of=data-disk bs=1M count=105
# mkfs.ext3 data-disk //格式为ext3的文件系统,在出现的提示符处输入y
# mount -o loop /data/data-disk /ixdba/ //挂载
# cp /etc/host* /ixdba/ //往里边放文件
# cp /etc/passwd /ixdba/
# cd /ixdba/
# rm -rf * //制造删除的动作
# cd /data/
# ext3grep /data/data-disk --ls --inode 2 //查看丢失的文件
# ext3grep /data/data-disk --restore-file passwd //仅仅恢复passwd这个文件
# ext3grep /data/data-disk --restore-all //恢复的动作,全部恢复。
# ls
data-disk data-disk.ext3grep.stage1 data-disk.ext3grep.stage2 RESTORED_FILES
# ll RESTORED_FILES/ //所有恢复的文件全在这个文件夹里存放,都找回来了
total 48
-rw-r--r-- 1 root root 17 Oct 15 06:03host.conf
-rw-r--r-- 1 root root 187 Oct 15 06:03hosts
-rw-r--r-- 1 root root 161 Oct 15 06:03hosts.allow
-rw-r--r-- 1 root root 347 Oct 15 06:03hosts.deny
drwx------ 2 root root 4096 Oct 15 06:04 lost+found
-rw-r--r-- 1 root root 1635 Oct 15 06:03 passwd
总结:这里只能实现的是首次恢复的动作,并且不能有覆盖的动作。
注意:
1. ext3grep后面跟的是分区名称,不是目录名
2. --restore-file恢复指定文件,对路径名有特殊要求,具体请自己用—help查看
3. 所有恢复的文件放到该分区下的RESTORED_FILES目录,不是原目录
4. 关于所需的安装包,可以在系统光盘、SDK光盘上找。

关于linux怎么恢复rm误删的数据到此分享完毕,希望能帮助到您。

linux怎么恢复rm误删的数据(rm -rf 误删数据,如何进行磁盘数据恢复)

本文编辑:admin

更多文章:


root手机会有什么后果(我想开启root权限,那么做之后对手机有什么危害吗)

root手机会有什么后果(我想开启root权限,那么做之后对手机有什么危害吗)

本篇文章给大家谈谈root手机会有什么后果,以及我想开启root权限,那么做之后对手机有什么危害吗对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月7日 21:00

win7更新和安全在哪里(win7 64位 windows update更新存储文件位置在哪里 啊)

win7更新和安全在哪里(win7 64位 windows update更新存储文件位置在哪里 啊)

本篇文章给大家谈谈win7更新和安全在哪里,以及win7 64位 windows update更新存储文件位置在哪里 啊对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,

2026年9月7日 18:50

阿里旺旺苹果手机版(苹果iPhone 4手机能用阿里旺旺吗)

阿里旺旺苹果手机版(苹果iPhone 4手机能用阿里旺旺吗)

“阿里旺旺苹果手机版”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看阿里旺旺苹果手机版(苹果iPhone 4手机能用阿里旺旺吗)!

2026年9月7日 17:50

qq号批发发卡网24小时(想卖qq去哪个平台)

qq号批发发卡网24小时(想卖qq去哪个平台)

“qq号批发发卡网24小时”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看qq号批发发卡网24小时(想卖qq去哪个平台)!

2026年9月7日 17:20

纸飞机app聊天软件下载(纸飞机app中文版下载社交)

纸飞机app聊天软件下载(纸飞机app中文版下载社交)

其实纸飞机app聊天软件下载的问题并不复杂,但是又很多的朋友都不太了解纸飞机app中文版下载社交,因此呢,今天小编就来为大家分享纸飞机app聊天软件下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月7日 14:30

raysource软件手机版下载(ray的这个软件你有吗)

raysource软件手机版下载(ray的这个软件你有吗)

今天给各位分享ray的这个软件你有吗的知识,其中也会对ray的这个软件你有吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 13:40

启动盘制作完成后怎么放入系统(u盘启动盘制作好了要怎么做才能装系统)

启动盘制作完成后怎么放入系统(u盘启动盘制作好了要怎么做才能装系统)

大家好,启动盘制作完成后怎么放入系统相信很多的网友都不是很明白,包括u盘启动盘制作好了要怎么做才能装系统也是一样,不过没有关系,接下来就来为大家分享关于启动盘制作完成后怎么放入系统和u盘启动盘制作好了要怎么做才能装系统的一些知识点,大家可以

2026年9月7日 13:30

电脑游戏免费软件(可以不花钱玩电脑游戏的,软件有哪些)

电脑游戏免费软件(可以不花钱玩电脑游戏的,软件有哪些)

本篇文章给大家谈谈电脑游戏免费软件,以及可以不花钱玩电脑游戏的,软件有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 12:50

cpu天梯图2022年11月(2022手机cpu性能排行榜天梯图)

cpu天梯图2022年11月(2022手机cpu性能排行榜天梯图)

大家好,关于cpu天梯图2022年11月很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于2022手机cpu性能排行榜天梯图的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位

2026年9月7日 10:10

hotbox(hotbox raye歌词)

hotbox(hotbox raye歌词)

各位老铁们,大家好,今天由我来为大家分享hotbox,以及hotbox raye歌词的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月7日 05:00

最近更新

热门文章

dessert(dessert是什么意思)
2026-05-03 12:45:03 浏览:7
标签列表