Linux文件系统与日志分析(一)

目录

一.inode和block概述

1.文件 扇区

2.块block

3.inode 索引节点

4.查找文件的过程

二.inode号

1.stat +文件名

2.inode的大小

3.inode号的查询

1.ls -i

扫描二维码关注公众号,回复: 13192237 查看本文章

 2.stat (更加详细)

4.通过inode号删除文件

三.模拟inode号用光的情况

 四.文件恢复-extundelete

 模拟删除


一.inode和block概述

文件数据包括元信息与实际数据,一个文件必须占有一个inode,但至少占用一个block

1.文件 扇区

文件是存储在硬盘上的,硬盘的最小存储单位是扇区,每个扇区存储512字节

每个分区都有自己的分区节点编号

2.块block

文件存取的最小单位是block,一个block为4KB。八个扇区组成一个block

系统读取数据是多个扇区进行读取,即一个块一个块进行读取

3.inode 索引节点

inode用于存储元信息。

每个inode都有一个号码,操作系统用inode号码来识别不同的文件。

对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。

每一个inode表记录对应的保存了以下信息:

  • inode number 节点号

  • 文件类型

  • 权限

  • UID

  • GID

  • 链接数(指向这个文件名路径名称个数)

  • 该文件的大小和不同的时间戳

  • 指向磁盘上文件的数据块指针

  • 有关文件的其他数据

4.查找文件的过程

当一个用户在Linux系统中访问一个文件时,系统会先根据文件名去寻找它的inode号,查找它的inode号。查看该用户是否具有访问文件的权限。如果有就指向对应的数据块。如果没有就返回permission denied

二.inode号

1.stat +文件名

可以查看主要时间属性

  • ctime(change time)最后一次改变文件或目录(属性)的时间
  • atime(access time)最后一次访问文件或目录的时间
  • mtime(modify time)最后一次修改文件或目录(内容)的时间

新建文件时,三种状态时间是一样的

写内容(echo没打开)后两种状态时间会改变

修改权限,只有最后一种时间状态改变

vim打开,只有第一种时间状态改变

2.inode的大小

每个inode的大小一般是128字节或256字节

使用df -ih可以查看inode的使用情况

3.inode号的查询

1.ls -i

 2.stat (更加详细)

4.通过inode号删除文件

find ./ -inum inode号 -exec rm -i {} \;

find ./ -inum inode号 -delete

 

inode号用完之后就不能再创建文件了

但是系统会比显示的可用inode号多一点点

当硬盘空间是充足的,但是无法创建文件时,就需要考虑一下是不是inode号分配完了

三.模拟inode号用光的情况

 touch  {1..比inode号多一点}.txt  |xargs touch &

如果是在逻辑卷上创建文件的话,当inode号用光后,扩容后会新增一些inode号供继续使用

 四.文件恢复-extundelete

 在编译安装 extundelete 之前需要先安装两个依赖包 e2fsprogs-libs 和 e2fsprogs-devel。

下载网址:extundelete-0.2.4.tar.bz2

 

 模拟删除

恢复之前需解挂载,恢复的是磁盘内的内容

猜你喜欢

转载自blog.csdn.net/oyyy3/article/details/120421494