Linux 文件系统与数据恢复及日志分析

本文深入探讨Linux文件系统的inode与block概念,讲解了硬链接和软链接的区别。此外,文章介绍了如何恢复误删的XFS和EXT类型文件,以及Linux日志的分类、重要日志文件的功能和分析方法,强调了日志在系统故障排查中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言
  • 在处理Linux系统出现的各种故障时,故障的症状是最容易发现的,而导致这一故障的原因才是最终排除故障的关键。
  • 熟悉Linux系统中常见的日志文件,了解一般故障的分析与解决办法,将有助于管理员快速定位故障点,“对症下药”,及时解决各种系统问题。
一. inode与block
1.1 inode与block 元信息

■文件数据包括元信息与实际数据
■文件存储在硬盘.上,硬盘最小存储单位是“扇区,每个扇区存储512字节

■元信息

元信息是关于信息的信息,用于描述信息的结构、语义、用途和用法等,比如文件的创建者,文件的创建日期,文件的大小等

■block (块)
●连续的八个扇区组成一个block ,块大小常见的是4k
●是文件存取的最小单位
一个文件必须占用一个inode,但至少占用一个block
■inode (索引节点)

文件数据存储在“块”中,那么还必须找到一个地方存储文件的元信息,比如文件的创建者,文件的创建日期,文件的大小等

这种存储文件元信息的区域就叫做inode,中文译名为(索引节点),也叫 i节点

●中文译名为“索引节点”,也叫节点
●用于存储文件元信息

■元信息存储在inode 数据存储在block

1.2:inode的内容
1.2.1:inode包含文件的元信息
  • inode包含很多的文件元信息,但不包括文件名,例如:

    文件的字节数

    文件拥有者的UserID

    文件的GroupID

    文件的读,写,执行权限

    文件的时间戳

    使用stat命令即可查看某个文件的inode信息

[root@lpf ~]# touch 1
[root@lpf ~]# stat 1
  文件:"1"
  大小:0         	块:0          IO 块:4096   普通空文件
设备:803h/2051d	Inode:537173202   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-06-23 13:58:48.904372039 +0800
最近更改:2020-06-23 13:58:48.904372039 +0800
最近改动:2020-06-23 13:58:48.904372039 +0800
创建时间:-
1.2.2 Linux系统文件三个主要的时间属性

ctime(change time)

最后一次改变文件或目录(属性)的时间,例如执行chmod,chown等命令

atime(access time)

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

mtime(modify time)

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

[root@lpf ~]# touch 2.txt
[root@lpf ~]# vi 2.txt
[root@lpf ~]# stat 2.txt
  文件:"2.txt"
  大小:11        	块:8          IO 块:4096   普通文件
设备:803h/2051d	Inode:537173219   硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-06-23 14:01:32.051363157 +0800
最近更改:2020-06-23 14:01:32.051363157 +0800
最近改动:2020-06-23 14:01:32.053363157 +0800
创建时间:-
[root@lpf ~]# cat 2.txt
nncsjc
sdd
[root@lpf ~]# chmod 755 2.txt
[root@lpf ~]# stat 2.txt
  文件:"2.txt"
  大小:11        	块:8          IO 块:4096   普通文件
设备:803h/2051d	Inode:537173219   硬链接:1
权限:(0755/-rwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-06-23 14:02:03.810361428 +0800    #(access time)访问
最近更改:2020-06-23 14:01:32.051363157 +0800    #(modify time)改内容
最近改动:2020-06-23 14:02:27.967360112 +0800    #(change time)改属性
创建时间:-
1.2.3 目录文件的结构
  • inode不包括文件名,文件名是存放在目录当中的

  • Linux系统中一切皆文件,因此目录也是一种文件

  • 目录文件的结构,每一行称为一个目录项

    文件名1 inode号码1
    文件名2 inode号码2

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

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

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

1.2.4:inode的号码

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

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

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

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

inode号码指向block存储路径

查看inode号码的方法

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

[root@lpf ~]# ls -i 2.txt
537173219 2.txt
[root@lpf ~]# stat 2.txt
  文件:"2.txt"
  大小:11        	块:8          IO 块:4096   普通文件
设备:803h/2051d	Inode:537173219   硬链接:1
权限:(0755/-rwxr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2020-06-23 14:02:03.810361428 +0800
最近更改:2020-06-23 14:01:32.051363157 +0800
最近改动:2020-06-23 14:02:27.967360112 +0800
创建时间:-
[root@lpf ~]# ls -i
537173202 1      537173187 anaconda-ks.cfg
537173219 2.txt  537173191 initial-setup-ks.cfg

查看文件系统的inode数量信息(总数,已用,可用)

[root@lpf ~]# df -i
文件系统           Inode 已用(I)   可用(I) 已用(I)% 挂载点
/dev/sda3      154729472  157885 154571587       1% /
devtmpfs          478739     379    478360       1% /dev
tmpfs             482689       1    482688       1% /dev/shm
tmpfs             482689    1375    481314       1% /run
tmpfs             482689      16    482673       1% /sys/fs/cgroup
/dev/sda1         524288     341    523947       1% /boot
tmpfs             482689       9    482680       1% /run/user/42
tmpfs             482689       1    482688       1% /run/user/0

当已用百分比大于70~80% ,要查看该分区,看是否有僵尸文件或者日志文件占用inode

1.2.5:文件存储小结

mark

1.2.6:inode的大小
  • inode也会消耗硬盘空间,每个inode的大小一般是128字节或256字节
  • 格式化文件系统时确定inode的总数
  • 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
df 命令总结
df - 报告文件系统磁盘空间的使用情况
df -a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统。
df -h:以容易理解的格式输出文件系统大小,例如124KB、345MB、46GB。
df -i:显示i节点信息,而不是磁盘块。
df -t:显示各指定类型的文件系统的磁盘空间使用情况。
df -x:列出不是某一指定类型文件系统的磁盘空间使用情况。
df -T:显示文件系统类型。
df 以512字节为单位
df –k 以1024字节为单位
1.2.7:inode的特殊作用

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

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

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

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

这使得软件更新变得简单,可以在不关闭软件的情况下进行更新,不需要重启

因为系统通过inode号码,识别运行中的文件,不通过文件名

更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件

等到下一次运行这个软件的时候,文件名就会自动指向新版文件,旧版文件的inode则被回收

mark

二:硬链接与软链接
  • 在Linux下面的链接文件有两种:
  • 一种类似于Windows的快捷方式功能的文件,可以快速连接到目标文件或目录,这种称为软链接
  • 另一种则是通过文件系统的inode链接文件来产生新的文件名,而不是产生新文件,这种称之为硬链接
2.1:硬链接

一般情况下,文件名和inode号码是一一对应关系,每个inode号码对应一个文件名。但是Linux系统允许多个文件名指向同一个inode号码,这意味着,可以不同的文件名访问同样的内容

ln命令可以创建硬链接,命令基本格式
ln 源文件 目标
不能对目录做硬链接

运行此命令后,源文件和目标文件的inode号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值