команда 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)
Очевидно, що в ході перевірки розділу пошкоджених секторів не було виявлено.