XFS超级块介绍-xfs_sb

news2024/9/20 0:09:02

XFS超级块介绍

与其他 Unix 文件系统一样,XFS 的超级块在文件系统的第一个扇区,它帮助解码文件系统。超级块占用每个 XFS AG 的前 512 个字节。主超级块是位于文件系统前面的 AG 0 中的超级块,其他 AG 中的超级块用于冗余。目前仅使用超级块的前248个字节。以下是超级块的信息信息:

image-20240806205904608

超级块的具体内容可以参考内核的xfs_sb结构体

struct xfs_sb {
    [0] uint32_t sb_magicnum;
    [4] uint32_t sb_blocksize;
    [8] xfs_rfsblock_t sb_dblocks;
   [16] xfs_rfsblock_t sb_rblocks;
   [24] xfs_rtblock_t sb_rextents;
   [32] uuid_t sb_uuid;
   [48] xfs_fsblock_t sb_logstart;
   [56] xfs_ino_t sb_rootino;
   [64] xfs_ino_t sb_rbmino;
   [72] xfs_ino_t sb_rsumino;
   [80] xfs_agblock_t sb_rextsize;
   [84] xfs_agblock_t sb_agblocks;
   [88] xfs_agnumber_t sb_agcount;
   [92] xfs_extlen_t sb_rbmblocks;
   [96] xfs_extlen_t sb_logblocks;
  [100] uint16_t sb_versionnum;
  [102] uint16_t sb_sectsize;
  [104] uint16_t sb_inodesize;
  [106] uint16_t sb_inopblock;
  [108] char sb_fname[12];
  [120] uint8_t sb_blocklog;
  [121] uint8_t sb_sectlog;
  [122] uint8_t sb_inodelog;
  [123] uint8_t sb_inopblog;
  [124] uint8_t sb_agblklog;
  [125] uint8_t sb_rextslog;
  [126] uint8_t sb_inprogress;
  [127] uint8_t sb_imax_pct;
  [128] uint64_t sb_icount;
  [136] uint64_t sb_ifree;
  [144] uint64_t sb_fdblocks;
  [152] uint64_t sb_frextents;
  [160] xfs_ino_t sb_uquotino;
  [168] xfs_ino_t sb_gquotino;
  [176] uint16_t sb_qflags;
  [178] uint8_t sb_flags;
  [179] uint8_t sb_shared_vn;
  [180] xfs_extlen_t sb_inoalignmt;
  [184] uint32_t sb_unit;
  [188] uint32_t sb_width;
  [192] uint8_t sb_dirblklog;
  [193] uint8_t sb_logsectlog;
  [194] uint16_t sb_logsectsize;
  [196] uint32_t sb_logsunit;
  [200] uint32_t sb_features2;
  [204] uint32_t sb_bad_features2;
  [208] uint32_t sb_features_compat;
  [212] uint32_t sb_features_ro_compat;
  [216] uint32_t sb_features_incompat;
  [220] uint32_t sb_features_log_incompat;
  [224] uint32_t sb_crc;
  [228] xfs_extlen_t sb_spino_align;
  [232] xfs_ino_t sb_pquotino;
  [240] xfs_lsn_t sb_lsn;
  [248] uuid_t sb_meta_uuid;
}

本文中不会详细讨论这些字段,重点放在我们需要快速了解文件系统的字段上。

首先,我们需要基本的文件系统结构大小信息,如块大小(超级块的 4-7字节)和 inode 大小( 104-105字节)。XFS v5 默认为 4K 块和 512 字节 inode,这些内容保存在超级快中。

同时文件系统AG的数量(88-91)和每个AG块的大小(84-87)是很重的,XFS通过AG去索引数据在物理磁盘的位置,上面截图的文件系统有16(0x10)个AG每个AG的block的数量为163840(0x28000) 这样文件系统的大小就是AG数量*AG大小=10GB

根目录的 inode 编号在(56-63字节 0x50) 128,文件系统日志的起始块在(48-55字节0x200006),日志长度(96-99字节0x4000)

image-20240807013228662

