将 badblocks 结果从 1024 块大小转换为 4096 块大小?

将 badblocks 结果从 1024 块大小转换为 4096 块大小?

我有一个 4TB 硬盘,我在运行该badblocks实用程序时没有传递-b block-size参数。所以我很确定它默认为1024,我的 4TB 驱动器/文件系统很可能设置了块大小4096有没有办法将结果转换为与 4096 块大小相匹配?例如,如果坏块是#5它将block-size=1024映射到块#2block-size=4096。这是从 1024 到 4096 的有效转换吗?

如果是这样,那么我可以重新运行坏块并指定开始和结束范围,这将节省我很多时间。

答案1

您说的没错,默认块大小badblocks是 1024。文档

-b block_size
   Specify the size of blocks in bytes. The default is 1024.

您的计算也正确。如果您使用的是默认配置的 Ext4,那么您的分区使用的是 4KB 块。因此,如果发现第 777 个块有错误,您可以向下舍入:

Floor((777 * 1024) / 4096) = 192

∴ Block 192

为了完整起见,您在指定范围时可以进一步向下舍入到 190:

sudo badblocks -sb 4096 /dev/sdb1 200 190

相关内容