文章目录
前言
在处理Linux系统出现的各种故障时,故障的症状是最容易发现的,而导致这一故障的原因才是最终排除故障的关键,熟悉Linux系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点,“对症下药”,及时解决各种系统问题,由于故障现象的不确定性,在进行一些模拟故障的操作之前,最好提前做好备份
一、inode与block
- 文件存储在硬盘上,硬盘的最小存储单元是“扇区”,每个扇区存储512字节
1.block
- 一般连续八个扇区组成一个“块”(block),一个块是4K大小,是文件存取的最小单位
- 操作系统读取硬盘的时候,一次性读取一个块
2.元信息
- 文件数据包括实际数据与元信息(类似文件属性)
- 文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode。 因此,一个文件必须占用一个inode,并且至少占用一个block。inode不包含文件名。文件名是存放在目录当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
3.inode
- 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。
用户通过文件名打开文件时,系统内部的过程:
①系统会先根据文件名去查找它对应的inode号码
②通过inode号码,获取inode信息
③根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。
4.查看文件名对应的inode 号码有两种方式
- ls -i 文件名 (仅显示文件名和大小)
- stat 文件名 (更详细一些)
- inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据:另一个是inode区,存放inode所包含的信息。每个inode的大小,一般是128字节或256字节。
- 通常情况下不需要关注单个inode的大小,而是需要重点关注inode.总数。inode的总数在格式化时就给定了,执行**“df-i”**命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode数量。
5.Linux系统文件有三个主要的时间属性
- 最近访问(Access):最后一次访问文件或目录的时间
- 最近更改(Modify):最后一次修改文件或目录(内容)的时间
- 最近改动(Change):最后一次改变文件或者目录(属性)的时间
注:由于inode号码与文件名分离,导致Linux系统具备以下几种特有的现象:
1.文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用;
2.移动文件或重命名文件,只是改变文件名,不影响inode 号码;
3.打开一个文件以后,系统就以inode 号码来识别这个文件,不再考虑文件名。
4.文件数据被修改保存后,会生成-一个新的inode 号码。
find ./ -inum 52305140 -exec rm -i {} ;
find ./ -inum 50464299 -delete
二、inode耗尽故障处理
每个文件都会有一个inode号码,但这样就会有可能会发生inode已经用光,但硬盘还未存满的情况,一旦发生这种情况后,我们就无法再在硬盘上创建新文件了,为了更直观的让大家理解,下面通过一个案例