Linux基础—深入理解Linux文件系统

news2024/9/23 7:18:39

Linux基础—深入理解Linux文件系统与日志分析

  • 一、inode 与 block详解
      • 1.inode 和 block 概述
      • 2.inode的内容
      • 3.inode的大小
      • 4.inode的特殊作用
      • 5.inode 的号码
      • 6.查看文件的inode 号码
      • 7.inode 耗尽故障处理
  • 二、恢复误删除的文件
      • 1.案例:恢复EXT类型的文件
      • 2.案例:恢复XFS类型的文件
          • xfsdump常用选项
          • xfsdump使用限制
          • 模拟删除并执行恢复操作

一、inode 与 block详解

1.inode 和 block 概述

  • 文件数据包括元信息与实际数据
  • 文件储存在硬盘上,硬盘最小储存单位是"扇区",每个扇区储存512字节
  • block(块)
    连续的八个扇区组成一个 block(4K)
    是文件存取的最小单位
  • inode (索引节点)
    中文译名为“索引节点”,也叫 i节点
    用于存储文件元信息

2.inode的内容

inode 包含很多的文件元信息,但不包含文件名,例如:

  • 文件的字节数
    所在块及块大小、inode号、文件的Group ID、文件拥有者的User ID、文件的读、写、执行权限、文件的时间戳

Linux系统文件有三个主要的时间属性,分别是ctime(change time),atime(access time),mtime (modify time)
ctime(change time):最后一次改变文件或目录(属性)的时间,例如执行 chmod、chown命令
atime(access time):最后一次访问文件或目录的时间
mtime(modify time):最后一次修改文件或目录(内容)的时间

3.inode的大小

inode也会消耗硬盘空间,每个inode 的大小,一般是128字节或256字节。inode的总数,在格式化时就给确定,使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量

在这里插入图片描述

4.inode的特殊作用

  • 由于inode号码与文件名分离,导致一些Unix/Liunx系统具有以下现象
    当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
    移动或重命名文件时,只改变文件名,不影响inode号
    打开一个文件后,系统用过inode号码来识别该文件,不在考虑文件名

5.inode 的号码

访问文件的简单流程:
1.系统找到这个文件名对应的inode号码;
2.通过inode 号码,获取inode 信息;
3.根据inode信息,找到文件数据所在的block,读出数据。

6.查看文件的inode 号码

语法:stat 文件名
     ls -i 文件名

在这里插入图片描述

7.inode 耗尽故障处理

故障原因:目录中存在数量非常多的小字节缓存文件,占用的block 不多,但是占用了大量的 inode

故障现象:在硬盘还未存满的情况下,就无法在硬盘上创建新的文件

实验步骤:
1.磁盘分区(因为是做实验,磁盘分区设为20M就可以了),并进行初始化和挂载处理
在这里插入图片描述
在这里插入图片描述
2.进/ztm 目录下使用,for循环创建多个文件,并确认磁盘占用情况

在这里插入图片描述

3.解决方法,只需要找出该分区中占用大量inode号的空白文件,删除就行。
在这里插入图片描述

二、恢复误删除的文件

1.案例:恢复EXT类型的文件

1.在编译安装 extundelete软件包之前,要先安装两个依赖包e2fsprogs-libs和e2fsprogs-devel,使用rpm命令将其安装,安装完毕后,即可将上传的extundelete 软件包解压、配置、编译、安装。
在这里插入图片描述

2.使用fdisk 命令创建新分区,将其挂载到 /zhangsan 目录下,并创建一下文件和目录
在这里插入图片描述
3.模拟误操作并恢复
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.案例:恢复XFS类型的文件

语法:xfsdump -f 备份存放位置 要备份的路径或设备文件
     xfsrestore -f 恢复文件的位置 存放恢复后文件的位置

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

xfsdump常用选项
选项说明
-f指定备份文件目录
-L指定标签 session label
-M指定设备标签 media label
-s备份单个文件,-s 后面不能直接跟路径
xfsdump使用限制

只能备份已挂载的文件系统
必须使用root的权限才能操作
只能备份XFS文件系统
备份后的数据只能让 xfsrestore 解析
不能备份两个具有相同UUID的文件系统(可用 blkid命令查看)

模拟删除并执行恢复操作

1.使用fdisk创建分区/dev/sdc2,格式化xfs文件系统,并进行挂载
在这里插入图片描述
2.使用 xfsdump 命令备份整个分区
在这里插入图片描述
3.模拟数据丢失并使用 xfsrestore 命令恢复文件
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/447261.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

qt中信号和槽机制

