系统诊断小技巧(9):如何从Ext3或者Ext4文件系统推断分区位置

简介: 扩容失败或者系统重启后分区丢失,需要文件系统推定分区位置。我们这里给出一个自动化的工具

注意:

  1. 下面的命令都以/dev/vdb为操作目标,请按照实际情况调整。
  2. 我们假设扇区大小为512字节。如果有不同,请调整。
  3. 部分系统,fdisk命令默认的单位不是扇区大小。所以使用fdisk命令时,我们总是使用-u选项。如果使用parted,则进入后先执行unit s命令。
  4. (较新)fdisk工具默认分区位置是2048。如果需要定制分区的起始扇区,请使用parted工具。

如果需要从Ext3/4文件系统托定分区位置,简单、实用的方法是检查文件系统模数所在位置。熟练的同学可以手工检测。把检测到的结果与完好的文件系统数据对比分析,推断分区位置是很简单的过程。

这里,操作比较麻烦的是寻找模数所在位置和从之推算分区的其实位置。那么,能不能自动化这个检测过程呢?答案是肯定的。

dd if=/dev/vdb bs=512 count=4096 2>/dev/null | \
od -tx1 | perl -ne '
    chomp;
    if (/^([0-7]+)\s # 磁盘数据的位置
       ([0-9a-f][0-9a-f]\s){8} # 越过无关数据
       53\sef\s # 模数
       0[124]\s00\s0[123]\s00\s # 文件系统状态和出错后的行为配置
       /x) {
             my $s=int((oct $1)/512)-2;
             print qq[$s $_\n];
            }'

先确认分区情况。这里提醒大家总是记得使用-u选项。这样我们得到磁盘和分区信息都是以扇区(512byte)为单位的。

fdisk -l -u /dev/vdb

我们给出一个分区和文件系统完好的例子

image

祝大家玩的愉快。

相关文章
|
4月前
|
安全 应用服务中间件 nginx
Docker 命令大全:从入门到生产,全场景核心指令全覆盖
本文系统讲解Docker核心原理与实战命令,涵盖Namespace、CGroup、UnionFS三大底层机制,详解镜像构建/拉取/安全扫描、容器全生命周期管理、数据卷与网络配置、Compose编排及生产最佳实践,内容全面、示例丰富、贴合v27.0.3最新版。
1332 2
|
8月前
|
安全 算法 Java
Android APK签名机制的工作原理、结构差异、安全局限与优势
本文深入解析Android APK的v1与v2签名机制,涵盖工作原理、结构差异、安全局限及最佳实践。详述身份认证、完整性保护等核心目标,对比各版本优劣,并提供签名生成、验证流程与生产环境建议,助力开发者构建安全可信的应用。
1129 1
|
12月前
|
存储 机器学习/深度学习 弹性计算
阿里云服务器ECS计算型c9i规格族性能与特点以及使用场景
阿里云ECS计算型c9i实例基于Intel® Xeon® Granite Rapids处理器,主频3.2GHz,全核睿频3.6GHz,提供稳定高性能算力。支持NVMe协议、vTPM安全加密,适用于机器学习、大数据分析、高性能计算等场景,具备从2核到192核的灵活配置,结合多种计费模式,助力企业高效降本。
|
存储 监控 API
SOA简介
SOA简介
1692 1
|
Linux
Linux的strings命令如何使用?
【6月更文挑战第3天】Linux的strings命令如何使用?
498 4
|
监控 应用服务中间件 nginx
|
存储 SQL 关系型数据库
关于PostgreSQL数据的存储,你有必要有所了解
关于PostgreSQL数据的存储,你有必要有所了解
1148 0
关于PostgreSQL数据的存储,你有必要有所了解
|
存储 消息中间件 Arthas
可以用于云原生中Skywalking框架原理你真的懂吗
可以用于云原生中Skywalking框架原理你真的懂吗
2172 0
可以用于云原生中Skywalking框架原理你真的懂吗
|
分布式计算 大数据 MaxCompute
阿里云数加MaxCompute购买咨询钉钉群
为企业解答阿里云MaxCompute大数据计算产品购买问题。
14710 0
阿里云数加MaxCompute购买咨询钉钉群
|
Linux 网络安全 数据安全/隐私保护
一个有意思的SSH登陆案例
这是一个特殊的案例,在修复ssh登陆之前,这个实例还经历了系统C库文件损坏,系统无法启动的恢复操作。
8770 1
一个有意思的SSH登陆案例

热门文章

最新文章