Linux 系统文件误删除,求恢复!!!
【转】Linux 下的文件一旦被删除,是难以恢复的。
尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘动作的进程会很快覆盖这些数据。
不过,对于家庭单机使用的Linux ,或者误删文件后及时补救,还是可以恢复的。
1 、Ext2文件系统结构的简单介绍 在Linux 所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。
每个文件还有一个节点,节点中包含有文件所有者,读写权限,文件类型等信息。
对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。
如果文件大于12个块,那么节点在12个块号之后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256 个文件数据块的块号(Ext2fs中每个块号占用4 字节,这样一个块中所能存储的块号就是1024/4=256)。
如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。
2 、恢复被误删文件的方法 大多数Linux 发行版都提供一个debugfs 工具,可以用来对Ext2文件系统进行编辑操作。
不过在使用这个工具之前,还有一些工作要做。
首先以只读方式重新挂载被误删的文件所在分区。
使用如下命令:(假设文件在/usr分区) mount –r –n –o remount /usr -r 表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。
如果系统说xxx partion busy,可以用fuser 命令查看一下是哪些进程使用这个分区上的文件: fuser –v –m /usr 如果没有什么重要的进程,用以下命令停掉它们: fuser -k–v –m /usr 然后就可以重新挂载这些文件系统了。
如果是把所有的文件统一安装在一个大的/ 分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。
另外,恢复出来的数据不要写到/ 上面,避免破坏那些有用的数据。
如果机器上有dos/windows ,可以写到这些分区上面: mount –r –n /dev/hda1 /mnt/had 然后就可以执行debugfs :(假设Linux 在 /dev/hda5) #debugfs /dev/hda5 就会出现debugfs 提示符debugfs : 使用lsdel 命令可以列出很多被删除的文件的信息: debugfs :lsdel debugfs : 2692 deleted inodes found. Inode Owner Mode Size Blocks Time deleted 164821 0 100600 8192 1/ 1 Sun May 13 19 :22:46 2001 ………………………………………………………… 36137 0 100644 4 1/ 1 Tue Apr 24 10 :11:15 2001 196829 0 100644 149500 38/ 38 Mon May 27 13 :52:04 2001 debugfs : 列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。
然后就可以根据文件大小和删除日期判断那些是我们需要的。
比如我们要恢复节点是196829的文件: 可以先看看文件数据状态: debugfs :stat Inode : 196829 Type: regular Mode : 0644 Flags : 0x0 Version:1 User: 0 Group: 0 Size : 149500 File ACL: 0 Directory ACL: 0 Links : 0 Blockcount : 38 Fragment: Address: 0 Number : 0 Size : 0 ctime : 0x31a9a574 —— Mon May 27 13:52:04 2001 atime : 0x31a21dd1 —— Tue May 21 20:47:29 2001 mtime : 0x313bf4d7 —— Tue Mar 5 08 :01:27 2001 dtime : 0x31a9a574 —— Mon May 27 13:52:04 2001 BLOCKS: 594810 594811 594814 594815 594816 594817 …………………………………。
TOTAL : 38 然后就可以用dump指令恢复文件: debugfs :dump /mnt/hda/01.sav 这样就把文件恢复出来了。
退出debugfs : debugfs :quit 另一种方法是手工编辑inode : debugfs :mi Mode [0100644] User ID [0] Group ID [0] Size [149500] Creation time [0x31a9a574] Modification time [0x31a9a574] Access time [0x31a21dd1] Deletion time [0x31a9a574] 0 Link count [0] 1 Block count [38] File flags [0x0] Reserved1 [0] File acl [0] Directory acl [0] Fragment address [0] Fragment number [0] Fragment size [0] Direct Block #0 [594810] ……………………………。
Triple Indirect Block [0] 使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time 改成0 (未删除),Link count改成1.改好后退出debugfs : debugfs :quit 然后用fsck检查/dev/hda5 fsck /dev/hda5 程序会说找到丢失的数据块,放在lost+found里面。
这个目录里的文件就是我们要的东东。
Linux操作系统备份后如何恢复?
如果你的Linux系统出现故障了,但只要ta和gzip还能用,你就可以凭借那些备份来恢复系统。
以运行级别1启动Linux,挂上“us”分区和“ackup”分区。
“cd ”。
“ta zxvf optackupsystemRfL4.0Bate1stin.tgz”,把文件“optackupsystemRfL4.0Bate1stin.tgz”解压缩和反归档到当前目录里。
“ta zxvf optackupsystemRfL4.0Bate1stoot.tgz”。
…… “ta zxvf optackupsystemRfL4.0Bate1stva.tgz”。
这样就OK了。
如果系统不能引导,看前面重建引导的方法。
如果你有幸安装了多个Linux,那么即使一个Linux彻底坏了也不怕。
你可以在一个还能正常运行的Linux中用命令“mkfs.ext3 dev分区编号”把坏Linux的分区格了,再把这个分区挂入这个好的系统的某个目录,进那个目录,然后解压缩和反归档那些备份文件,最后重建引导。
LINUX系统的硬盘用GHOST软件可以备份和恢复吗?
用GHOST对LINUX系统做备份1:要求将安装了LINUX系统的硬盘(原盘)整盘刻至另一硬盘(目标盘)。
2:所需工具:DOS系统引导盘,GHOST2003(版本低的对文件格式不能很好的支持),原盘(LINUX)的引导盘。
3:步骤:A:用DOS盘引导系统,进入GHOST2003界面。
选DISK-TO-DISK即可(可使用GHOST的默认选项)。
B:刻完之后,用目标盘启动有可能只显示LI即无法继续。
可用原盘(LINUX)的引导盘启动目标盘。
进入系统后再次安装LILO。
C:从新启动,目标盘即能自我引导。
(以上在 REDHAT LINUX7.2 下实验通过)附:原盘(LINUX)引导盘的制作方法:1, 格式化软盘: fdformat /dev/fd0H14402, 拷贝内核: cp vmlinuz /dev/fd0 ---vmlinuz对应具体的系统内核3, 设定引导区: rdev /dev/fd0 /dev/hda? ---?对应系统的/目录位置4, 设定只读: redv -r /dev/fd0 1
怎样在 Linux 系统中恢复已删除文件
yum install –y e2fsprogs-devel5执行make&& make install命令,这样就完成了extundelete的安装,说明未安装extundelete的依赖包e2fsprogs4安装依赖包: error: Can',开机后通过lsblk查看一下(sdb)。
如何在Linux系统中恢复误删除的文件8为新硬盘分区如何在Linux系统中恢复误删除的文件9格式化分区。
如何在Linux系统中恢复误删除的文件根据inode号对指定文件进行恢复。
如何在Linux系统中恢复误删除的文件验证恢复文件和原始文件的一致性.4,可通过fuser命令解决。
如何在Linux系统中恢复误删除的文件再次尝试卸载设备即可成功。
如何在Linux系统中恢复误删除的文件恢复数据——使用inode方式查看被删文件inode号。
如何在Linux系统中恢复误删除的文件10创建挂载点并挂载sdb1如何在Linux系统中恢复误删除的文件11模拟事故现场——拷贝一些文件或目录到sdb1如何在Linux系统中恢复误删除的文件模拟事故现场——删除刚拷贝的东西如何在Linux系统中恢复误删除的文件恢复数据——卸载设备(防止数据被写入)如何在Linux系统中恢复误删除的文件这里出现个小问题,设备繁忙无法卸载。
如何在Linux系统中恢复误删除的文件恢复数据——再试试文件名方式,再次恢复成功安装extundelete工具并验证是否安装完好;t find ext2fs library./configure若报错信息为configure.bz2安装包,2解压tar xf extundelete-0.2.4.tar.bz23预安装.2.tar,下载extundelete-0。
6能够正确显示软件版本号,应该没什么问题。
如何在Linux系统中恢复误删除的文件7模拟事故现场——创建一个新分区并挂载在Vmware中新增一块硬盘。
md5值完全一致,恢复成功
有没有最强大的数据恢复软件?给个下载地址,谢谢!
刻完之后,用目标盘启动有可能只显示LI即无法继续。
可用原盘(LINUX)的引导盘启动目标盘;fd0 ---vmlinuz对应具体的系统内核 3;fd0H1440 2;dev/用GHOST对LINUX系统做备份 1。
B: 1:从新启动,目标盘即能自我引导。
(以上在 REDHAT LINUX7,GHOST2003(版本低的对文件格式不能很好的支持)。
C: cp vmlinuz /.2 下实验通过) 附。
进入系统后再次安装LILO,原盘(LINUX)的引导盘:要求将安装了LINUX系统的硬盘(原盘)整盘刻至另一硬盘(目标盘):原盘(LINUX)引导盘的制作方法。
2:步骤: A:用DOS盘引导系统,进入GHOST2003界面。
选DISK-TO-DISK即可(可使用GHOST的默认选项)。
3, 设定引导区: rdev /, 拷贝内核;dev/, 格式化软盘: fdformat /:所需工具:DOS系统引导盘;dev/
linux操作系统哪里有下载linux和当下流行的软件...兼容?
linux又很多的发行版 推荐下面三个 1.国产红旗linux 个人觉得红旗的LINUX不是很好 对硬件支持也不是很好 但是你要是运气好的话装上去了就很爽 因为可以基本上的功能都有了下载地址 2UBUNTU 我个人最喜爱的LINUX 而且可以免费索取安装光盘( )我就收到了他们寄的光盘 很好。
下载地址: 3 fedora 我同学用过,我也用过 觉得是很好,和Ubuntu差不多吧 就是软件管理的程序不一样 下载地址: 由于linux 是从新写的代码,所以一般的windows的程序是不能直接运行的,但是日常办公是又替代软件的office软件用OpenOffice金山词霸的替代产品是 星际译王 RealPlayer又linux版本的 photoshop用GIMP 另外QQ也出了linux版本的 所以说日常使用是不成问题的 但是游戏相对比较少了 因为linux下的游戏都是要开放源代码的,也意味着别人可以随便借鉴了~而且这个系统有些操作是用命令的,有时也可能没有图形界面
转载请注明出处51数据库 » linux 恢复软件