Низькорівневе тестування жорсткого диску в Linux

  у розділі Технічні теми 

HDD

Існує багато програм для "глибокої" перевірки жорстких дисків1. Переважно вони працюють під Windows чи DOS (Viktoria, MHDD). Швидше за все саме вони і будуть встановлені на різних "аварійних" Live-CD.

Хоч такі програми і працюють з різними файловими системами2 не завжди є можливість використати CD-ROM, а запис їх на Live-USB це взагалі окрема і довга :) історія.

Часто під рукою є флешка з Live-Linux, наприклад Ubuntu яку дуже просто переносити на USB-накопичувач.

Linux надає можливість перевірити жорсткий диск без встановлення додаткових програм.

badblocks

Безпечний пошук bad-секторів (режим "лише читання"):

badblocks -sv /dev/sda

Безпечна перевірка в режимі читання/запис:

badblocks -nsv /dev/<device>

Повна перевірка з перезаписом (усі дані на жорсткому диску буде знищено!!!). Записуються нові дані, за певними шаблонами, які потім считуються з перевіркою:

# Дані буде знищено!!!
badblocks -wsv /dev/sda

Прилад результатів:

$ badblocks -wsv /dev/sda
Checking for bad blocks in read-write mode
From block 0 to 488786587
Testing with pattern 0xaa: done
Reading and comparing: done
Testing with pattern 0x55: done
Reading and comparing: done
Testing with pattern 0xff: 27.83% done, 6:19:45 elapsed. (0/0/0 errors)
[...]
Testing with pattern 0x00: done
Reading and comparing: done
Pass completed, 0 bad blocks found. (0/0/0 errors)

Нагадую, що наведені вище приклади працюють на дисках з будь-якою файловою системою (Windows/Unix/Linux).

Для чисто Linux-систем можна використати результати перевірки для запобігання використання поганих секторів.

fsck

Перевірка диску та збереження списку поганих секторів. Цей файл можна подати програмі для створення логічних дисків чи команді перевірки системи:

# перевірка диску
badblocks -wsv -o /root/<badblocks.txt> /dev/<device>
# створення розділу
mkfs.<filesystem-type> -l /root/<badblocks.txt> /dev/<device>
# перевірка розділу
e2fsck -l /root/<badblocks.txt> /dev/<device>

Логічна перевірка файлової системи з пошуком bad-секторів:

fsck -vcck /dev/sda

Програму badblocks буде запущено автоматично, а список поганих секторів буде взято до уваги командою fsck, щоб уникнути їх використання системою в майбутньому.

S.M.A.R.T.

Говорячи про перевіку стану жорсткого диску не можна не згадати про S.M.A.R.T. (Self Monitoring Analysis and Reporting Technology — Технологія Самоконтролю, Аналізу і Сповіщення).

Аналізуючи роботу диску технологія S.M.A.R.T. усуває проблеми на наднизькому рівні, навіть не показуючи їх операційній системі. Але наявність внутрішніх проблем може вказувати на те що жорсткому диску залишилось жити не довго...

Для Ubuntu, необхідні програми потрібно спочатку встановити (можна безпосередньо і на Live-USB).

sudo apt-get install smartmontools
sudo smartctl -i /dev/sda

P.S.

Програма з графічною оболонку для перегляду даних S.M.A.R.T. — GSmartControl.

GSmartControl

GParted Live

Щодо роботи з логічними розділами то "швейцарським ножем" у вигляді Live-USB є GParted Live.

На жаль програма не вміє виконувати низькорівневу перевірку, але робить чорта лисого з розділами, дисками (в т.ч. і відновлення випадково видалених розділів). Усе зі збереженням даних.

GParted Live


  1. Як правило під "перевіркою" диску мається на увазі перевірка на bad-сектори. 

  2. По суті, програмам для перевірки поверхні байдуже яка файлова система на вінчестері. Вони працюють з диском посекторно, не вникаючи в логічну розмітку. 

  3. Часто, тестування ж.д. називають "перевірка поверхні". Хоча правильна робота жорсткого диска залежить від купи факторів і стан середовища лише їх частина. В будь якому випадку, поломки приводів головок/дисків чи порушення внутрішньої логіки роботи вінчестера теж виливаються в помилки читання/запису. 


Коментарі