如何在Linux系统中恢复误删除的文件

如何在Linux系统中恢复误删除的文件,第1张

作为一个多用户、多任务的 *** 作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以回复的1、Ext2文件系统结构的简单介绍在Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号就是1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。2、恢复被误删文件的方法大多数Linux发行版都提供一个debugfs工具,可以用来对Ext2文件系统进行编辑 *** 作。不过在使用这个工具之前,还有一些工作要做。首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)mount–r–n–oremount/usr-r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxxpartionbusy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:fuser–v–m/usr如果没有什么重要的进程,用以下命令停掉它们:fuser-k–v–m/usr然后就可以重新挂载这些文件系统了。如果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linuxsingle进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些有用的数据。如果机器上有dos/windows,可以写到这些分区上面:mount–r–n/dev/hda1/mnt/had然后就可以执行debugfs:(假设Linux在/dev/hda5)#debugfs/dev/hda5就会出现debugfs提示符debugfs:使用lsdel命令可以列出很多被删除的文件的信息:debugfs:lsdeldebugfs:2692deletedinodesfound.InodeOwnerModeSizeBlocksTimedeleted164821010060081921/1SunMay1319:22:462001…………………………………………………………………………………36137010064441/1TueApr2410:11:152001196829010064414950038/38MonMay2713:52:042001debugfs:列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。然后就可以根据文件大小和删除日期判断那些是我们需要的。比如我们要恢复节点是196829的文件:可以先看看文件数据状态:debugfs:statInode:196829Type:regularMode:0644Flags:0x0Version:1User:0Group:0Size:149500FileACL:0DirectoryACL:0Links:0Blockcount:38Fragment:Address:0Number:0Size:0ctime:0x31a9a574--MonMay2713:52:042001atime:0x31a21dd1--TueMay2120:47:292001mtime:0x313bf4d7--TueMar508:01:272001dtime:0x31a9a574--MonMay2713:52:042001BLOCKS:594810594811594814594815594816594817………………………………….TOTAL:38然后就可以用dump指令恢复文件:debugfs:dump/mnt/hda/01.sav这样就把文件恢复出来了。退出debugfs:debugfs:quit另一种方法是手工编辑inode:debugfs:miMode[0100644]UserID[0]GroupID[0]Size[149500]Creationtime[0x31a9a574]Modificationtime[0x31a9a574]Accesstime[0x31a21dd1]Deletiontime[0x31a9a574]0Linkcount[0]1Blockcount[38]Fileflags[0x0]Reserved1[0]Fileacl[0]Directoryacl[0]Fragmentaddress[0]Fragmentnumber[0]Fragmentsize[0]DirectBlock#0[594810]…………………………….TripleIndirectBlock[0]使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletiontime改成0(未删除),Linkcount改成1。改好后退出debugfs:debugfs:quit然后用fsck检查/dev/hda5fsck/dev/hda5程序会说找到丢失的数据块,放在lost+found里面。这个目录里的文件就是我们要的东东。

Linux中误删除libselinux恢复方法

*** 作环境:CentOS7.5

背景:安装openssl-devel时报错:

Error: Protected multilib versions: libselinux-2.5-12.1.el7.x86_64 != libselinux-2.5-14.1.el7.x86_64卸载了libselinux-2.5-14.1.el7.x86_64导致服务器故障。 rpm -e --nodeps libselinux-2.5-14.1.el7.x86_64

执行命令报:

修复方法:需要拷贝一个libselinux.so.1文件到/lib64/目录下

一、不关机修复

1、在故障服务器启动一个rsync

2、在另一台CentOS7.5服务器启动一个客户端。

3、在故障服务器把客户端拷贝过来的文件在拷贝到/lib64/

二、关机修复

说明:服务器没有安装rsync,需要挂在系统版本镜像,重启服务器进入救援模式。

1、进入救援模式的方法,如图选择Troubleshooting,在选择rescue a CentOS system,输入1获得一个有读写权限的shell。

2、重新挂载下系统为读写权限

3、输入ls /lib64/libc.so.6命令查看是否有该文件(因为是光盘自带的系统,并没有挂载在根目录下,所以该文件没有被删除)

4、找到了所需要的文件,只需要把该文件复制到丢失文件的系统里就可以(系统被挂载到了/mnt/sysimage目录中)

cp /lib64/libc.so.6 /mnt/sysimage/lib64(把文件复制到丢失的文件系统里)

5、重启服务器恢复正常。

6、进入救援模式遇到报错情况处理:

进入以下界面时报:

the rescue environment will now attempt to find your linux installation and mount it under the directory : /mnt/sysimage. you can then make any changes you can choose to mount your file systems read-only instead of read-write by choosing 2 if for some reason this process does not work chroot 2

时不能选择1以读写的权限进入系统,只能选择2以只读的模式进入到系统。

重新挂载一个除了系统版本外的ISO镜像,在进入到救援模式后,选择1以读写的方式进入系统,拷贝libselinux.so.1文件到lib64目录下,在重新挂载系统本身版本ISO后就可以选择1以读写的模式进入系统重新拷贝libselinux.so.1文件。

7、重启进入系统时报:

解决方法:

1、系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quiet” 一栏,按‘e’键进入编辑,在末尾增加enforcing=0,即:

kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quiet enforcing=0(其中enforcing=0是需要加上去的,其他不动)

按‘b’键继续引导,正常进入系统。

2、如果系统启动按e不能进入到grub界面,那就是libselinux.so.1文件不兼容导致服务器不能启动上来,需要重新进入救援模式把/mnt/sysimage/lib64/libselinux.so.1删除后重新拷贝一个文件进入重启服务器,正常进入系统。

电脑文件夹误删怎么恢复?如今,电脑已经是我们办公、生活和娱乐中必不可少的设备,更是存储着我们很多重要的文件。但是,有的时候一些使用者可能会不小心删除了自己还需要的重要文件,给生活或工作带来巨大的麻烦。这个时候不用着急,有一个超级简单的方法帮助您恢复您误删除的文件。

首先,我们可以查看电脑的回收站,只要不是永久删除的文件,都会保存在回收站里,右键还原文件就可以。

但如果是永久删除的文件呢?那靠普通使用者在电脑本身的 *** 作就很难找回了,但是我们可以求助一些专业的数据恢复软件,具体 *** 作步骤如下:

第二步:在“场景模式”中选择符合自己情况的恢复模式,即可快速扫描丢失文件。还可以点击下方的“向导模式”进行切换,享受更简便的 *** 作;

第三步:找到自己丢失的文件。一般来说,如果误删之后没有其它 *** 作,短期内立马进行扫描的话,丢失数据找回的概率非常大,这时候勾选找到的文件点击恢复即可。

这就是关于电脑文件夹误删恢复方法的具体介绍了。嗨格式数据恢复大师软件解决了很多技术层面的问题,用户只需要根据软件的引导,几个简单的点击就可以找回自己误删除丢失的文件,可以说是非常简单方便了。这么简单的方法,你记住了吗?


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8429049.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存