inode与block概述
文件数据包括元信息与实际数据
文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
block(块)
连续的八个扇区组成一个block
是文件存取的最小单位
inode(索引节点)
中文译名为“索引节点”,也叫i节点
用于存储文件元信息
文件的各种信息:权限、属主、属组、创建日期、文件大小等,但不包含文件名
数据:文件编写的内容
一个文件必须至少有一个blok,必须占用一个inode(索引节点),不包含文件名
inode的内容
inode包含文件的元信息
文件的字节数
文件拥有者的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳
…………(同样当然不包括文件名)
用stat命令可以查看某个文件的inode信息
也可以用ls -i查询inode号
显示总的inode 号信息
总结:
inode 节点元信息(文件属性:文件大小、权限、时间戮)block块的大小数据文件:编写文件的内容文件数据 存在块中文件元信息 存在inode
Linux系统文件三个主要的时间属性
ctime(change time)
最后一次改变文件或目录(属性)的时间
atime(access time):最后一次访问文件或目录的时间
mtime(modify time):最后一次修改文件或目录(内容)的时间(这两个都会改变)
cp复制后inode改变
mv移动后inode不变
目录文件的结构
目录也是一种文件
文件名1 | inode号码1 |
文件名2 | inode号码1 |
........ | ........这边每一行称为一个目录项 |
目录文件的结构
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不使用文件名,而是用inode号码来标识文件
对于用户,文件名只是inode号码便于识别的别称
inode的号码
用户通过文件名打开文件时,系统内部的过程
- 系统找到这个文件名对应的inode号码
- 通过inode号码,获取inode信息
- 根据inode信息,找到文件数据所在的block,读取数据
查看inode号码的方法
ls -i命令:查看文件名对应的inode号码
stat命令:查看文件inode信息中的inode号码(上方已演示)
访问数据走向的流程
删除inode号是否能删除文件
第二种删除(delete)
注:(无法用rm直接删除)
文件存储小结
硬盘分区后的结构
访问文件的简单流程
系统找到这个文件名对应的inode号码,判断用户是否有权限,若有权限则通过inode值, 获取inode信息,根据inode信息,找到文件数据所在的block,读出数据;若没有权限则会给出拒绝访问回馈。
inode的大小
inode也会消耗硬盘空间
每个inode的大小
一般是128字节或256字节
格式化文件系统时确定inode的总数
使用df -i命令可以查看每个硬盘区分的inode总数和已经使用的数量
inode的特殊作用
由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下现象
当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
移动或重命名文件时,只改变文件名,不影响inode号码
打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名
磁盘空间满后的实验
1、搞一个磁盘
2、格式化并挂载,然后查看一下是否挂载成功
3、切换到目录,创建文件,超出(1-7700)
因为磁盘分区的空间满了无法创建
4、随机删除一些文件
5、删除一个即可以创建一个新的
链接文件
为文件或目录建立连接文件
连接文件分类
软链接 | 硬链接 | |
删除原始文件后 | 失效 | 仍旧可用 |
使用范围 | 适用于文件或目录 | 只可用于文件 |
保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件在同一个文件系统(如一个Linux分区)内 |
硬链接
ln 源文件 目标位置
软链接
ln -s 源文件或目录… 链接文件或目标位置
案例:恢复EXT类型的文件
编译安装extundelete软件包
安装依赖包
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.gz2
模拟删除并执行恢复操作
p看一下
解压
切换到这个包
案例:恢复XFS类型的文件
xfsdunp命令格式
xfsdump -f备份存放位置,要备份的路径或设备文件
xfsdump备份级别(默认为00)
0:完全备份
1-9:增量备份
xfsdump常用选项
-f:指定备份文件目录
-L:指定标签session label
-M:指定设备标签media label
-s:备份单个文件,-s后面不能直接跟路径
xfsrestore命令格式
xfsrestore -f 恢复文件的位置 存放恢复后的文件的位置
xfsdump使用限制
只能备份已挂载的文件
必须使用root的权限才能操作
只能备份XFS文件系统
备份后的数据只能让xfsrestore解析
不能备份两个具有相同UUID的文件系统(可用blkid命令查看)