文章目录 信号与槽机制实现 点击按钮 关闭窗口的案例 自定义信号槽自定义信号自定义槽函数触发自定义的信号案例:请老师吃饭 断开信号当槽函数遇到重载的时候拓展 信号与槽机制 connect(信号的发送者, 发送的具体信号,信号的接受者&#xff0…

SpringAop详解汇总

文章目录 近期想法什么是AOPSpringAOP与AspectjSpringAOP体系概述概念详解连接点- Jointpoint切入点- Pointcut通知- Advice切面- Aspect织入- Weaving 实现原理—动态代理JDK动态代理描述原理代码示例注意执行结果 优点缺点 CGLib动态代理描述原理代码示例注意执行结果 优点缺…

【UITableViewCell单元格重用补充 Objective-C语言】

一、咱们再把刚才说的UITableViewCell单元格重用的思路再给大家捋一下 1.咱们刚才说的这个单元格重用就是,当我们滚动的时候,这里给大家简单画一下, 2.就是滚动的时候,当把这个最上面的单元格滚完毕以后,把这个单元格放到缓存池里面, 3.给这个单元格要起一个ID,给它做一…

阿里云部署Stable Diffusion

系列文章目录 本地部署Stable Diffusion教程,亲测可以安装成功 Stable Diffusion界面参数及模型使用 谷歌Colab云端部署Stable Diffusion 进行绘图 文章目录 系列文章目录前言一、AIGC是什么?二、操作步骤1.资源准备-零元开通试用套餐2.创建应用3.输入…

使用matlab基于神经网络进行光束选择

一、前言 此示例说明如何使用神经网络来减少光束选择任务中的开销。在此示例中,您仅使用接收方的位置,而不是通信信道的知识。您可以通过在选定的波束对中进行搜索来减少波束扫掠开销,而不是对所有波束对进行详尽的波束搜索K光束对。考虑到一…

R语言ggplot2 | 修改ggplot主题

📋文章目录 图形设置(settings)面板设置和背景(Panel&Background)坐标轴设置(Axis)标题和标签(Title&label)图例(Legend)副标题和图注&am…

静态和动态NAT,NAPT配置简介

一.类型介绍 二.功能 1.将大量的私有地址转换为公有地址(节约IP地址) 2.将一个IP地址转换为另一个IP地址(增加内部网络设备的安全性) 三.缺陷: 1.很消耗网络设备资源 2.破坏数据端到端传输,安全策略实施受限 四.配置命令 1.静态模式(…

押注零知识证明赛道,Conflux与ACCSEAL达成战略合作

Conflux与新兴零知识证明加速芯片制造公司ACCSEAL宣布达成战略合作,携手共同布局零知识证明(Zero-Knowledge Proof,简称ZKP)赛道,探索可应用于Conflux生态系统的最先进零知识证明技术和解决方案。早在2022年3月&#x…

白话文讲计算机视觉-第九讲-霍夫变换之直线检测

霍夫变换是1962年由霍夫发明的一种检测图像中直线、圆等形状的方法。后来1972年经过Richard O. Duda和Peter E. Hart改进,形成了今天的霍夫变换算法。 今天我就带大家了解了解霍夫变换之直线检测是怎么特么的一回事。 1.霍夫变换 说到霍夫变换,首先就得…

C++——类和对象

作者:几冬雪来 时间:2023年4月21日 内容:C类和对象 目录 前言: 1.inline函数: 2.auto(补充): 3.类: 4.类的访问限定符及封装: 5.封装:…

从零开始下载torch+cu(无痛版)

从零开始下载torchcu(无痛版) 文章目录 从零开始下载torchcu(无痛版)一,前言二,配置torch的GPU版具体步骤1,查看电脑安装的Cuda版本2,在pytoch官网检索待下载whl包名以及版本3,下载指…

playwright实战篇(tx、ali225)

人人都笑金角,人人都是金角推荐文章: 1、https://playwright.dev/python/docs/api/class-playwright //官方文档 2、https://cuiqingcai.com/36045.html //崔庆才教程 3、https://github.com/qqq732004709/ //实战参考 4、https://www.cnblogs.com/ca…

asp.net mvc网上书店购物系统(带项目文档)

c#_asp.net mvc网上书店购物系统(带项目文档) mvc网上书店购物系统 主要技术: 基于asp.net mvc架构和sql server数据库,并采用EF实体模型开发。 功能模块: 系统包括前台和后台两个部分,用户可在前台浏览…

KL散度和交叉熵的对比介绍

KL散度(Kullback-Leibler Divergence)和交叉熵(Cross Entropy)是在机器学习中广泛使用的概念。这两者都用于比较两个概率分布之间的相似性,但在一些方面,它们也有所不同。本文将对KL散度和交叉熵的详细解释…

学系统集成项目管理工程师(中项)系列03_职业道德规范

1. 职业道德 1.1. 涵盖了从业人员与服务对象、职业与职工、职业与职业之间的关系 1.2. 是所有从业人员在职业活动中应该遵循的行为准则 1.3. 包括爱岗敬业、诚实守信、办事公道、服务群众和奉献社会 2. 道德 2.1. 通常与法律相对应,具有非强制性 2.2. 指人们依…

《花雕学AI》26:多维度了解ChatGPT思维链提示的原理、方法、使用和发展的22个问题

早上5点起床,没有去打羽毛球,打开电脑,漫无边际的浏览,偶然发现了一个提法:ChatGPT思维链提示。于是,我使用与ChatGPT同源技术的新Bing引擎(GPT-4),来进行搜索与了解相关…

基于在线优化的快速模型预测控制仿真Fast_MPC(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 ​模型预测控制(Model Predictive Control,MPC)是一种基于在线计算的控制优化算法,能够统一处理带约束的多参数优化控制问题。…

ESP8266 最简单的OTA升级模式

最近在做一个项目时有OTA的需求,之前是通过arduino自带的ota模式,虽说也可以用,但操作比较麻烦,昨晚在网上搜索相关教程,发现了使用巴法云来实现ota的功能,现分享如下 1、首先要让你的设备联网 2、注册巴法…

jsp基础语法

前提 安装jdk参考 下载tomcat解压&#xff0c;运行tomcat不报错即可 第一个jsp程序 切换到webapps下ROOT文件夹下&#xff0c;将除了WEB-INF文件外的全部内容删除&#xff0c;新建index.jsp index.jsp内容如下 <!DOCTYPE html> <html lang"zh-CN"&g…

React Proxy 详细流程与配置方式(webpack、setupProxy.js、package.json)

一、 package.json 配置方式 全部以 GET 请求为例&#xff0c;每次修改配置后&#xff0c;重启项目&#xff0c;否则不生效。 访问 http://127.0.0.1:6000/api/user/list 接口为例检查自己脚手架版本 $ create-react-app -V若脚手架版本在 2.0 以下&#xff0c;可以使用对象类型…