使用16进制进行查询是原始且酷酷的,同样的,另一种快速查看的方法是使用xfs_db ,用xfs_db可以自动化的将16进制的内容打印出来,“xfs_db -r” 允许对挂载的文件系统进行只读访问。“sb 0”命令从 AG 0 中选择超级块。“print”有一个内置模板,可以自动解析和显示超级块信息。这也是在没有开启XFSDEBUG系统中检查已经损坏文件系统出现问题是在内存还是磁盘中的一种方法(xfs_db始终读取磁盘)

[root@ip-172-31-35-68 ~]# xfs_db -r /dev/nvme1n1
xfs_db> sb 0
xfs_db> p
magicnum = 0x58465342
blocksize = 4096
dblocks = 2621440
rblocks = 0
rextents = 0
uuid = 76cef79a-56f3-49ba-ada8-ed01d066ebe6
logstart = 2097158
rootino = 128
rbmino = 129
rsumino = 130
rextsize = 1
agblocks = 163840
agcount = 16
rbmblocks = 0
logblocks = 16384
versionnum = 0xb5b5
sectsize = 512
inodesize = 512
inopblock = 8
fname = "\000\000\000\000\000\000\000\000\000\000\000\000"
blocklog = 12
sectlog = 9
inodelog = 9
inopblog = 3
agblklog = 18
rextslog = 0
inprogress = 0
imax_pct = 25
icount = 64
ifree = 59
fdblocks = 2604952
.....

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

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

相关文章

leetcode-238. 除自身以外数组的乘积

