Linux文件系统 -- inode和block

目录

      • 重要参数
      • 目录项
      • fsck
      • 软连接,硬链接

重要参数

dumpe2fs /dev/sda1|more查看ext4文件元数据(描述文件系统的数据),xfs_info查看xfs文件系统

  • superblock:超级块,记录此file system的整体信息,包括inode/block的总量、剩余量,以及文件系统的格式
  • inode:index node记录文件的属性,如权限、所有者、大小等,不包含文件名和实际数据。文件系统中的每个文件和目录都有唯一的inode号码,同时记录此文件的数据所在的block号。通过inode,系统能够找到和管理文件的实际数据块
  • block:实际记录文件的内容,若文件太大,会占用多个block。block区一个块占4096字节

目录项

目录项包含文件名、文件的inode号和文件类型

# 第一列如67就是inode号
[root@localhost chen]# ll -i
总用量 067 drwxr-xr-x. 2 root root 6 11月 25 21:55 haha
33574976 drwxr-xr-x. 2 root root 6 11月 25 21:55 tt
16777280 drwxr-xr-x. 2 root root 6 11月 25 21:55 xixi

执行命令cd /chen/tt,首先通过目录项根据文件名找到inode编号,然后去inode区去寻找chen目录对应的inode编号所在的块,读取信息,编号所在的块会有一个指针pointer指向block区里面的块,根据这个pointer读取相应的信息,递归找到tt这个文件

当使用rm删除文件时,文件系统中的目录项会被删除,但inode映射表和block映射表里的队友标志会被标记为可用,表示这些块可以被新文件或其他数据使用,但实际inode区和block区没有被释放,所以只要数据块没有被新数据覆盖,被删除的数据是可以通过修复软件恢复的,文件系统会有日志

有时候一个目录下不能创建文件,但是查看磁盘发现占用比并没有满,有可能是因为inode空间耗光了,删除目录下的其他文件就可以创建新文件了

fsck

fsck命令,file system check用于诊断修复文件系统,可以修复xfs文件或ext4文件,xfs文件修复也有专门的命令xfs_repair

当出现非正常关机、突然断点、设备读写失误、文件系统的超级块信息被破坏时可以修复

软连接,硬链接

软链接是一个指向目标文件或目录的路径的文本字符串,会产生新的inode和block、新的目录项,block里存放的是链接的文件名

硬链接会跟原文件有一样的inode,但会有不同的目录项

# 创建软连接
ln -s test.txt test_soft.txt
# 创建硬链接
ln test.txt test_hard.txt

在这里插入图片描述

软链接,删除原文件,链接文件不可用;硬链接,删除原文件,链接文件可以继续使用,但内容为空

在这里插入图片描述

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

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

相关文章

每日一练:冒泡排序

1. 概述 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排…

Vue---Echarts

项目需要用echarts来做数据展示,现记录vue3引入并使用echarts的过程。 1. 使用步骤 安装 ECharts:使用 npm 或 yarn 等包管理工具安装 ECharts。 npm install echarts 在 Vue 组件中引入 ECharts:在需要使用图表的 Vue 组件中,引入…

Linux 设置程序开机自启动的方法

目录 前言开机自启动参考 前言 CentOS Linux release 7.9.2009 (Core) 开机自启动 shell> vim /etc/rc.d/rc.local添加开机后执行的命令 sh /xxx/xxx.sh参考 https://www.cnblogs.com/xlmeng1988/archive/2013/05/22/3092447.html

软件工程导论学习资料

软件工程的概述:软件工程就是为了经济地获得可靠的且能在实际机器上有效地运行的软件,而建立和使用完善的工程原理。Software engineering is to establish and use sound engineering principles in order to economically obtain reliable software th…

深入理解Java中的锁机制

引言 大家好,我是小黑。今天咱们来聊聊Java中的锁机制,这可是并发编程的核心。你知道吗,在并发编程的世界里,正确地使用锁就像是掌握了一把神奇的钥匙,它能帮咱们在多线程的混战中保持秩序,防止数据被乱改…

【JavaSE】API(学习笔记)

