如何解释坏块输出

如何解释坏块输出

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重要数据安全
  • 执行所需的操作来设置新磁盘,并从旧磁盘复制数据

您可以选择保留该磁盘以供娱乐,或作为镇纸。

(现代磁盘有一组额外的柱面用于重新映射坏块,因为没有它们就无法制造磁盘,当用户看到坏块列表时会尖叫该死。如果坏块出现,则表示该空间已用完。由于旋转磁盘的常见故障模式会导致坏块数量呈指数级增长,因此看到一些意味着磁盘通常还剩下几个小时。)

相关内容