题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(…

【Nuxt】自定义插件和生命周期

自定义插件 方式一: app.vue // 创建插件(在app.vue中创建全局可以使用 而在某个页面中创建只有该页面可以使用) // 方式一: const nuxtApp useNuxtApp(); nuxtApp.provide("formDate", () > {return "2023-12-12"; }) nuxtAp…

vue相关

1,Object.defineProperty和Proxy区别 定义、优缺点、区别 Object.defineProperty:vue2中实现数据监听/响应式的核心API。 Object.defineProperty遍历监听(observer)vue对象中的所有属性:data,props,comp…

基于深度学习的太阳暗条检测(2020年以来)

A universal method for solar filament detection from Hα observations using semi-supervised deep learning A&A, 686, A213 (2024) A universal method for solar filament detection from Hα observations using semi-supervised deep learning (aanda.org) ABS…

SpringBoot依赖之Quartz Scheduler定时调度器

Quartz Scheduler 依赖名称: Quartz Scheduler功能描述: Schedule jobs using Quartz.使用 Quartz 安排作业。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-quartz</artifactId></dependency&…

论文笔记: 视频关键帧抽取相关工作

2024-08-06&#xff0c;星期二&#xff0c;北京&#xff0c;晴 今天来看视频关键帧抽取主题。随着最近Sora文生视频的火热&#xff0c;视频相关的数据获得逐渐变得重要起来。这也就涉及到提取视频关键帧的问题。 从文本生成视频&#xff0c;我们拆分来看&#xff0c;一般流程…

泳泳馆押金原路退回系统,一键操作秒到账 押金+手牌+电子押金单

一、游泳馆手牌收押金必要性 游泳馆手牌收押金有以下必要性&#xff1a; 1. 防止手牌丢失&#xff1a;手牌是顾客在游泳馆内存储个人物品和进出更衣室的重要凭证。收押金可以让顾客更加重视手牌&#xff0c;降低丢失的概率。比如说&#xff0c;有的顾客可能会因为粗心大意随手…

用Python进行数据可视化——seaborn库详解

内容&#xff1a; 安装和导入Seaborn使用Seaborn创建基本图形了解Seaborn的默认数据集 代码&#xff1a; # 安装和导入Seaborn !pip install seaborn import seaborn as sns import matplotlib.pyplot as plt# 使用Seaborn创建基本图形 tips sns.load_dataset("tips&q…

python库(19):flashtext库实现高效文本查找与替换

1 FlashText简介 FlashText 是一个用于高效查找和替换关键词的 Python 库。它的优势在于能够在 O(n) 时间复杂度内完成任务&#xff0c;而不是像正则表达式那样需要 O(m*n) 的时间复杂度。FlashText 使用 Aho-Corasick 自动机算法&#xff0c;在大量关键词匹配时表现尤为出色。…

【Python机器学习】非均衡分类问题

在大多数情况下不同类比的分类代价并不相等。 分类性能度量指标&#xff1a;正确率、召回率及ROC曲线 通常情况下&#xff0c;我们可以基于错误率来衡量分类器任务的成功程度。错误率指的是在所有测试样例中错分的样例比例。实际上&#xff0c;这样的度量错误掩盖了样例如何被…

image.convert()函数转换格式及显示图像的RGB三通道图像

引 言 视觉任务处理的图片按照图像通道深度分为单通道图像和多通道图像。单通道图像有grayscale灰度图、binary二值图、PNG图&#xff0c;多通道图像有三通道24位真彩色RGB图&#xff0c;8位伪彩色图像&#xff0c;YCbCr图像等。本文先介绍各种格式图像的特点&#xff0c;随后讲…

c++初阶-----STL---list

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

playwrite今日头条自动发帖

目的 大家好&#xff0c;我是watchpoints &#xff0c;一个只为自己打工程序员&#xff0c; watchpoints是我github用户名 &#xff0c;也是我的wechat 用户名&#xff0c; 每天看新闻浪费大量时间&#xff0c;写一个程序 自动提醒你21点远离手机 python实现 步骤1:自动登录 # …

在 Linux 9 上安装 Oracle 19c:克服兼容性问题 (INS-08101)

Oracle 数据库 19c 的基础版本 (19.3) 发布的时候还没有 Linux 9 &#xff0c;因此在Linux 9上面安装Oracle 19c会遇到很多兼容性问题。本文将探讨如何解决这些问题。 安装步骤 设置环境变量以绕过操作系统检查&#xff1a; Oracle 19.3 安装程序无法识别 Linux 9。 [WARNIN…

sql二次注入实战--2018年网顶杯

网址&#xff1a;BUUCTF在线评测 (buuoj.cn) 当我们进入后显示这个页面&#xff1a; 当我们第一次点击发帖的时候就会跳转到登陆页面&#xff0c;上面有提示&#xff0c;告诉我们账号为zhangwei,密码为zhangwei***&#xff1a; 这里我们可以使用bp抓包工具来进行暴力破解密码&…

《剑来》语句摘录(十二)

◆ 第二百零三章 休要略过不提 >> 怨怼与仇恨是快刀斩乱麻&#xff0c;一往无前。金铁相错&#xff0c;激起的火星&#xff0c;就是大丈夫的恩怨分明。无非敢作敢当。 愧疚和遗憾却是一把钝刀&#xff0c;刀刃上边的缺口&#xff0c;皆是曾经犯过的错误。关门磨刀即是后悔…

LVS四层架构部署

LVS四层架构部署 LVS集群的类型 lvs-nat&#xff1a; 修改请求报文的目标IP,多目标IP的DNATlvs-dr&#xff1a; 操纵封装新的MAC地址lvs-tun&#xff1a; 在原请求IP报文之外新加一个IP首部lvs-fullnat&#xff1a; 修改请求报文的源和目标IP LVS-NAT 工作流程 可以理解na…

主从备份(复制)

一、备份的三种类型 备份的三种主要类型包括热备份、逻辑备份和物理备份&#xff0c;每种备份类型都有其特定的应用场景和优缺点。 1. 热备份 定义&#xff1a; 热备份是在数据库或系统处于正常运行状态下进行的备份。这种备份方式允许在不停机的情况下对数据库或系统数据进…

用Python构建一个简单的神经网络

准备工作 首先我们需要使用到vscode 在终端 窗口下输入安装&#xff1a;pip3 install tensorflow pandas numpy keras 代码编写 导入库 import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import panda…

PyTorch深度学习实战(3)—— 小试牛刀:CIFAR-10分类

下面尝试从零搭建一个PyTorch模型来完成CIFAR-10数据集上的图像分类任务&#xff0c;步骤如下。 &#xff08;1&#xff09;使用torchvision加载并预处理CIFAR-10数据集。 &#xff08;2&#xff09;定义网络。 &#xff08;3&#xff09;定义损失函数和优化器。 &#xff08;4…