В Linux команда badblocks
предназначена для сканирования устройств хранения данных (дисков, съёмных устройств) на наличие плохих блоков.
Плохие блоки не могут быть надёжно использованы из-за физического износа или других проблем.
Содержание
Синтаксис
$ badblocks [-b block_size] [-i input_file] [-o output_file] [-svwnfBX]
[-c blocks_at_once] [-d delay_factor_between_reads] [-e max_bad_blocks]
[-p num_passes] [-t test_pattern [-t test_pattern [...]]]
device [last_block [first_block]]
Параметры
-v
Вывести дополнительную информацию об операции по мере её проведения и все номера блоков по мере их проверки
-s
Вывести панель прогресса, обновляемую каждые 5 минут по умолчанию
-b, block-size
Указать размер блока для операции. По умолчанию 1024 байта
-c, blocks_at_once
Определить количество блоков для тестирования сразу. По умолчанию 64
-d, test_pattern
Указать шаблон теста для теста чтения-записи. Это может быть 0 или 1
-e, max_errors
Прекратить проверку после определённого количества ошибок
-p, num_passes
Проходить тесты несколько раз
-t, test_pattern
Обеспечить шаблон теста только для чтения
-w
Вызвать разрушительный тест чтения-записи. Будьте осторожны при использовании этой опции, так как она удалит любые существующие данные на диске
Использование в Linux команды badblocks
Запуск утилиты без параметров
В качестве простого примера запустим утилиту без параметров, а качестве аргумента воспользуемся одним из устройств хранения данных /dev/sdb
(Flash). Команда выведет номера любых плохих блоков, которые она найдёт:
oleg@mobile:~:$ sudo badblocks /dev/sdb
oleg@mobile:~:$
Был запущен тест Только для чтения на устройстве /dev/sdb
.
Проверка целостности диска
Одно из наиболее распространённых применений утилиты — проверка целостности диска, который, как вы подозреваете, мог быть повреждён или ухудшиться.
Выполнения неразрушающего чтения-записи
oleg@mobile:~:$ sudo badblocks -s -v -n -f /dev/sdb
oleg@mobile:~:$ sudo badblocks -s -v -n -f /dev/sdb
Checking for bad blocks in non-destructive read-write mode
From block 0 to 3921919
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done
Pass completed, 0 bad blocks found. (0/0/0 errors)
oleg@mobile:~:$
Устройство /dev/sdb
было протестировано на наличие плохих блоков неразрушающим тестом.
Здесь:
-s
Показывает прогресс
-v
Даёт многословный выход
-n
Выбирает неразрушающий режим чтения-записи
-f
Выполняет тест
Выполнения разрушительного чтения-записи
Пожалуйста, будьте осторожны, опция -w
удалит все данные на диске:
$ sudo badblocks -w -s /dev/sdb
Выполнение теста и запись плохих блоков в файл
$ sudo badblocks -v /dev/sdb > badblocks.txt
Checking blocks 0 to 3921919
Checking for bad blocks (read-only test): y
done
Pass completed, 0 bad blocks found. (0/0/0 errors)
oleg@mobile:~:$
Создан список плохих блоков в файл badblocks.txt
. Список можно использовать с fsck
, чтобы избежать этих блоков во время ремонта файловой системы.
Заключение
В этой статье, рассчитанной на начинающий пользователей Linux, приведены наиболее распространённые варианты работы с командой badblocks
.
Утилита важна в выявлении плохих секторов для предотвращения потери данных и предлагает безопасное и ответственное использование.
Всегда следует помнить, что утилита является очень мощным инструментом, который следует использовать с большой осторожностью.