Обложка канала

Лига сисадминов

Здесь мы собираем всё, что может быть интересно представителям, пожалуй, лучшей в мире профессии: руководства, лучшие практики, свежие новости мира ИТ, книги, и многое другое.

Лига сисадминов

3 года назад
Открыть в
badblocks — команда для поиска и исправления поврежденных секторов на жестких дисках Команда badblocks предназначена для поиска и исправления поврежденных секторов на жестких дисках. На сегодняшний день она в некоторой степени утратила свою актуальность из-за того, что современные жесткие диски осуществляют переназначение поврежденных секторов в автоматическом режиме сразу же после возникновения ошибок, связанных с чтением или записью данных. Тем не менее, она может использоваться для активации упомянутого механизма переназначения секторов, так как при работе в основном режиме она осуществляет посектороное чтение данных с жесткого диска, которое позволяет жесткому диску выявить и переназначить поврежденные сектора. Предупреждение: не используйте рассматриваемую команду, если не до конца уверены в правильности своих действий или не понимаете сути происходящих процессов, ведь в результате даже незначительной ошибки вы можете лишиться всех хранящихся на диске данных. Кроме того, не пытайтесь использовать эту команду по отношению к смонтированному разделу или к диску с со смонтирнованными разделами, ведь в этом случае последствия будут непредсказуемыми. Перед использованием badblocks необходимо определиться с жестким диском или его разделом, на котором нужно искать поврежденные сектора. Для этого может использоваться команда lsblk: # lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,MODEL NAME FSTYPE LABEL MOUNTPOINT MODEL ... В данном случае в столбце NAME будут выводиться имена файлов устройств накопителей и их разделов (для обозначения разделов используется дополнительная нумерация), в столбце FSTYPE - названия созданных в разделах файловых систем, в столбце LABEL - метки разделов, в столбце MOUNTPOINT - пути к точкам монтирования файловых систем, а в столбце MODEL - информация о моделях устройств. Базовый синтаксис команды: # badblocks -v /dev/<имя файла раздела или устройства> Параметр -v используется для вывода информации о ходе процесса проверки жесткого диска. Если вам по какой-либо причине понадобится запретить использование поврежденных секторов на уровне файловой системы вы всегда можете сохранить список этих секторов и передать его утилите e2fsck. Это делается следующим образом: # badblocks -v /dev/<имя файла раздела или устройства> > /tmp/badblocks.txt # e2fsck -l /tmp/bad-blocks.txt /dev/<имя файла раздела или устройства> # rm /tmp/badblocks.txt Однако, в большинстве случаев будет достаточно однокртного посектороного чтения данных из раздела или со всего устройства. Примеры использования 1. Выбор раздела жесткого диска для проверки # lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,MODEL NAME FSTYPE LABEL MOUNTPOINT MODEL sdb MAXTOR STM316081 ├─sdb4 ext4 home /home ├─sdb2 ext4 Debian └─sdb1 swap ... Выберем раздел с корневой файловой сситемой дистрибутива Debian (с соотвествующей меткой), который в данный момент не смонтирован. Ему соответствует файл устройства sdb2. 2. Проверка выбранного раздела на наличие поврежденных секторов # badblocks -v /dev/sdb2 Checking blocks 0 to 12697599 Checking for bad blocks (read-only test): done Pass completed, 0 bad blocks found. (0/0/0 errors) Очевидно, что в ходе проверки раздела поврежденных секторов не было обнаружено.