在lvm上的ext3 fs上按块编号查找文件
smartd在我的硬盘上检测到坏块,我想知道该块属于哪个文件.我在逻辑卷上有ext3文件系统.谷歌给了我很多关于如何在hdd块设备上直接创建文件系统时按块编号查找文件的教程(比如这一篇:
http://www.vanderzee.org/bad_blocks_howto).他们都没有提到LVM.在我的情况下有没有办法按块号查找文件?
解决方法
>如Bad Blocks Howto中所述,找到包含坏块的分区并计算分区内的扇区偏移量.假设分区是/ dev / sda3,它是LVM PV.
>确定第一个PE的扇区偏移量: pvs -o pe_start --units s /dev/sda3 从坏扇区偏移量中减去此偏移量,以获得与第一个PE相关的扇区偏移量.如果结果为负,则坏扇区位于LVM元数据区域中. Bad_Offset_from_1st_PE = Bad_Offset_in_Partition - First_PE_Start >运行pvdisplay –maps –units s / dev / sda3以获取PV中的段列表;此输出的“物理卷”部分也将显示“PE大小”字段. Bad_PE = Bad_Offset_from_1st_PE / PE_Size Bad_Offset_in_PE = Bad_Offset_from_1st_PE % PE_Size >在地图中找到包含错误PE的细分.如果幸运的话,该段可能是免费的,否则您将看到错误的逻辑卷.如果卷对您不感兴趣,您可以在此步骤停止(例如,它是交换,或您不关心的一些临时数据).扇区也可能超出最后一个PE,这意味着它要么在未使用区域中小于完整PE,要么在PV结束时的第二元数据区域中(如果存在这样的元数据区域). 如果坏卷是快照,则将坏扇区映射到逻辑卷中的实际偏移量将非常困难.如果您真的关心快照内容,您唯一能做的就是尝试从中读取并希望快照尚未使用坏扇区(如果使用它,希望机器不会完全挂起)当试图阅读它时). 如果坏卷正在使用LVM级别的镜像或条带等花哨的东西…当前不知道如何处理这个问题. Bad_LV_Offset = (Bad_LE * PE_Size) + Bad_Offset_in_PE >在第二步返回Bad Blocks Howto,找到与文件系统中Bad_LV_Offset的扇区对应的文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |