badblocks 的手册页似乎没有提及输出中的三个数字的具体含义:
通过完成,发现 7 个坏块(7/0/0 错误)
通过完成,发现 120 个坏块(0/0/120 错误)
我是猜测这是“读取/写入/比较时出错”。有人可以启发我吗?
答案1
你的猜测是正确的。
源代码如下所示:
if (v_flag)
fprintf(stderr,
_("Pass completed, %u bad blocks found. (%d/%d/%d errors)\n"),
bb_count, num_read_errors, num_write_errors, num_corruption_errors);
所以它的读/写/损坏错误。损坏意味着与之前写入的数据进行比较:
if (t_flag) {
/* test the comparison between all the
blocks successfully read */
int i;
for (i = 0; i < got; ++i)
if (memcmp (blkbuf+i*block_size,
blkbuf+blocks_at_once*block_size,
block_size))
bb_count += bb_output(currently_testing + i, CORRUPTION_ERROR);
}
答案2
错误的。如果坏块说任何事物这不是“没有发现错误”,它的意思是:
- 关闭机器立即地
- 获取替换磁盘
- 祈祷$GOD_OF_BACKUPS重要数据安全
- 执行所需的操作来设置新磁盘,并从旧磁盘复制数据
您可以选择保留该磁盘以供娱乐,或作为镇纸。
(现代磁盘有一组额外的柱面用于重新映射坏块,因为没有它们就无法制造磁盘,当用户看到坏块列表时会尖叫该死。如果坏块做出现,则表示该空间已用完。由于旋转磁盘的常见故障模式会导致坏块数量呈指数级增长,因此看到一些意味着磁盘通常还剩下几个小时。)