Нашел пачку дисков на работе и решил их проверить на вшивость. В Linux можно использовать утилиту badblocks. Если нужно проверить корневой раздел то лучше загрузиться с LiveCD. Для поиска разделов можно воспользоваться fdisk
1 |
sudo fdisk -l |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Disk /dev/sde: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: ST1000NM0045 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x2d54b54d Device Boot Start End Sectors Size Id Type /dev/sde1 * 2048 976895 974848 476M fd Linux raid autodetect /dev/sde2 978942 1953523711 1952544770 931G 5 Extended /dev/sde5 978944 1953523711 1952544768 931G fd Linux raid autodetect Disk /dev/sdf: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors Disk model: ST1000NM0045 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xf3c850f2 Device Boot Start End Sectors Size Id Type /dev/sdf1 2048 976895 974848 476M fd Linux raid autodetect /dev/sdf2 978942 1953523711 1952544770 931G 5 Extended /dev/sdf5 978944 1953523711 1952544768 931G fd Linux raid autodetect |
В данном примере я хочу проверить диск sdf целиком. Для этого обратимся к синтаксису утилиты:
1 |
sudo badblocks опции /dev/имя_раздела_диска |
Опции:
- -e — позволяет указать количество битых блоков, после достижения которого дальше продолжать тест не надо;
- -f — по умолчанию утилита пропускает тест с помощью чтения/записи если файловая система смонтирована чтобы её не повредить, эта опция позволяет всё таки выполнять эти тесты даже для смонтированных систем;
- -i — позволяет передать список ранее найденных битых секторов, чтобы не проверять их снова;
- -n — использовать безопасный тест чтения и записи, во время этого теста данные не стираются;
- -o — записать обнаруженные битые блоки в указанный файл;
- -p — количество проверок, по умолчанию только одна;
- -s — показывать прогресс сканирования раздела;
- -v — максимально подробный режим;
- -w — позволяет выполнить тест с помощью записи, на каждый блок записывается определённая последовательность байт, что стирает данные, которые хранились там раньше.
Таким образом для обычной проверки используем команду:
1 |
sudo badblocks -s -v /dev/sdf -o /home/dadenard/bad_sec.txt |
После завершения проверки, если были обнаружены битые блоки, надо сообщить о них файловой системе. Для этого используйте утилиту fsck и опцию -l:
1 |
sudo fsck -l ~/bad_sectors.txt /dev/sdf1 |
Использованы материалы: