当前位置 : 主页 > 操作系统 > centos >

Linux的文件系统

来源:互联网 收集:自由互联 发布时间:2022-06-20
Linux的文件系统 壹、indoe与block 1、inode与block概述 文件数据包括元信息与实际数据 文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节 block (块) 连续的八个扇区组成

Linux的文件系统

壹、indoe与block

1、inode与block概述

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

block (块)

  • 连续的八个扇区组成一个block(4K)
  • 是文件存取的最小单位

inode (索引节点)

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

//一个文件必须占用一个inode,且至少占用一个block

2、总结:

文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector) ,每个扇区存储512字节。一般连续八个扇区组成一个"块”(block) ,一个块是4K大小,是文件存取的最小单位。操作系统读取硬盘的时候,是一次性连续读取多个扇区,即一个块一个块的读取的。文件数据包括实际数据与元信息(类似文件属性)。文件数据存储在“块"中,存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域就叫做inode因此,一个文件必须占用一个inode, 并且至少占用一个block

inode不包含文件名。文件名是存放在目录当中的。Linux系统中一切皆文件,因此目录也是一种文件。每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系, 每个inode号码对应一个文件名。所以,当用户在Linux系统中试图访问一个文件时,系统会先根据文件名去查找它对应的inode号码;通过inode号码, 获取inode信息;根据inode信息,看该用户是否具有访问这个文件的权限;如果有,就指向相对应的数据block,并读取数据。

贰、inode的内容

1、inode包含文件的元信息

  • 文件的字节数
  • 文件拥有者的User ID(不包含文件名)
  • 文件的Group ID
  • 文件的读、写、执行权限
  • 文件的时间戳
  • ... ...

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

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

当修改文件的权限或者属性的时候,就会更新这个时间,ctime并不是create time,更像是change time,只有当更新文件的属性或者权限的时候才会更新这个时间,但是更改内容的话是不会更新这个时间。

  • atime(access time)
    • 最后一次访问文件或目录的时间

当使用这个文件的时候就会更新这个时间。

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

当修改文件的内容数据的时候,就会更新这个时间,而更改权限或者属性,mtime不会改变,这就是和ctime的区别。

3、目录文件的结果

  • 目录也是一种文件
  • 目录文件的结构:每一行称为一个目录项
文件名1 inode号码1 文件名2 inode号码2 ... ... ... ...
  • 每一个iode都要一个号码,操作系统用inode号码来识别不同文件

  • Linux系统内部不使用文件名,而使用inode号码来识别文件
  • 对于用户,文件名只是inode号码便于识别的别称

4、inode的号码

用户通过文件名打开文件时,系统内部的过程1、系统找到这个文件名对应的inode号码2、通过inode号码,获取inode信息3、根据inode信息,找到文件数据所在的block,读出数据

5、查看inode号码的方法

  • ls -i命令:查看文件对应的inode号码
ls -i 文件名
  • stat命令:查看文件inode信息中的inode号码
stat 文件名

叁、文件存储小结

1、硬盘分区后的结构

元信息.png

2、访问文件的简单流程

访问文件的简单流程.png

肆、inode的大小

  • inode也会消耗硬盘空间

    • 每个inode的大小
    • 验是128字节或256字节
  • 格式化文件系统时确定inode的总数
  • 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

小结:

inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。

数据区:存放文件数据

inode区:存放inode所包含的信息

每个inode的大小一般是128字节或256个字节

通常情况下不需要关注单个inode大小,而是需要重点关注inode总数。inode的总数在格式化时就给定了,执行"df -i"命令即可查看每个硬盘分区对应的inode总数和已经使用的inode数量

查看磁盘的inode号.png


1、inode的特殊作用

  • 由于 inode 号码与文件名分离,导致Unix/Linux系统具备以下几种特有的现象:1.当文件名包含特殊字符,可能无法正常删除。这时直接删除inode,能够起到删除文件的作用2.移动文件或重命名文件,只是改变文件名,不影响inode号码3.打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名4.使用vi编辑器修改文件数据被修改保存后,会生成一个新的inode号码
找到并且删除inode号: find ./ -inum inode号 -exec rm -i {} \; find ./ -inum inode号 -delete

伍、硬链接与软链接

  • [ ] 为文件或目录建立链接文件
  • [ ] 链接文件分类
软链接(符号链接) 硬链接 删除原始文件后 失效 仍旧可用 适用范围 适用于文件或目录 只可用于文件 保存位置 与原始文件可以位于不同的文件系统中 必须与原始文件在同一个文件系统(如一个Linux)
  • 硬链接
ln 源文件 目标位置
  • 软链接
ln -s 源文件或目录 链接文件或目标位置

陆、恢复误删除的文件

案例1:inode节点耗尽故障处理

①使用fdisk创建分区/dev/sdb1,分区大小30M即可

进行磁盘分区来进行做实验.png

②格式化并且挂载,查看inode号的使用情况

案例壹inode格式化.png

查看Inode号使用情况.png

③模拟inode节点耗尽故障

模拟INODE号占满.png

④恢复节点数

恢复无用文件.png


案例2:恢复EXT类型的文件

  • [ ] 编译安装extundelete软件包

wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete-0.2.4.tar.bz2

  • 安装依赖包
    • e2fsprogs-libs-1.41.12-18.el6.x86_ 64.rpm
    • e2fsprogs-devel-1. 41.12-18.el6.x86_ 64.rpm
  • 配置、编译及安装

    • extundelete-0.2.4.tar.bz2
  • 指定安装地址:
    • . /configure --prefix=/usr/local/extundelete 66 && make && make install

模拟删除并执行恢复操作:

①首先将原本的磁盘解挂重新格式化成ext3格式

ext实验1.png

②安装extundelete前先安装环境依赖包,然后安装extundelete软件

ext实验2.png

ext实验3.png

③挂载目录内创建文件,并赋予内容,然后查看inode号

ext实验4.png

④删除创建的新文件,并且解挂载模拟数据丢失

ext实验5.png

⑤模拟数据丢失后进行恢复操作

ext实验6.png


案例3:恢复XFS类型的文件

  • [ ] xfsdump命令格式
xfsdump -f 备份存放位置 要备份的路径或设备文件
  • [ ] xfsdump备份级别

  • 0:完全备份(默认为0)
  • 1-9:增量备份

  • [ ] xfsdump常用选项
常用选项 介绍 -f 指定备份文件目录 -L 指定标签 session label -M 指定设备标签 media label -s 备份单个文件,-s 后面不能直接跟路径
  • [ ] xfsdump使用限制:
  • 只能备份已挂载的文件系统
  • 必须使用root的权限才能操作
  • 只能备份XFS文件系统
  • 备份后的数据只能让xfssrestore解析
  • 不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)
  • 模拟删除并执行恢复操作:

    ①创建新磁盘分区

    xfs实验1.png

    ②格式化分区,挂载后复制实验内容到挂载目录,创建目录和子文件

    xfs实验2.png

    ③安装xfsdump软件

    xfs实验3.png

    ④备份整个分区然后查看

    xfs实验4.png

    ⑤模拟故障,并进行恢复

    xfs实验5.png


    上一篇:k8s 1.22.4 kubeadm 部署
    下一篇:没有了
    网友评论