系统诊断小技巧(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

祝大家玩的愉快。

相关文章
|
6月前
|
存储 Linux
btrfs中文件系统扩展属性xattr的实现
介绍Linux中文件系统扩展属性xattr特性的基本概念,btrfs文件系统的基本结构以及对xattr特性的实现方式。
97 1
btrfs中文件系统扩展属性xattr的实现
|
23天前
|
存储 Linux iOS开发
文件系统选择合适的文件系统类型
【10月更文挑战第8天】
41 4
|
28天前
|
存储 监控 Linux
在 CentOS 7 上如何对未使用的硬盘进行分区、格式化和挂载的最佳实践,包括准备工作、创建分区、格式化分区、创建挂载点、挂载分区及最佳实践建议
【10月更文挑战第8天】本文详细介绍了在 CentOS 7 上如何对未使用的硬盘进行分区、格式化和挂载的最佳实践,包括准备工作、创建分区、格式化分区、创建挂载点、挂载分区及最佳实践建议,旨在有效管理和利用服务器磁盘资源,提升系统稳定性和可维护性。
45 1
|
3月前
|
Linux 开发工具
在Linux中,如何创建一个新的分区并格式化为EXT4文件系统?
在Linux中,如何创建一个新的分区并格式化为EXT4文件系统?
|
3月前
|
存储 固态存储 Linux
在Linux中,ext4文件系统有何特性?如何检查文件系统的完整性?
在Linux中,ext4文件系统有何特性?如何检查文件系统的完整性?
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
101 0
mount: 文件系统类型错误、选项错误、/dev/rbd0 上有坏超级块、
mount: 文件系统类型错误、选项错误、/dev/rbd0 上有坏超级块、
2717 0
|
监控 数据安全/隐私保护 索引
第十八章--Ext2和Ext3文件系统
一、Ext2的一般特征         但在一些情况下,已经在Ext2的索引节点中为这些特性引入新的字段。最重要的一些特点如下:         块片(block fragmentation):系统管理员对磁盘的访问通常选择较大的块,因为计算机应用程序常常处理大文件。
1324 0
下一篇
无影云桌面