Вопрос 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
, но обычно не обязательный).
- Прочитайте блок обратно, убедившись, что считанные данные совпадают с шаблоном.
- Запишите исходные данные обратно на диск.
- Я не уверен в этом, но он также, вероятно, перечитывает и проверяет, что исходные данные были успешно записаны, и все еще проверяет контрольную сумму на то же самое.
В деструктивном (-w
) режиме badblocks
только шаги 2 и 3 выше. Это означает, что количество операций чтения / записи, необходимых для проверки целостности данных, уменьшается вдвое. Если блок плохой, данные будут ошибочными в любом режиме. Конечно, если вы заботитесь о данных, которые хранятся на вашем диске, вы должны использовать неразрушающий режим, так как -w
уничтожит все данные и оставит badblocks
шаблоны плохих блоков , записанные на диск.
Предупреждение: если блок выходит из строя, но еще не полностью исчез, некоторые пары проверки чтения / записи могут работать, а некоторые - нет. В этом случае неразрушающий режим может дать вам более надежную индикацию "помятости" блока, так как он выполняет два набора проверки чтения / записи (возможно - см. Маркер на шаге 4). Даже если неразрушающий режим более надежен в этом смысле, он только более надежен по совпадению. Правильный способ проверки блоков, которые не являются полностью плохими, но не могут выдержать несколько операций чтения / записи, - это запускать многократные badblocks
над одними и теми же данными, используя опцию -p
.
Вопрос 3:
Если SMART перераспределяет сектора, вам, вероятно, следует рассмотреть возможность замены диска как можно скорее. Диски, которые теряют несколько секторов, не всегда теряют их, но причина обычно в том, что накопитель с большой нагрузкой становится магнитно-мягким, или выход из строя головок / двигателей приводит к неточным или неудачным операциям чтения / записи. Конечно, окончательное решение остается за вами: исходя из ценности данных на диске и необходимой вам надежности от систем, на которых вы работаете, вы можете решить сохранить их. У меня есть несколько накопителей с известными неисправными блоками, которые годами вращались с предупреждениями SMART на моем файловом сервере, но их резервное копирование выполнялось по расписанию, так что я мог справиться с полным отказом без особой боли.