Linux中硬盘物理扇区与文件系统文件对应关系(转)
系统读写文件过程中,如下面内核打印信息,报告读写某个扇区错误。那么我们如何能够通过sector找到读写哪个文件错误?
kernel: end_request: I/O error, dev sdb, sector 41913499
2 物理扇区与文件对应关系计算
以下面打印信息为例。 kernel: end_request: I/O error, dev sdb, sector 41913499
2.1 第一步:通过sector找到所在分区
内核打印的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所占用的硬盘上物理扇区。
|

From: http://www.ilinuxkernel.com/files/3/Sector_to_file.htm
Linux中硬盘物理扇区与文件系统文件对应关系(转)的更多相关文章
- linux 中的页缓存和文件 IO
本文所述是针对 linux 引入了虚拟内存管理机制以后所涉及的知识点.linux 中页缓存的本质就是对于磁盘中的部分数据在内存中保留一定的副本,使得应用程序能够快速的读取到磁盘中相应的数据,并实现不同 ...
- 诠释Linux中『一切都是文件』概念和相应的文件类型
导读 在 Unix 和它衍生的比如 Linux 系统中,一切都可以看做文件.虽然它仅仅只是一个泛泛的概念,但这是事实.如果有不是文件的,那它一定是正运行的进程. 要理解这点,可以举个例子,您的根目录( ...
- Linux中.a,.la,.o,.so文件的意义和编程实现
Linux中.a,.la,.o,.so文件的意义和编程实现 Linux下文件的类型是不依赖于其后缀名的,但一般来讲: .o,是目标文件,相当于windows中的.obj文件 ...
- 【转】Linux 中清空或删除大文件内容的五种方法(truncate 命令清空文件)
原文: http://www.jb51.net/article/100462.htm truncate -s 0 access.log -------------------------------- ...
- linux中tar 打包指定路径文件
linux中tar打包指定路径文件www.111cn.net 编辑:yahoo 来源:转载在linux系统中打包与解压文件我都可以使用tar命令来解决,只要使用不同的参数就可以实现不同的需要了,下面来 ...
- linux中c表示字符设备文件符号
linux中c表示字符设备文件,b表示块设备文件,l表示符号链接文件,r表示可读权限,w表示可写权限.linux文件属性解读:文件类型:-:普通文件 (f)d:目录文件b:块设备文件 (block)c ...
- Linux中ftp不能上传文件/目录的解决办法
在linux中不能上传文件或文件夹最多的问题就是权限问题,但有时也不一定是权限问题了,像我就是空间不够用了,下面我来总结一些ftp不能上传文件/目录的解决办法 在排除用户组和权限等问题后,最可能引 ...
- linux中硬盘及网卡的表示方法
Linux中的所有设备均表示为/dev下的一个文件,各种IDE设备分配一个由hd前缀组成的文件:而对于各种SCSI设备,则分配了一个由sd前缀组成的文件,例如: IDE0接口上的主盘成为/dev/hd ...
- Linux中通过/proc/stat等文件计算Cpu使用率
Linux平台Cpu使用率的计算 proc文件系统 /proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间.它以文件系统的方式为内核与进程提供通信的接口.用户和应用程序可以通过/pro ...
随机推荐
- xampp 忘记密码的处理方式.
网上看到一些方法: 大部分是第一种: 方法一 这个方法, 我使用的时候没有生效. -------------- 后来看到另外一种方法 . 直接替换user表的三个文件. 这个方法成功了. xam ...
- 全局css , 样式设置, css 初始化. css ,style ,全局样式, 初始化样式
全局CSS设置总结 1.清除所有标记的内外边距 html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldse ...
- CentOS7下-bash: nano: command not found
由于安装的是纯净版系统,运行nano命令是提示没有找到该命令,以下是解决方法,用root权限的用户运行以下命令安装nano: yum install nano 遇到询问时一路点y即可. 安装好后运行: ...
- HDU 1251 统计难题(字典树 裸题 链表做法)
Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本身也是自己 ...
- navicat下载安装和激活一分钟完成
下载navicat安装包和注册机 下载地址:https://pan.baidu.com/s/1Nakfuv7Z__vLiY6sHNusNg 提取码:v4gz 安装navicat 软件 以管 ...
- Nginx反向代理与Backend直接配置长连接
使用了Nginx的反向代理配置如下: upstream test{ keepalive 1; server 192.168.1.63:4000; } server { listen 4000; ser ...
- ZOJ - 4089 :Little Sub and Isomorphism Sequences (同构 set)
Little Sub has a sequence . Now he has a problem for you. Two sequences of length and of length are ...
- HihoCoder - 1807:好的数字串 (KMP DP)
Sample Input 6 1212 Sample Output 298 给定一个数字字符串S,如果一个数字字符串(只包含0-9,可以有前导0)中出现且只出现1次S,我们就称这个字符串是好的. 例如 ...
- 移动Web制作——JD案例
1.制作base.css 2.制作index.html 此时会考虑页面的流式布局 3.制作index.css 总结: 1.页面制作时应注意流式布局,各版本的兼容性. 2.页面的大体组成主要有:轮播图. ...
- java-接口的概述及其特点
1.接口概述: - 从狭义的角度讲就是指java中的interface - 从广义的角度讲对外提供规则的都是接口 2.接口特点: - 接口中定义的全都是抽象方法. - 接口用关键字interface表 ...