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

祝大家玩的愉快。

相关文章
|
1月前
|
存储 Linux
btrfs中文件系统扩展属性xattr的实现
介绍Linux中文件系统扩展属性xattr特性的基本概念,btrfs文件系统的基本结构以及对xattr特性的实现方式。
46 1
btrfs中文件系统扩展属性xattr的实现
|
8月前
|
Linux
7.3 【Linux】磁盘的分区、格式化、检验与挂载
7.3 【Linux】磁盘的分区、格式化、检验与挂载
127 0
|
8月前
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
69 0
|
5G Linux
10.15 Linux fdisk创建分区(主分区、扩展分区和逻辑分区)过程详解
本节我们实际建立一个主分区,看看过程是什么样子的。命令如下:
1072 0
10.15 Linux fdisk创建分区(主分区、扩展分区和逻辑分区)过程详解
mount: 文件系统类型错误、选项错误、/dev/rbd0 上有坏超级块、
mount: 文件系统类型错误、选项错误、/dev/rbd0 上有坏超级块、
2374 0
|
监控 数据安全/隐私保护 索引
第十八章--Ext2和Ext3文件系统
一、Ext2的一般特征         但在一些情况下,已经在Ext2的索引节点中为这些特性引入新的字段。最重要的一些特点如下:         块片(block fragmentation):系统管理员对磁盘的访问通常选择较大的块,因为计算机应用程序常常处理大文件。
1284 0