Вопрос 1:
Что касается -b
варианта: это зависит от вашего диска. Современные большие диски имеют блоки по 4 КБ, и в этом случае вам следует установить -b 4096
. Вы можете получить размер блока из операционной системы , и он также обычно может быть получен либо путем считывания информации о диске с метки, либо путем поиска номера модели диска. Если -b
установлено значение, превышающее размер вашего блока, целостность badblocks
результатов может быть нарушена (т. Е. Вы можете получить ложноотрицательные результаты: не найдено плохих блоков, если они еще могут существовать). Если -b
установлено значение, которое меньше размера блока вашего диска, скорость badblocks
запуска может быть поставлена под угрозу. Я не уверен, но могут быть другие проблемы с настройкой-b
к чему-то меньшему, чем размер вашего блока, так как он не проверяет целостность всего блока, все равно возможно получить ложноотрицательные результаты, если он установлен слишком маленьким.
В -c
опции соответствует тому , сколько блоков должны быть проверены сразу. Пакетное чтение / запись, в основном. Эта опция не влияет на целостность ваших результатов, но она влияет на скорость, с которой badblocks
работает. badblocks
(опционально) будет записывать, затем читать, буферизовать, проверять, повторять для каждого N блоков, как указано в -c
. Если -c
задано слишком низкое значение, это приведет к тому, что выполнение будет badblocks
выполняться намного дольше обычного, поскольку организация очередей и обработка отдельного запроса ввода-вывода влечет за собой дополнительные расходы, а диск также может налагать дополнительные накладные расходы на запрос. Если -c
установлено слишком высоко, badblocks
может не хватить памяти. Если это произойдет, badblocks
произойдет сбой довольно быстро после его запуска. Дополнительные соображения здесь включают параллельные badblocks
запуски: если вы работаетеbadblocks
против нескольких разделов на одном диске (плохая идея) или против нескольких дисков по одному и тому же каналу ввода-вывода, вы, вероятно, захотите настроить -c
что-то ощутимо высокое, учитывая доступную память, badblocks
чтобы параллельные прогоны не боролись за пропускную способность ввода-вывода и может распараллеливать в здравом смысле.
Вопрос 2:
Вопреки тому , что другие ответы показывают, тест записи режим не является более или менее надежны , чем тест неразрушающего чтения-записи, но в два раза быстрее, за счет того , чтобы быть разрушительной для всех ваших данных. Я объясню почему:-w
В неразрушающем режиме badblocks
выполняет следующие действия:
- Прочитайте существующие данные, проверьте их (прочитайте еще раз при необходимости) и сохраните их в памяти.
- Записать в блок предопределенный шаблон (переопределяемый с помощью
-p
опции, но обычно не обязательный).
- Прочитайте блок обратно, убедившись, что считанные данные совпадают с шаблоном.
- Запишите исходные данные обратно на диск.
- Я не уверен в этом, но он также, вероятно, перечитывает и проверяет, что исходные данные были успешно записаны, и все еще проверяет контрольную сумму на то же самое.
В режиме destructive ( -w
) badblocks
выполняются только шаги 2 и 3 выше. Это означает, что количество операций чтения / записи, необходимых для проверки целостности данных, уменьшается вдвое. Если блок плохой, данные будут ошибочными в любом режиме. Конечно, если вы заботитесь о данных, которые хранятся на вашем диске, вы должны использовать неразрушающий режим, так как -w
вы уничтожите все данные и оставите badblocks
вместо них шаблоны, записанные на диск.
Предупреждение: если блок выходит из строя, но еще не полностью ушел, некоторые пары проверки чтения / записи могут работать, а некоторые - нет. В этом случае неразрушающий режим может дать вам более надежную индикацию «нестабильности» блока, поскольку он выполняет два набора проверки чтения / записи (возможно - см. Маркер на шаге 4). Даже если неразрушающий режим более надежен в этом смысле, он только более надежен по совпадению . Правильный способ проверки блоков, которые не являются полностью плохими, но не могут поддерживать несколько операций чтения / записи, - это запускать badblocks
несколько раз для одних и тех же данных, используя эту -p
опцию.
Вопрос 3:
Если SMART перераспределяет сектора, вам, вероятно, следует рассмотреть возможность замены диска как можно скорее. Диски, которые теряют несколько секторов, не всегда теряют их, но причина обычно в том, что сильно используемый диск становится магнитно-мягким, или неисправные головки / двигатели, приводящие к неточным или неудачным операциям чтения / записи. Конечно, окончательное решение остается за вами: исходя из ценности данных на диске и необходимой вам надежности систем, на которых вы работаете, вы можете решить сохранить их. У меня есть несколько дисков с известными неисправными блоками, которые годами вращались с предупреждениями SMART на моем файловом сервере, но их резервное копирование выполнялось по расписанию, так что я мог справиться с полным отказом без особой боли.