深入理解Linux文件系统与日志分析(内涵理论与XFS、EXT文件数据恢复实验)

本文详细介绍了Linux文件系统的inode与block概念,包括inode的内容和作用,以及硬链接与软连接的区别。此外,文章通过实验展示了如何恢复XFS和EXT类型的误删除文件。最后,探讨了日志文件的分类、功能和分析方法,强调了日志在故障排查中的重要性。
摘要由CSDN通过智能技术生成

前言:
  • 在处理Linux系统出现的各种故障时,故障的症状是最容易发现的,而导致这一故障的原因才是最终排除故障的关键。

  • 熟悉Linux系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点,“对症下药”,及时解决各种系统问题。

一、inode与block
1.1 inode与block概述
  • 文件数据包括元信息与实际数据

文件存储在硬盘上,硬盘最小存储单位是“扇区”(物理)单元格,簇(逻辑上)。每个扇区存储512字节

block(块)

操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)

连续的八个扇区组成一个block

是文件存取的最小单位

inode(索引节点)

中文名译名为“索引节点”,也叫i节点

用于存储文件元信息

一个文件必须占用一个inode,但至少占用一个block
在这里插入图片描述

1.2 inode的内容

1.2.1 inode包含文件的元信息,但是不包含文件名

例如:
文件的字节数

文件拥有者的User ID

文件的Group ID

文件的读、写、执行权限

文件的时间戳

1.2.2 Linux系统文件三个主要的时间属性

ctime(change time)

最后一次改变文件或目录(属性)的时间

atime(access time)

最后一次访问文件或目录的时间

mtime(modify time)

最后一次修改文件或目录(内容)的时间

1.2.3 目录文件的结构

  • 目录是一种文件,每一行称为一个目录项

目录的文件结构:
在这里插入图片描述

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

Linux系统内部不适用文件名,而使用indoe号码来识别文件

对于用户来说,文件名只是inode号码便于识别的别称

1.2.4 ⭐inode的号码

  • 用户通过文件名打开文件时,系统内部的过程:

1、系统找到这个文件名对应inode号码

2、通过inode号码,获取inode信息

3、根据inode信息,找到文件数据所在的block,读出数据

  • 查看inode号码的方法:

stat 可以指定查看某个文件的inode信息

ls -i 查看文件名对应的inode号码

df -i 查看文件系统的inode数量信息(总数、已用、可用)

示例:

[root@localhost opt]# touch 123.txt
[root@localhost opt]# ls
123.txt  rh
[root@localhost opt]# stat 123.txt
  文件:"123.txt"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:802h/2050d	Inode:34952126    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2019-11-23 15:40:34.983126324 +0800
最近更改:2019-11-23 15:40:34.983126324 +0800
最近改动:2019-11-23 15:40:34.983126324 +0800
创建时间:-
[root@localhost opt]# ls -i
34952126 123.txt   1477390 rh
[root@localhost opt]# df -i
文件系统          Inode 已用(I)  可用(I) 已用(I)% 挂载点
/dev/sda2      10485760  121060 10364700       2% /
devtmpfs         229705     372   229333       1% /dev
tmpfs            233378       1   233377       1% /dev/shm
tmpfs            233378     560   232818       1% /run
tmpfs            233378      16   233362       1% /sys/fs/cgroup
/dev/sda5       5242880     142  5242738       1% /home
/dev/sda1       2097152     328  2096824       1% /boot
tmpfs            233378       6   233372       1% /run/user/42
tmpfs            233378      15   233363       1% /run/user/0

1.2.5 文件存储小结

硬盘分区后的结构:
在这里插入图片描述

文件访问的简单流程:
在这里插入图片描述

1.2.6 inode的大小

inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节

格式化文件系统时确定inode的总数

使用df -i 命令可以查看每个硬盘分区的inode总数和已经使用的数量

df常用参数与功能:
在这里插入图片描述

1.2.7 inode的特殊作用

由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象

当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件。

移动或重命名文件时,只改变文件名,不影响inode号码

打开一个文件后,系统通过inode号码来识别该文件,不考虑文件名

这使得软件更新变得简单,可以在不关闭软件的情况下进行更新,不需要重启
因为系统通过inode号码,识别运行中的文件,不通过文件名
更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件
等到下一次运行这个软件的时候,文件名就会自动指向新版文件,旧版文件的inode则被回收

二、硬连接与软连接

在Linux系统下的链接文件有两种:

1、软连接:又称为符号链接,我们可以理解为Windows中的快捷方式,功能为快速连接到文件或目录。

2、硬连接:通过文件系统的inode链接文件来产生新的文件名(并不是产生新文件)。

两种链接文件对比:
在这里插入图片描述

2.1 硬链接

一般情况下,文件名和inode号码一一对应关系,每个inode号码对应一个文件名。

但Linux系统允许多个文件名指向同一个inode号码,这表示可以用不同的文件名来访问同样的内容

创建硬连接,示例:

命令格式:ln 源文件 目标

[root@localhost opt]# ln 123.txt 234.txt
[root@localhost opt]# ls
123.txt  234.txt  rh
[root@localhost opt]# 

123.txt与234.txt的inode号码相同,都指向同一个inode。

indoe信息中的链接数此时会加1。示例:
在这里插入图片描述

当一个文件拥有多个硬连接时,对文件内容修改,会影响到所有文件名

但删除一个文件名,不会影响其他文件名的访问

同时,删除一个文件名,会使inode信息中的链接数减1

2.2 软链接

软链接就是再创建一个独立的文件,而中国文件会让数据的读取指向它链接的那个文件的文件名。

创建软链接的命令格式:

ln -s 源文件或目录 目标文件或目录

示例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值