ITPub博客

首页 > Linux操作系统 > Linux操作系统 > linux 删除操作发生了什么? 误删怎么办?

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

原创 Linux操作系统 作者:wffeige 时间:2017-02-21 15:13:45 0 删除 编辑
删除一个文件到底删除了那些?
清空目录项,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博客 ” ,链接:https://blog.itpub.net/31385999/viewspace-2134045/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-08-18

  • 博文量
    32
  • 访问量
    44789