1、inode 包含文件的元信息
(1)inode 内容:
文件的字节数、拥有者的 UID、GID、文件的读写执行权限、时间戳等,但不包含文件
名。文件名是储存在目录的目录项中。
(2)查看文件的 inode 内容,stat 命令

2.Atime等详解

 

3.目录文件的结构
(1)目录也是一种文件
(2)目录文件的结构:

 

每个 inode 都有一个号码,操作系统用 inode 号码来识别不同的文件
 Linux 系统内部不使用文件名,而使用 inode 号码来识别文件。对于系统来说,文件名
只是 inode 号码便于识别的别称。
4.inode 的号码
(1)系统内部打开文件的步骤:
 1>系统找到这个文件名对应的 inode 号码
 2>通过 inode 号码,获取 inode 信息
 3>根据 inode 信息,找到文件数据所在的 block,读出数据
 inode 一般为 128 字节或 256 字节,每个 inode 中都记录着文件所在的 block 号,每条记录着 block 号的信息占用 4 字节。inode 中关于 block 号的记录一共包含有 12 个直接、1 个间接、1 个双间接和 1 个三间接。
 12 个直接连接,共占用 48 字节磁盘空间,包含着 12 个直接指向 block 号的信息,若此文件系统默认的 block 大小为 4KB,则仅仅可以指向 12*4=48KB 大小的文件内容,然而我们的文件若较大时,则需要使用到更多的 block,肯定要多于 12 个 block,进而有间接、双间接和三间接。
 间接指的是,inode 中所记录这 4 字节的内容,所指向一个 block,这个block中存放的不是真是的文件内容,而是真实文件所存放位置的block号信息,若每个block大小为 4KB,那么可以存放 1024 个 block 号信息,1 个间接可以存放的文件大小为:1024*4=4096KB
 双间接则可以存放更大的文件内容,即在间接的基础上再进行间接,若此时 block大小为默认的4KB,则1个双间接可以存放的文件内容大小为:1024*1024*4=4096MB
 三间接即在双间接的基础上在进行间接,若此时 block 大小为默认的 4KB,则 1 个三间接可以存放的文件内容大小1024*1024*1024*4=4096GB
也就是说,在一个 block 大小默认为 4KB 的文件系统中,一个文件最大存储可以达到 48KB+4096KB+4096MB+4096GB,约为 4100GB。
(2)查看文件的 inode 号码
 ls -i 文件名
 stat 文件名

 

当一个用户在 Linux 系统中试图访问一个文件时,系统会先根据文件名去查找它的inode,看该用户是否具有访问这个文件的权限。如果有,就指向相对应的数据 block;如果没有过,就返回 Permission denied(拒绝访问)
(3)删除指定 inode 号所对应的文件
(1)格式:find ./ -inum inode 号 -exec rm -i {} \; 
(2)示例:当文件名中包含特殊符号时我们可以删除其 inode 号达到删除文件的目的

 

5.查看文件系统的inode与block的信息
xfs:df -i 设备名(文件系统已挂载时查询,查询 inode 总数与已用数量)
ext4:dumpe2fs -h 设备名(文件系统无需挂载)
ext4:tune2fs -l 设备名(文件系统无需挂载)

 

6.格式化时指定文件系统的inode个数与block大小
(1)方法:
mkfs.ext4 -N inode 数 -b 块大小(单位字节) 设备名

7.解决 inode 耗尽导致的磁盘故障
(1)方法:
1>删除不使用的文件
2>将文件备份,重新格式化此文件系统,指定较多的 inode 个数

8.硬链接(hard link)
1)方法:ln 源文件 目标文件
(2)特点:
硬链接指向 inode,新生成的硬链接文件的 inode 号与源文件的 inode 号相同,不可针
对目录进行硬链接,必须在同一文件系统内。删除一个文件名,不影响另外一个的访问。

 

9.软链接(soft link)
1)方法:ln -s 源文件或目录 目标文件或目录
(2)特点:
软链接指向文件名,新生成的软链接文件的 inode 号与源文件不同,目录也可以生成软
链接,软链接文件与源文件可以不在同一文件系统内,软链接文件的内容是源文件的路径,
读取时系统会自动导向源文件,但当源文件移动或重命名时,软链接将报错

10.硬链接和软连接的对比

 

11.恢复误删除

执行恢复操作
 1>常用选项:
 --inode 数值 指定从 inode 号为多少开始显示
 --restore-file 文件名 恢复误删除的某个文件
 --restore-all 恢复全部已删除的文件
 --after dtime 在某个时间点之后删除的文件
 --before dtime 在某个时间点之前删除的文件

Linux文件系统与日志的更多相关文章

  1. Linux文件系统与日志分析

    Linux文件系统与日志分析一.inode与block概述① 文件数据包括元信息(类似文件属性)与实际数据② 文件存储在硬盘上,硬盘最小存储单位是"扇区"(sector),每个扇区 ...

  2. Linux文件系统与日志分析的了解

    Linux文件系统与日志分析 1.inode和block概述 2.模拟inode耗尽实验 3.ext类型文件恢复 4.xfs类型文件恢复 5.日志文件 6.日志分析 1.文件:文件是存储在硬盘上的,硬 ...

  3. linux文件系统和日志分析

    一.Linux文件系统 1.inode与block 1.概述: (1)文件数据包括元信息与实际信息 (2)文件存储在硬盘上,硬盘最小存储单位是"扇区",每个扇区存储512字节 (3 ...

  4. 深入理解Linux文件系统与日志文件

    目录: 一.inode与block 二.inode内容 三.inode的号码 四.inode的大小 五.链接文件 六.inode节点耗尽故障处理 七.恢复EXT类型的文件编译安装extundelete ...

  5. Linux文件系统与日志!

    1.inode 和 block 概述 文件储存在硬盘上,硬盘的最小储存单位叫“扇区”(sector),每个扇区储存 512 字节. 操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次 ...

  6. 深入理解Linux文件系统与日志分析

    一.inode和bolck概述 二.链接文件 三.inode节点耗尽故障处理 四.EXT类型文件恢复 五.xfs文件备份和恢复 六.日志文件 一.inode和bolck概述 1.定义 文件数据 文件数 ...

  7. Linux文件系统与日志文件

    目录 一.inode和block 1.1.inode和block概述 1.2.inode的内容 inode包含文件的元信息: 查看inode号两种方式 目录文件的结构 1.3.inode的号码 用户通 ...

  8. Linux 系统管理——Linux文件系统与日志

    1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...

  9. 第十二章Linux文件系统与日志

    1.inode 包含文件的元信息(1)inode 内容:文件的字节数.拥有者的 UID.GID.文件的读写执行权限.时间戳等,但不包含文件名.文件名是储存在目录的目录项中.(2)查看文件的 inode ...

随机推荐

  1. 表演的艺术,妖尾回合制战斗系统客户端设计[Unity]

    妖尾历经几年开发,终于在今年6月底顺利上线,笔者从2017年初参与开发,主要负责妖尾战斗系统开发.战斗作为游戏的核心玩法系统,涉及很多技术点,希望能借几篇文字,系统性总结MMORPG战斗系统的开发经验 ...

  2. pixijs shader贴图扫光效果

    pixijs shader贴图扫光效果 直接贴代码 const app = new PIXI.Application({ transparent: true }); document.body.app ...

  3. 文件安全复制之 FastCopy

    FastCopy是Windows平台上最快的文件拷贝.删除软件.由于其功能强劲,性能优越,一时间便超越相同类型的所有其他软件.由于该软件十分小巧,你甚至可以在安装后,直接将安装目录中的文件复制到任何可 ...

  4. Python urlib 模块

    Python urlib 模块 urlib 模块 当前再爬虫领域使用的比较少,不过它对图片爬取处理会比较方便.这里我们只使用它的图片爬取. 使用 urlib.request.urlretrieve(u ...

  5. 记录一个终端入网小助手的bug

    背景:技术leader拿到一台超薄笔记本,系统标准化安装,笔记本一开机风扇嗡嗡响,键盘也开始发烫,资源占用排名前三的进程都是终端管理软件,一下子就找上门了.处理:进程分析发现异常,卸载入网小助手后恢复 ...

  6. express捕获全局异常的三种方法

    场景 express的路由里抛出异常后,全局中间件没办法捕获,需要在所有的路由函数里写try catch,这坑爹的逻辑让人每次都要多写n行代码 官方错误捕获中件间代码如下 app.use(functi ...

  7. c# "As" 与 "Is"效率 (原发布csdn 2017-10-07 11:49:18)

    十一长假就要过去了,今年假期没有回家,一个人闲着无聊就在看C#语言规范5.0中文版.昨天看了 is运算符和 as运算符,平时项目中也有用到这两种符号,对于其效率也没有进行比较过,趁着假期有空,先看下效 ...

  8. 配置 ASP.NET Core 请求(Request)处理管道

    配置 ASP.NET Core 请求(Request)处理管道 在本节中,我们将讨论使用中间件组件为 asp.net core 应用程序配置请求处理管道. 作为应用程序启动的一部分,我们要在Confi ...

  9. 前端开发HTML5——表单标签

    表单简介 Form表单主要用于用户与Web应用程序进行数据的交互,它允许用户将数据发给web应用程序,网页也可以拦截数据的发送以便自己使用.form通常由一到多个表单元素组成,这些表单元素是单行/多行 ...

  10. vue学习指南:第五篇(详细) - vue的 computed、methods、watch 的区别?

    Computed 计算属性 1. 将函数代码块中返回的结果 赋值 给前面的方法名 2. computed 中的属性有缓存功能,只要data中的数据不发生改变,计算得到的新属       性就会被缓存下 ...