Роман Теличко

Заметки веб-разработчика/админа

Как проверить диск на ошибки и бэд-сектора в Linux

// | 72769 просмотров | комментариев (1)

Примером хорошего тона и здравого смысла является периодическая проверка диска на битые сектора (бэд-сектора, badblocks) и обычная проверка диска на ошибки записи и т.п.
Разберёмся что такое битые сектора.
Любимая Википедия говорит следующее:

Бэд-сектор, Повреждённый сектор — сбойный (не читающийся) или ненадежный сектор диска; кластер, содержащий сбойные сектора, или кластер помеченный таковым в структурах файловой системы операционной системой.

Следовательно, если в битом секторе были данные, то их ещё возможно восстановить, пока битых секторов не стало слишком много для конкретного файла.

Составить список битых секторов можно с помощью команды badblocks.
Делается это так:

sudo badblocks -v /dev/hda1 > ~/badblocks.list

Где /dev/hda1 — это раздел диска, что вы хотите проверить.

Желательно делать проверку в однопользовательском режиме, если это не внешний диск. Тогда его просто стоит отмонтировать.

После этого мы можем запустить утилиту fsck, явно указав ей список битых секторов для того, чтобы она их отметила как «битые» и попыталась восстановить с них данные.
Делается это так:

sudo fsck -t ext4 -l ~/badblocks.list /dev/hda1

Где ext4 — это тип файловой системы нашего раздела диска, а /dev/hda1 — сам раздел диска.

fsck выведет статус проверки и может спросить как поступать в том или ином случаи.
Пример вывода такой:

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Check reference counts.
Pass 5: Checking group summary information.

/dev/hda1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/hda1: 11/360 files, 63/1440 blocks

Это всё.
Делайте проверку чаще и не забывайте резервировать данные.
Удачи.

  • Valery Bragin

    » sudo badblocks -v /dev/hda1 > ~/badblocks.list
    Я бы добавил опцию -s , для отображения хода выполнения и вместо перенаправления в файл есть опция -o ~/badblocks.list
    sudo badblocks -vs -o ~/badblocks.list /dev/hda1 — как то так .
    Ну и если есть сомнения в диске опция -w , для проверки не только чтения но и записи, правда ну очень долго и тест деструктивный, данные пропадут, для сохранения данных опция -n …