Linux教程Linux
首页
基础知识
Linux业界
Linux系统
Linux人物
Linux文化
Linux资讯
Linux综合
当前位置:
Linux教程
-
Linux
- Linux下的undelete
Linux下的undelete
Linux中没有象DOS中undelete这样简单的工具, 它安装好后只是做了个
alias rm=\rm -i\的alias, 先confirm一下才删. 但假如真错删了重要
文件怎么办? 一个解决办法是用mc(midnight commander), 它有个undelete
功能,可以找到ext2 fs上被删掉的i-node, 文件名是无法恢复了(因为ext2
也用Unix的传统,目录文件中保存文件名和i-node index, 删除时将i-node
清为0, 因此从i-node table是无法反查到目录文件的), 但文件的其余信息
都还在.
我在恢复一个重要文件时发现mc只能恢复前12K内容,觉得很奇怪, 用
lde(Linux Disk Editor, 仿Norton做的, 编辑硬盘block很好用)学了一下
ext2 fs, 结构很简单, 每个i-node中12个direct block, 3个1/2/3次indirect
block. 而Linux Kernel在删文件时做了一件令我费解的事: 它把所有的
indirect block全清0! 按道理在block bitmap中标为free就得了,将其
zero简直是吃力不讨好. 这也就是为什么mc只能恢复12K(direct block)的原因
而且若文件的block不是连续存放的,那将导致后面的block根本无法恢复!
不过幸好,我那个文件只几十K(源程序), 而且是unfragmented的,即
block连续,用lde手工恢复了个indirect block就OK了. 据说在2.1.x板的
kernel中已将zero indirect block的举动去掉了, 那样恢复起来就好办多了.
(干完后才发现有篇mini-HOWTO是讲undelete的 :-( )
吸取这次教训,我装了个safedelete, alias rm=safedelete, alias purge=rm
它起Win95中RecycleBin的作用,删掉的文件存于一个地方,过指定时间自动
purge, 还廷好用。
注:参考:
http://pobox.com/~aaronc/tech/e2-undel/
还看到另外一个UnDelete工具。
发布人:netbull 来自:JJ的Linux世界
qmail使用系统用户作为邮件账户的安装与配置
Linux 不是 .com,更不是泡沫
局域网安全
企業應用文章: 成功案例:跟Windows說再見
Linux初学者Patch使用指南
善用 Perl Date Structure 和 reference
不用刻盘直接从硬盘安装所有iso发行版Linux操作系统(巧用Vmware3.0)
Linux命令与征服
LynxOS、QNX、Linux的分析和比较
有关raw socket的一些知识
循序渐进学习LINUX之特性综述
Linux内核即时入侵检测安全增强-实现
Unix编程/应用问答中文版 ---4.系统资源相关问题
程序代码美化工具(pretty print program)的使用
Internet防火墙技术及安全策略
站点导航
Linux教程
Php
Linux
非技术类
指令大全
Shell
安装启动
Xwindow
Kde
Gnome
输入法类
美化汉化
网络配置
存储备份
杂项工具
编程技术
网络安全
内核技术
速度优化
Apache
Email
Ftp服务
Cvs服务
代理服务
Samba
域名服务
网络过滤
其他服务
Nfs
Oracle
Dhcp
Mysql
Ldap
RedHat
赞助商链接