一、inode与block
1、扇区
- 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节(约0.5k)
2、block(块)
- 连续八个扇区组成一个block(8个0.5k=4k)
- 是文件存取的最小单位
3、inode(索引节点)
- 中文译名为“索引节点),也叫i节点
- 用于存储文件元信息
4、文件
- 文件数据包括元信息与实际数据
总结
-
当用户在Linux系统中试图访问一个文件时,系统会现根据文件名去查找对应的indoe号;通过indoe号获取inode信息,根据inode信息来查看该用户是否具有访问这个文件的权限,如果有,就指向对应的数据block,并去读取数据。
-
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
-
Linux系统内部不使用文件名,而是用inode号码来识别文件
-
对于用户,文件名只是inode号码便于识别的别称
-
inode包含文件的元信息
1、文件的字节数
2、文件拥有者的User ID
3、文件的Group ID
4、文件的读、写、执行权限
5、文件的时间戳
-
用stat命令可以查看某个文件的inode信息
1、 stat 1.txt
2、 ls -i
二、Linux系统三个主要的时间属性
- ctime (change tiome)
最后一次改变文件或目录(属性)的时间 - atime(access time)
最后一次访问文件或目录的时间 - mtime(modify time)
最后一次修改文件或目录(内容)的时间
三、模拟inode节点耗尽实验
- 注:inode也会消耗硬盘空间
- 每个inode的大小一般是128字节或256字节
- 格式化文件系统时,会确定inode的总数
- 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
1、命令步骤
1 fdisk /dev/sdb 控制磁盘
2 mkfs.xfs /dev/sdb1 格式化
3 mkdir /inode 创建目录,用于挂载
4 mount /dev/sdb1 /inode 挂载
5 df -i 查询可用inode号
6 for ((i=1;i<=7700;i++));do touch /sdb1$i;done; 模拟inode节点耗尽
2、实验步骤
添加硬盘一块20G的硬盘
开机查看磁盘列表
输入fdisk -l 看到新增硬盘
进行分区
进行挂载之前需先确定文件系统类型,进行格式化,格式华为ext3
在根目录下创建一个子目录/bibibi用于挂载
查看
使用for循环创建文件,超出inode号范围会无法创建
经过查看挂载表,发现已用容量仅80M,却无法再创建文件