如何在Linuxext3文件不会被删除
对1.ext3文件系统结构简介在使用Linux ext3文件系统,文件存储在块。默认情况下,每个块的大小是1K,不同的块的块号区分。每个文件也有一个文件的所有者节点,读写权限,文件类型,等等。对于一个文件小于12块,文件的数据块的块号是直接存储在节点。如果文件大于12,则节点存储在12块,在间接块的块号对应一个间接块号、块256号文件中存储的数据块(每个块号ext2fs占用4字节,这样一个存储块。块号是1024 4=256)。如果有较大的文件,则在节点中将有两个级别的间接块和一个三级间接块。
2。是恢复已删除文件的方法。
大多数的Linux发行版提供一个debugfs工具,可以用来编辑ext3文件系统,但是使用这个工具之前,还有很多工作要做。
首先是重新挂载只读分区被删除的文件,使用以下命令:(假设文件在/ usr分区)
山·R·N·O再登 / usr
- R表示只读方式挂载;N表示不写 / /混合气等,这些参数是说如果要恢复/文件如果系统说XXX我很忙,你可以使用fuser命令查看进程使用这个分区上的文件:
熔断器—V—M / usr
如果没有重要的过程,用以下命令停止它们:
熔断器- K V M / usr
然后可以重新安装文件系统。
如果所有文件均安装在一个大的/分区,您可以使用Linux单在启动提示进入单用户模式,尽量减少系统进程的机会写数据到硬盘,或者硬盘挂在其他机器上。此外,恢复的数据不能写或以上避免损坏的有用数据。如果有一个DOS / Windows的机器上,你可以写信给这些分区:
山·R·N / / / dev HDA1 MNT /有
然后你可以执行debugfs:(假设是Linux / dev / hda5)
#debugfs /dev/hda5
debugfs debugfs将出现的提示:
使用lsdel命令,你可以列出很多被删除的文件的信息:
debugfs:lsdel
debugfs:2692删除节点发现。
inode主人模式大小的块时间删除
16482101006008192 1 / 1 19:22:46太阳5月13日2001
Hellip; hellip; hellip; hellip; hellip; hellip; hellip; hellip; hellip; hellip; hellip; hellip; hellip;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;; ;
3613701006444 1 / 1 4月24日星期二10:11:15 2001
196829010064414950 38 / 38 5月27日星期13:52:04 2001
Debugfs:
有很多列出的文件(这里是2692),第一个字段是文件节点数,第二场是文件的所有者,第三字段的读写权限,然后删除文件大小,职业,时间数。然后你就可以判断什么是我们需要的文件大小和删除的日期。例如,我们想要恢复的节点是196829的文件:
您可以先查看文件数据的状态:
debugfs:STAT
信息点:196829类型:普通模式:0644旗:0times;0版:1
用户:0组:0大小:149500
文件ACL:0目录ACL:0
链接:0 blockcount:38
片段:地址:0号码:0大小:0
Ctime:0times;31a9a574 mdash;5月27日星期13:52:04 2001
Atime:0times;31a21dd1 mdash;5月21日星期二20:47:29 2001
Mtime:0times;313bf4d7 mdash;3月5日星期二08:01:27 2001
Dtime:0times;31a9a574 mdash;5月27日星期13:52:04 2001
阻碍:
594810594811594814 594815594816594817 。
总计:38
然后,您可以使用转储指令恢复文件:
Debugfs:转储/ mnt / / 01.sav HDA
这样,文档恢复。退出debugfs:
Debugfs:退出
另一种方法是手动编辑模式:
debugfs:MI
模式{ 0100644 }
用户ID { 0 }
组ID { 0 }
大小{ 149500 }
创建时间31a9a574 } { 0times;
修改时间31a9a574 } { 0times;
访问时间31a21dd1 } { 0times;
删除时间{ 0times;31a9a574 } 0
链接计数{ 0 } 1
块计数{ 38 }
文件标志{ 0 } 0times;
保留1 { 0 }
文件ACL { 0 }
目录ACL { 0 }
片段地址{ 0 }
片段号码{ 0 }
片段大小{ 0 }
直接块# 0 { 594810 }
。
三重间接区块{ 0 }
在使用MI指令之后,每一行都显示为每次编辑,而其他行可以直接通过进入车厢来识别。删除时间变为0(不删除),和链接数改为1,改后退出debugfs:
Debugfs:退出
然后检查/ dev / hda5和fsck
fsck / dev / hda5
程序说找到丢失的数据块,并把它放在丢失+发现。