Linux中硬盘物理扇区 与文件系统文件对应关系
来源:互联网 发布:盯盯是什么软件 编辑:程序博客网 时间:2024/06/06 12:59
系统读写文件过程中,如下面内核打印信息,报告读写某个扇区错误。那么我们如何能够通过sector找到读写哪个文件错误?
kernel: end_request: I/O error, dev sdb, sector 41913499
以下面打印信息为例。
kernel: end_request: I/O error, dev sdb, sector 41913499
内核打印的sector是硬盘上的物理扇区。如上例,我们可以知道磁盘是/dev/sdb。而 sector 41913499属于哪个分区?/dev/sdb1?/dev/sdb2?还是其他?
通过命令fdisk -lu /dev/sdb,可以看到各个分区的容量大小,也就知道每个分区的起始sector和结束sector。
这样就可计算出sector 41913499属于哪个分区/dev/sdb2。
2.2 第二步:计算分区上文件系统起始sector
对于ext2文件系统/dev/sdb2,该分区上文件系统起始sector为24595515
Device Boot Start End Blocks Id System
/dev/sdb1 63 24595514 12297726 83 Linux
/dev/sdb2 24595515 41929649 8667067+ 83 Linux
2.3 第三步:计算报错扇区在分区文件系统内的blocks值(即文件系统内的偏移量)
Blocks值 = (出错扇区 – 分区起始扇区)/ 8
dev sdb, sector 41913499,该扇区在/dev/sdc2文件系统上的 blocks值为: blocks=(41913499 – 分区起始扇区)/8 = (41913499 - 24595515)/8 = 2164748
2.4 第四步:通过文件系统的blocks值计算出inode值
debugfs <设备名> icheck 值>
对于/dev/sdb2上的文件系统来说,block 2164748对应的inode值为527790。如下图。
2.5 第五步:通过inode值,找到具体文件名(是绝对路径)debugfs <设备名> ncheck
对于/dev/sdb2上的文件系统来说,inode 527790对应的文件为/e2fsprogs-1.41.14/version.h。也就是访问文件version.h时出现读写错误。
3 转换方法验证
我们通过blktrace来验证访问/e2fsprogs-1.41.14/version.h所占用的硬盘上物理扇区。
root@ubuntu:/data2/e2fsprogs-1.41.14# echo 1 > /proc/sys/vm/drop_caches
root@ubuntu:/data2/e2fsprogs-1.41.14# md5sum version.h
6173fbb937f8dc3b315ff8853007d490 version.h
From: http://www.ilinuxkernel.com/files/3/Sector_to_file.htm
- Linux中硬盘物理扇区 与文件系统文件对应关系
- Linux中硬盘物理扇区 与文件系统文件对应关系
- Linux中如何读写硬盘上指定物理扇区
- Linux中如何读写硬盘上指定物理扇区
- Linux中如何读写硬盘(或Virtual Disk)上指定物理扇区
- 文件簇,文件扇区与flash中扇区及页的关系
- linux文件系统与物理文件系统
- 物理扇区和逻辑扇区(相对扇区)的关系
- 文件系统中的逻辑块、物理块和扇区之间的关系
- 文件系统中的逻辑块、物理块和扇区之间的关系
- linux虚拟文件系统与物理文件系统
- 关于硬盘种类、物理几何结构及硬盘容量、分区、扇区[linux]大小计算
- linux的物理内存空间与线性地址空间的的对应关系
- linux的物理内存空间与线性地址空间的的对应关系
- linux的物理内存空间与线性地址空间的的对应关系
- linux的物理内存空间与线性地址空间的的对应关系
- linux读取硬盘指定扇区
- Linux内核I/O系统报错日志与硬盘故障对应关系
- "undefined reference to" 问题解决方法
- Android wifi信号强弱检测
- [Widget]Android小票打印,蓝牙打印、固定IP打印、黑白图片打印
- Android RecyclerView滚动定位
- Ubuntu下进行文件下载
- Linux中硬盘物理扇区 与文件系统文件对应关系
- 插入排序
- 设置电脑每天几点自动关机 windows10系统
- Protel99SE SP6 绿色精简版7.5M
- unity 杂记
- 用SurfaceView实现级联分层图(粗略篇)
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- 【新手建站三部曲之一】——一块钱搭建自己的服务器(LAMP)
- 数据结构之大小堆&&优先级队列