Как проверить жесткий диск на битые секторы в Linux
Битые сектора – это настоящая беда для жесткого диска, поскольку они становятся недоступными для записи, а в худшем случае и для чтения. Своевременное обнаружение таких секторов позволит предотвратить потерю важных данных, заблаговременно создав их резервную копию. Для проверки состояния физической памяти в Windows предусмотрена штатная утилита chkdsk.exe, в Linux для этих целей используется свой консольный инструмент – утилита с говорящим названием badblocks.
Как и в Windows, сканировать накопитель на предмет повреждений секторов в Linux лучше всего из-под LiveCD либо подключив его к другому компьютеру. Проверка смонтированных разделов в принципе возможна, но в этом случае результаты могут быть неточными. Если нужно проверить какой-то определенный раздел, а не весь накопитель, сначала определяем название этого раздела в менеджере томов Gparted либо выведя список томов в консоли командой:
sudo fdisk -l /dev/sdb1
Где sdb1 – проверяемый диск.
В нашем примере работа ведется из-под root, поэтому sudo пропущена, если вы работаете под обычной учетной записью, используйте полную команду.
sda1. Список разделов будет выведен в столбце «Device».
Допустим, нам нужно проверить диск sdb1.
Для этого формируем и выполняем в консоли команду:
sudo badblocks -vn /dev/sdb1 -o ~/bad_sectors.txt
Если появится строка «Testing with random pattern», просто нажмите ввод. Если в процессе проверки будут найдены bad-блоки, утилита запишет их в файл bad_sectors.txt, сохраняемый в каталог root.
Проверка может занять длительное время, все зависит от размера накопителя.
Принимаемые аргументы
В приведенной выше команде использовались ключи -v, -n и -o.
Первый включает подробный режим, второй указывает, что необходимо использовать безопасный режим чтения/записи, предотвращающий повреждение данных.
Ключ -o дает указание на запись результатов в файл.
Также вам могут пригодиться следующие ключи:
- -f – дает возможность сканировать даже смонтированные разделы. Используете ее с осторожностью.
- -s – показывает прогресс сканирования в консоли в процентах и счетчик найденных битых секторов.
- -i – позволяет передавать список ранее обнаруженных bad-блоков, используется в основном при повторных проверках с целью экономии времени.
- -p – задает количество циклов проверки, по умолчанию проводится только один тест.
- -w – если указать этот ключ, данные в секторах будут полностью перезаписаны (удалены).
Утилита badblocks не устраняет проблему bad-блоков, она предназначается для их обнаружения.
Для «исправления» мы рекомендуем использовать Windows-программу Victoria, в ней вы можете выполнить процедуру ремапинга – переноса данных с битых секторов (если они еще читаются) в исправные области диска с одновременным присвоением bad-блокам специальной метки, указывающей операционной системе, что использовать их более не следует.
В Linux для присвоения такой метки вы можете использовать встроенные консольные утилиты fsck или e2fsck, передав им созданный badblocks список поврежденных секторов.
Для этого используйте команду:
sudo e2fsck -l ~/bad_sectors.txt /dev/sdb1