Как интерпретировать вывод badblocks

44

Справочные страницы для badblocks, кажется, не упоминают, что конкретно означают три числа в выходных данных:

Пройдено успешно, найдено 7 плохих блоков (7/0/0 ошибок)
Пройдено успешно, найдено 120 плохих блоков (0/0/120 ошибок)

Я предполагаю, что это «Ошибки при чтении / записи / сравнении». Может ли кто-нибудь просветить меня?

Томалак
источник

Ответы:

46

Ваше предположение верно.

Исходный код выглядит так:

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);
}
frostschutz
источник
Отлично. Поиск в источнике единственной вещи, которая должна была произойти со мной, но почему-то этого не произошло. Спасибо. :)
Томалак
Конечно, это также причина, по которой в этом (0/0/120 errors)случае нет сообщений об ошибках ядра .
Томалак
Возможная причина ошибок повреждения заключается в том, что во время работы на диск badblocksбыло записано что-то еще , и в этом случае это вообще не будет ошибкой (кроме ошибки пользователя).
frostschutz
В данном случае это подозрительный диск, который я использую исключительно с бадблоками. Никакой другой процесс не пишет в него. Есть ли способ визуализации выходного файла со списком поврежденных секторов, если не считать вычисления вручную их положения?
Томалак
-8

Неправильно. Если badblocks говорит что- то, что не «ошибок не найдено», это означает:

  • Выключите машину немедленно
  • Получить замену диска
  • Молитесь, чтобы $ GOD_OF_BACKUPS важные данные были в безопасности
  • Сделайте все необходимое для настройки нового диска и скопируйте данные со старого

При желании вы можете оставить диск для развлечения или в качестве пресс-папье.

(Современные диски имеет множество дополнительных цилиндров для переназначения сбойных блоков, так как нет никакого способа изготовления дисков без них, и пользователи кричал кровавый ад , когда они увидели плохой блок список. Если сбойные блоки действительно показывают, это означает , что это пространство Так как обычные режимы отказа вращающихся дисков дают экспоненциально увеличивающееся количество поврежденных блоков, некоторые из них означают, что на диске обычно остается несколько часов.)

vonbrand
источник
10
Это даже не вопрос.
Томалак
1
Никогда не запускайте badblocksдиск, на котором есть важные данные. Если на диске есть ошибка, это badblocksможет привести к дополнительному повреждению даже в режиме неразрушающей записи, если он не может записать исходные данные из-за ошибки.
frostschutz
@frostschutz, -nтест должен быть только для чтения?
vonbrand
3
Нет, -nнеразрушающий писать. Так что пишет, но восстанавливает исходные данные после тестирования. Который может потерпеть неудачу из-за ошибок. Только для чтения badblocks, я полагаю, что вы вообще не используете опцию.
frostschutz
Неплохой совет, но вопрос не подходит. Вы могли бы сделать ответ на вопрос в стиле Q & A.
neverMind9