Linux基础之Inode

Linux基础之Inode

当在磁盘,分区或卷上创建文件系统(格式化)后,就会被划分成两部分

元数据(metadata)

数据块(data block)

inode表结构

每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据。此元数据的hi存放在node(index node)表中的。node表中由很多记录组成,第一条记录对应的存放了一个文件的元数据信息

  • inode number 节点号
  • 文件类型
  • UID
  • GID
  • 链接数(指向这个文件路径名称个数)
  • 该文件的大小和不同的时间戳
  • 指向磁盘上文件的数据块指针
  • 有关文件的其他数据

inode有两个功能:记录档案属性和指针。

操作系统通过inode值可以快速地找到文件所对应的数据块

[root@centos8 ~]# ls -lhi
total 16K
201326724 -rw-------. 1 root root 1.7K Jul 13 21:56  anaconda-ks.cfg
201478671 -rw-r--r--  1 root root    0 Jul 30 10:52 'date -d +%F_%T'
135007197 drwxr-xr-x. 2 root root    6 Jul 21 12:57  Desktop
135007198 drwxr-xr-x. 2 root root    6 Jul 21 12:57  Documents
202056447 drwxr-xr-x. 2 root root    6 Jul 21 12:57  Downloads
201478707 -rw-r--r--. 1 root root    9 Jul 21 16:30  f1
201478709 -rw-r--r--. 1 root root    9 Jul 21 16:32  f1.txt
202172389 -rw-r--r--. 1 root root    0 Jul 22 14:05  file1

inode区域和block区域

inode表

  • 文件对象的inode编号除文件名外,所有文件属性信息
  • 指向数据块区域的指针
  • 表里inode编号数量有限,当inode编号用完,即使有数据区域内存空间也不能在表建立新的inode

inode位图

二进制记录 看空缺

block位图

二进制记录 查看哪个块用没用

block区域

文件保存有需要一个或多个块

目录

是一种特殊文件 保存的是inode与文件名和子目录名
在这里插入图片描述

cp和inode

  • 分配一个空闲的inode号,在inode表中生成新条目
  • 在目录中创建一个目录项,将名称与inode编号关联
  • 拷贝数据生成新的文件

rm和inode

链接数递减,从而释放的inode号可以被重用

  • 把数据块放在空闲列表中
  • 删除目录项
  • 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

mv和inode

如果mv命令的目标和源在相同的文件系统,作为mv命令

​ 用新的文件名创建对应新的目录项

​ 删除旧目录条目对应旧的文件名

​ 不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

  • 如果目标和源在一个不同的文件系统,mv相当于cp和rm

在这里插入图片描述

在这里插入图片描述

inode与文件存储

在这里插入图片描述

(1)前12个直接指针,直接指向存储的数据区域

如Blocks大小为4096,则前12个直接指针就可以保存48KB文件。

(2)一级指针可存储文件大小计算

假设每个指针占用4个字节,则一级指针指向的Block可保存4096/4指针,可指向1024个Block。一级指针可存储文件数量大小为1024*4096=4MB。

(3)二级指针可存储文件大小计算

同样按照Block大小为4096,则二级指针可保存的Block指针数量为(4096/4) *(4096/4)=1024*1024,则二级指针可保存的文件数量大小为(1024 * 1024)4096=4GB

(4)三级指针可存储文件大小计算

以一级,二级指针计算方法类推,三级指针可存储的文件数量大小为(1024 * 1024 * 1024) * 1024=4TB

件数量大小为(1024 * 1024)4096=4GB

(4)三级指针可存储文件大小计算

以一级,二级指针计算方法类推,三级指针可存储的文件数量大小为(1024 * 1024 * 1024) * 1024=4TB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值