一、Math 包含执行基本数字运算的方法没有构造方法,但方法是静态的,可以用类名直接调用 1、Math类常用方法 1)绝对值:abs public static int abs(int a)2)小数的最近整数:ceil(最小整数) / floor(最大整…

【AI】基于已有模型训练自己的模型(迁移)

实际工作中,我们可能缺乏算力去从头到尾训练一个模型,使用别人训练好的模型(通常是经典模型)就成了一个很好的选择,这样我们就不需要设置每一层的初始参数,极大的提高了训练的效率;但是在使用别…

Python中的加法测试题实现

随机生成5道10以内的加法测试题,用户在10秒内使用键盘输入答案。完成全部5道答题之后,计算机生成答题记录报告,并对答题情况进行分析,显示“答对了”,或“答错了”、并显示正确答案。如果未能按时完成,则显…

opencv知识库:基于cv2.flip()函数对图像进行随机翻转(水平/垂直)

需求场景 欲对RGB格式的lena图像进行随机翻转,要求这些图像不翻转、水平翻转、垂直翻转的概率都为1/3。 功能代码 import cv2 import random# 读取并展示图像 img cv2.imread("lena.jpg") cv2.imshow(lena, img) cv2.waitKey(0)for i in range(6): #…

Python concurrent.futures实现多进程多线程编程

Python的concurrent.futures模块可以很方便的实现多进程、多线程运行,减少了多进程带来的的同步和共享数据问题。 Executor是一个抽象类,表示一个可执行的上下文。Future则代表一个将要执行的任务,并提供了一些方法来获取任务的状态和结果。T…

Hdoop学习笔记(HDP)-Part.18 安装Flink

目录 Part.01 关于HDP Part.02 核心组件原理 Part.03 资源规划 Part.04 基础环境配置 Part.05 Yum源配置 Part.06 安装OracleJDK Part.07 安装MySQL Part.08 部署Ambari集群 Part.09 安装OpenLDAP Part.10 创建集群 Part.11 安装Kerberos Part.12 安装HDFS Part.13 安装Ranger …

技术面选股的方法

技术面选股是根据股票的价格走势、成交量等技术指标,来预测股票未来走势的一种方法。以下是一些常用的技术面选股方法的详细解析: 均线分析:这是一种常见且基础的技术面选股方法,投资者会计算股票的移动平均线(如5日、…

头歌JUnit单元测试相关实验入门

一、入门实验 1.1第一个Junit测试程序 任务描述 请学员写一个名为testSub()的测试函数,来测试给定的减法函数是否正确。 相关知识 Junit编写原则 1、简化测试的编写,这种简化包括测试框架的学习和实际测试单元的编写。 2、测试单元保持持久性。 3、利用…

【已解决】AttributeError: module ‘gradio‘ has no attribute ‘Image‘

问题描述 AttributeError: module gradio has no attribute Image 不知道作者用的是哪个gradio版本,最新的版本报错AttributeError: module gradio has no attribute outputs , 换一个老一点的版本会报错AttributeError: module gradio has no attribute…

短线买入卖出有哪些交易技巧?

前面两节课,我们认识了短线交易,知道了短线交易常见的买入卖出时机,这节课,我们来讲解一下短线买入卖出的一些交易技巧。话不多时,直接进入重点! 一、短线交易要果断 短线波动快,在出现买卖信号…

排序算法总结(Python、Java)

Title of Content 1 冒泡排序 Bubble sort:两两交换,大的冒到最后概念排序可视化代码实现Python - 基础实现Python - 优化实现Java - 优化实现C - 优化实现C - 优化实现 2 选择排序 Selection sort:第i轮遍历时,将未排序序列中最小…

华为OD机试 - CPU算力分配(Java JS Python C)

题目描述 现有两组服务器A和B,每组有多个算力不同的CPU,其中 A[i] 是 A 组第 i 个CPU的运算能力,B[i] 是 B组 第 i 个CPU的运算能力。 一组服务器的总算力是各CPU的算力之和。 为了让两组服务器的算力相等,允许从每组各选出一个CPU进行一次交换, 求两组服务器中,用于…

反序列化漏洞详解(一)

目录 一、php面向对象 二、类 2.1 类的定义 2.2 类的修饰符介绍 三、序列化 3.1 序列化的作用 3.2 序列化之后的表达方式/格式 ① 简单序列化 ② 数组序列化 ③ 对象序列化 ④ 私有修饰符序列化 ⑤ 保护修饰符序列化 ⑥ 成员属性调用对象 序列化 四、反序列化 …

【笔记】常用的Linux命令之解压缩:tar、zip、rar 命令

1、tar 常用压缩和解压缩 # 压缩文件 file1 和目录 dir2 到 test.tar.gz tar -zcvf test.tar.gz file1 dir2 # 解压 test.tar.gz(将 c 换成 x 即可) tar -zxvf test.tar.gz 额外知识:查看压缩文件内容 # 列出压缩文件的内容 tar -ztvf test…

unity学习笔记

一、线段渲染器 在Unity中,线段渲染器(Line Renderer)是一种用于在场景中绘制线段的组件。线段渲染器非常适合用于创建轨迹、路径、光束等效果。 1. 创建Line Renderer:在Unity编辑器中,你可以通过创建空对象 -> …