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

祝大家玩的愉快。

相关文章
|
3月前
|
存储 Linux iOS开发
文件系统选择合适的文件系统类型
【10月更文挑战第8天】
306 4
|
5月前
|
Linux 开发工具
在Linux中,如何创建一个新的分区并格式化为EXT4文件系统?
在Linux中,如何创建一个新的分区并格式化为EXT4文件系统?
|
存储 安全 Linux
【看表情包学Linux】磁盘基础知识 | CHS 寻址 | 逻辑扇区 LBA | 索引节点 inode | 伪删除 inode bitmap 1→0
【看表情包学Linux】磁盘基础知识 | CHS 寻址 | 逻辑扇区 LBA | 索引节点 inode | 伪删除 inode bitmap 1→0
207 0
|
存储 缓存 算法
【Linux】基础IO(二)--- 理解内核级和用户级缓冲区、磁盘与ext系列文件系统、inode与软硬连接(下)
【Linux】基础IO(二)--- 理解内核级和用户级缓冲区、磁盘与ext系列文件系统、inode与软硬连接(下)
228 1
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
7.1.5 EXT2/EXT3/EXT4 文件的存取与日志式文件系统的功能
115 0
|
Linux
7.3 【Linux】磁盘的分区、格式化、检验与挂载
7.3 【Linux】磁盘的分区、格式化、检验与挂载
214 0
|
存储 Linux 编译器
【Linux】基础IO(二)--- 理解内核级和用户级缓冲区、磁盘与ext系列文件系统、inode与软硬连接(上)
【Linux】基础IO(二)--- 理解内核级和用户级缓冲区、磁盘与ext系列文件系统、inode与软硬连接(上)
279 0
|
5G Linux
10.15 Linux fdisk创建分区(主分区、扩展分区和逻辑分区)过程详解
本节我们实际建立一个主分区,看看过程是什么样子的。命令如下:
1275 0
10.15 Linux fdisk创建分区(主分区、扩展分区和逻辑分区)过程详解
mount: 文件系统类型错误、选项错误、/dev/rbd0 上有坏超级块、
mount: 文件系统类型错误、选项错误、/dev/rbd0 上有坏超级块、
2838 0

热门文章

最新文章