Плохой сектор/блок — это участок жесткого диска или флеш-памяти, который не читается или не записывается в результате физического повреждения поверхности жесткого диска или выхода из строя транзисторов флеш-памяти.
Поскольку в процессе работы жесткого диска плохие сектора накапливаются, они могут постепенно уменьшать доступную емкость вашего диска или флешки, или даже привести к их отказу.
В этой статье мы опишем что нужно делать для того, чтобы проверить свой жесткий диск на наличие плохих секторов в Linux, с помощью специальных утилит.
Проверка диска на плохие сектора с помощью утилиты badblocks
Программа badblocks позволяет пользователю сканировать устройство на наличие плохих секторов или блоков. Устройство может быть внутренним или внешним жестким диском, представленным в виде файла вида /dev/sdc.
Сначала мы с помощью команды fdisk, запущенной от имени суперпользователя, выводим информацию о всех дисках и их разделах:
$ sudo fdisk -l
Затем запустите сканирование жесткого диска на плохие сектора/блоки с помощью команды:
$ sudo badblocks -v /dev/sda10 > badsectors.txt
В приведенной выше команде badblocks сканирует устройство /dev/sda10, опция -v указывает на вывод детальной информации о производимых действиях. Кроме того, результаты операции сохраняются в файле badsectors.txt с помощью перенаправления вывода.
В случае обнаружения плохих секторов на вашем диске отмонтируйте его и запретите операционной системе запись в эти сектора.
Для этого вам необходимо будет воспользоваться командами e2fsck (для файловых систем ext2/ext3/ext4) или fsck вместе с файлом badsectors.txt и файлом устройства, как показано ниже.
Опция -l указывает команде, что необходимо добавить номера блоков, заданные в соответствующем файле (badsectors.txt) в список плохих блоков.
Для файловых систем ext2/ext3/ext4
$ sudo e2fsck -l badsectors.txt /dev/sda10
Для других файловых систем
$ sudo fsck -l badsectors.txt /dev/sda10
Поиск плохих секторов в Linux Disk с помощью Smartmontools
Этот метод более надежен и эффективен при работе с современными дисками (ATA/SATA, SCSI/SAS, а также твердотельными накопителями), оснащенными системой S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology), которая помогает детектировать, сообщать и в некоторых случаях вести лог состояния жесткого диска.
Вы можете установить smartmontools с помощью следующих команд:
В системах на базе Debian/Ubuntu
$ sudo apt-get install smartmontools
В системах на базе RHEL/CentOS
$ sudo yum install smartmontools
Для контроля интегрированной в диск системы S.M.A.R.T используется утилита smartctl. Подробно ознакомиться с ее возможностями вы можете с помощью следующих команд:
$ man smartctl $ smartctl -h
Теперь введите команду smartctrl, указав в качестве аргумента название своего диска и флаг -H или —health, чтобы получить результаты тестирования диска.
$ sudo smartctl -H /dev/sda10
Представленные выше результаты показывают, что с вашим диском все в порядке, и у него в ближайшем времени не должно быть никаких аппаратных сбоев.
Для вывода обзорной информации о состоянии диска используется опция -a или —all, при этом выводится все информация системы SMART, а при использовании опции -x или —xall выводится также информация, не относящаяся к системе SMART.