linux 删除操作发生了什么? 误删怎么办?

本文详细解释了在Linux系统中删除文件的过程,包括目录项、inode节点和数据块的处理方式。介绍了如何通过保留的inode信息恢复已删除的文件,并讨论了误删后的应对措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

删除一个文件到底删除了那些?
清空目录项,inode的映射表  将inode号设为0

block映射表(bit table 位图)  将block设为0


在一般的删除文件操作中,Linux 并不会立即清空存储该文件的 block 内容,而只会释放该文件所占用的 inode 和 data block,Linux 上 

rm 的过程其实就是将 inode bitmap 和 data block bitmap 中的相应标识设为空闲状态的过程,并不涉及到真正的数据,这也是为什么在 Linux 下删除大文件这么快速的原因,因为大文件所占的磁盘根本就没有清空。所以,如果我们能找到文件对应的 inode,由此查到相应的 data block,就可能从磁盘上把已删除的文件恢复出来,很多文件/磁盘恢复工具都是这么做的。


Linux正统的文件系统(如ext2、3等)将硬盘分区时会划分出目录块、inode Table区块和data block数据区域。一个文件由一个目录项、inode和数据区域块组成。Inode包含文件的属性(如读写属性、owner等,以及指向数据块的指针),数据区域块则是文件内容。当查看某个文件时,会先从inode table中查出文件属性及数据存放点,再从数据块中读取数据。


系统通过文件名 找到inode号  通过inode号 获取inode信息,最后根据inode信息找到文件数据所在的BLOCK 读取数据
目录项:包括文件名和inode节点号。
目录项的结构如下(每个文件的目录项存储在该文件所属目录的文件内容里(block块里)
Inode:又称文件索引节点,是文件基本信息(类型、大小、权限、时间、链接数等)的存放地和数据块指针存放地。
一个文件占用一个inode




误删怎么办?
删除文件后停止写操作,
 grep -a -B 10 -A 100  '关键字' /dev/sda1 > tmp.txt

如果有备份机的话 直接dd 







来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31385999/viewspace-2134045/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31385999/viewspace-2134045/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值