Перевірка жорсткого диска на Linux. Перевірка справності роботи диска в Ubuntu Перевірка диска в Ubuntu 16.04

Головна / Захист

Чи передбачав Лінус Торвальдс, створюючи своє дітище, що Linux буде використовуватися у вбудованих системах, причому не тільки в дешевих домашніх роутерах, але і в таких серйозних телеком рішеннях як АТС AVAYA?

Нещодавно довелося відновлювати працездатність АТС AVAYA одного великого Замовника. Це шлюз Avaya G650 (шасі) із сервером Avaya S8400 (процесор). Де як системний диск використовується носій CompactFlash об'ємом 2 ГБ. Який умовно можна вважати SSD диском із інтерфейсом IDE.
І яке ж було моє здивування, коли підключивши CF накопичувач через карт-рідер, я побачив знайому структуру Linux файлової системи. Що, звичайно, полегшило процедуру перевірки працездатності CF накопичувача.

Як перевірити файлову систему Linux диск на наявність помилок

В операційній системі MicroSoft DOS (про так, я пам'ятаю версію 5.0, яка містилася на одній дискеті!) була команда перевірки дисків CHKDSK. І щось подібне є і в Linux.
Щоб перевірити диск Linux на наявність помилок файлової системи, необхідно з'ясувати імена файлових систем для перевірки:

# df -h Filesystem Size Затверджено використання %% Mounted on /dev/sda 20G 4.0G 15G 21% / /dev/sdd1 1G 455M 555M 46% /media/Np%blsl3648B4Jjeiedgyy /de1/d0 10.13-23dd none 246M 0 246M 0% /dev/shm

Для накопичувача CF, що тестується, — це /dev/sdd1і /dev/sdd6
Далі необхідно розмонтувати файлові системи, що тестуються:

#sudo umount /dev/sdd1 #sudo umount /dev/sdd6

#fsck -y /dev/sdd1 #fsck -y /dev/sdd6

Параметр -yбуде автоматично на всі питання відповідати yes, що як правило більшість користувачів і робить.

Результати роботи утиліти перевірки файлової системи Lunux FSCK

У моєму випадку на одному з розділів були помилки, які виправила утиліта. Після чого CF накопичувач повернули на своє місце і працездатність АТС Avaya була відновлена.

by Admin

Розглянемо способи перевірки та діагностики hdd у linux системах. Інформація про роботу HDD допоможе проаналізувати стан і в разі необхідності замінити збійний носій, тим самим запобігши краху системи або втраті даних. Додатково прикручуємо спостереження за smart HDD до нашої системи моніторингу zabbix

Отримуємо список підключених накопичувачів у системі

Для визначення, що і куди змонтовано, виконаємо

Подивитися зайняте місце на тому чи іншому накопичувачі

Якщо є софт.райд, перевіримо його наступною командою

[email protected]:~# cat /proc/mdstat
Personalities:
md1: active raid1 sdb3 sda3
965888832 blocks super 1.2

md0: active raid1 sdb1 sda1
9756544 blocks super 1.2
unused devices:
[email protected]:~#

який raid встановлений (зібраний)
md0- назва пристрою raid
sda sdb- увімкнені пристрої в даний raid
- стан дисків у RAID масиві

Встановлюємо необхідні пакети

aptitude install hdpparm sysstat smartmontools

Дивимося стан швидкості читання з накопичувача

За допомогою iostat(у складі sysstat) аналізуємо навантаження на наші HDD

Дивимося виведення даних по всіх дисках з інтервалом 10 сек.

Можна визначити накопичувач для аналізу, додавши

За допомогою даної утиліти визначимо навантаження на наші пристрої, статистику введення/виведення та відсоткову утилізацію.

avg-cpu: %user %nice %system %iowait %steal %idle
0,16 0,00 1,89 23,75 0,00 74,21

Перевірка стану накопичувачів

Для початку перевіримо наш HDD на наявність збійних блоків, у разі потреби виділимо їх та позначимо для ігнорування.

badblocks /dev/sda3 -sv > /root/badblockSDA3
Checking for bad blocks (read-only test): 27.93% done, 36:12 elapsed. (0/0/0 errors)

/dev/sda3- ім'я пристрою, що перевіряється
s- Висновок процентної інформації
v- включаємо докладний режим
> /root/badblockSDA3- записуємо збійні сектори у файл

Позначка бед блоків (надалі помічені блоки ігноруватимуться системою):

e2fsck -l /root/badblockSDA3 /dev/sda3

Погані блоки позначені, з диском можна працювати.

УВАГА!!! Ця операція повинна проводитись на розмонтованому носії або в режимі read-only

УВАГА!!! Перевірений пристрій і пристрій, на якому будуть помічатися збійні блоки, має бути одне і теж!

Отримуємо дані S.M.A.R.T про роботу HDD

Де /dev/sdX - ім'я пристрою, яке необхідно перевірити.
Ви отримаєте виведення атрибутів S.M.A.R.T., значення кожного з яких добре описані у wiki

Моніторинг S.M.A.R.T стану жорстких дисків в Zabbix

Для кожного з накопичувачів перевіряємо підтримку SMART

[email protected]:~# smartctl -i /dev/sda |grep SMART
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
[email protected]:~#

Якщо підтримується, але не включений, то включаємо

smartctl -s on -S on -o on /dev/sda

перевіряємо статус командою

smartctl -H /dev/sda |grep "test"| cut -f2 -d: |tr -d " "

[email protected]:/etc/zabbix# smartctl -H /dev/sda |grep "test"| cut -f2 -d: |tr -d " "
PASSED
[email protected]:/etc/zabbix#

У файлі конфігурації zabbix агента агента включаємо параметр перевірки smart для диска

UserParameter=HDD_smart.[*],sudo smartctl -H /dev/$1 |grep "test"| cut -f2 -d: |tr -d " "

де HDD_smart- ключ для zabbix елемента

в sudoersдодаємо запис

zabbix ALL=NOPASSWD:/usr/sbin/smartctl

рестартуємо sudo та zabbix агента.

Щоб бути впевненим у коректності, залогінимся під zabbix користувачем та перевіряємо виконання нашої команди

[email protected]:/etc/zabbix# su - zabbix -s /bin/bash
Каталог відсутній або недоступний, вхід до системи виконується з HOME=/
zabbix [email protected]:/$ sudo smartctl -H /dev/sda |grep "test"| cut -f2 -d: |tr -d " "
PASSED
[email protected]:/$

На zabbix сервер створимо zabbix agent ( Активний)елемент даних

Ім'я- довільне
Тип- Zabbix агент (Активний)
Ключ- HDD_Smart. - для першого диска, для другого відповідно.
Тип- Символ

І через деякий час спостерігаємо дані

Несправний жорсткий диск - одне з найнеприємніших явищ у роботі комп'ютера. Мало того, що ми легко можемо втратити дуже багато важливої ​​інформації та файлів, так і заміна HDD неслабо б'є по бюджету. Додамо до цього витрачений час та нерви, які, як відомо, не відновлюються. Щоб не дати проблемі застати нас зненацька і заздалегідь діагностувати, варто знати, як перевірити жорсткий диск на помилки в ОС Ubuntu. Програмних засобів, що надають такі послуги, достатньо.

Як Ubuntu протестувати жорсткий диск на помилки.

Зовсім необов'язково качати програми, щоб виконати перевірку диска в Ubuntu. Операційна система вже має утиліту, яка призначена для цього завдання. Називається вона badblocks, керується через термінал.

Відкриваємо термінал та вводимо:

Ця команда відображає інформацію про всі HDD, які використовують систему.

Після цього вводимо:

sudo badblocks -sv /dev/sda

Команда служить для пошуку пошкоджених секторів. Замість /dev/sda вводимо ім'я накопичувача. Ключі -s та -v служать для того, щоб відображати в правильному порядку хід перевірки блоків (s) і щоб видавати звіт про всі дії (v).

Натисканням клавіш Ctrl+C ми зупиняємо перевірку жорсткого диска.

Для контролю за файловою системою також можна використовувати дві інші команди.

Для того, щоб розмонтувати файлову систему, вводимо:

Для перевірки та виправлення помилок:

sudo fsck -f -c /dev/sda

  • "-f" робить процес примусовим, тобто проводить його, навіть якщо HDD позначений як працездатний;
  • -c знаходить і позначає бед-блоки;
  • «-y» - додатковий аргумент, який відразу ж відповідає Yes на всі питання системи. Замість нього можна ввести "-p", він проведе перевірку в автоматичному режимі.

Програми

Додаткове програмне забезпечення також чудово справляється з цією функцією. А іноді навіть краще. Тим більше, що деяким користувачам простіше працювати з графічним інтерфейсом.

GParted саме для тих, кому текстовий інтерфейс не до вподоби. Утиліта виконує велику кількість завдань, пов'язаних із роботою HDD на Убунту. До них входить і перевірка диска на помилки.

Для початку нам потрібно завантажити та встановити GParted. Вводимо наступну команду, щоб виконати завантаження з офіційних репозиторіїв:

sudo apt-get install gparted

  1. Відкриваємо програму. На головному екрані відразу виводяться всі носії. Якщо якийсь із них позначений знаком оклику, значить, з ним уже щось не так.
  2. Клацаємо по тому диску, який хочемо перевірити.
  3. Тиснемо на кнопку «Розділ», розташовану зверху.
  4. Вибираємо "Перевірка на помилки".

Програма сканує диск. Залежно від його обсягу, процес може йти довше або менше. Після сканування ми будемо сповіщені про його результати.

Це вже складніша утиліта, яка виконує більш серйозну перевірку HDD за різними параметрами. Як наслідок, керувати їй також складніше. Графічний інтерфейс у Smartmontools не передбачено.

Качаємо програму:

aptitude install smartmontools

Дивимося які накопичувачі підключені до нашої системи. Звертати увагу потрібно на рядки, що закінчуються буквою, а чи не цифрою. Саме у цих рядках міститься інформація про диски.

ls-l/dev | grep -E 'sd|hd'

Вбиваємо команду для виведення докладної інформації про носія. Варто подивитися на параметр ATA. Справа в тому, що при заміні рідного диска, краще ставити пристрій з тим самим великим ATA. Так можна максимально розкрити його можливості. А також подивіться та запам'ятайте параметри SMART.

smartctl –info /dev/sde

Запускаємо перевірку. Якщо SMART підтримується, то додаємо "-s". Якщо він не підтримується або вже включений, цей аргумент можна прибрати.

smartctl -s on -a /dev/sde

Після цього дивимося інформацію під READ SMART DATA. Результат може приймати два значення: PASSED або FAILED. Якщо випало останнє, можна починати робити резервні копії та шукати заміну вінчестеру.

Цим можливості програми не вичерпуються. Але для одноразової перевірки HDD цього буде цілком достатньо.

Safecopy

Це вже та програма, яку можна використати на тоне судні. Якщо ми обізнані, що з нашим диском щось не так, і націлені врятувати якомога більше файлів, що вижили, то Safecopy прийде на допомогу. Її завдання саме полягає у копіюванні даних із пошкоджених носіїв. Причому вона отримує файли навіть з битих блоків.

Встановлюємо Safecopy:

sudo apt install safecopy

Переносимо файли з однієї директорії до іншої. Вибрати можна будь-яку іншу. У цьому випадку ми переносимо дані з диска sda до папки home.

sudo safecopy /dev/sda /home/

Бед-блоки

У деяких можуть виникнути питання: "що таке ці биті блоки і звідки вони взагалі взялися на моєму HDD, якщо я його жодного разу не чіпав?" Bad blocks, або бед-сектори – розділи HDD, які більше не читаються. У всякому разі, так вони з об'єктивних причин були позначені файловою системою. І швидше за все, з диском у цих місцях справді щось не так. «Беди» зустрічаються як на старих вінчестерах, так і на найсучасніших, оскільки працюють вони практично за тими самими технологіями.

З'являються ж збійні сектори з різних причин.

  • Переривання запису через вимкнення живлення. Вся інформація, що надходить на жорсткий диск, розбивається у вигляді одиниць і нулів на різні його частини. Збити цей процес означає сильно заплутати вінчестер.
  • Неякісне складання. Тут і казати нічого. У дешевого китайського пристрою полетіти може будь-що.

Тепер ви знаєте, як сканувати HDD на помилки. Перевірка диска як на Ubuntu, так і на інших системах є досить важливою операцією, яку варто проводити хоча б раз на рік.

Якщо і є те, з чим ви дуже не хочете зіткнутися у вашій операційній системі, то це несподіваний вихід з ладу жорстких дисків. За допомогою резервного копіювання та технології зберігання RAID ви можете дуже швидко повернути всі дані на місце, але втрата апаратного пристрою може дуже позначитися на бюджеті, особливо якщо ви такого не планували.

Щоб уникнути таких проблем, можна використовувати smartmontools. Це програмний пакет для управління та моніторингу пристроїв зберігання даних за допомогою технології Self-Monitoring Analysis and Reporting Technology або просто SMART.

Більшість сучасних ATA/SATA, SCSI/SAS накопичувачів інформації надають інтерфейс SMART. Мета SMART – моніторинг надійності жорсткого диска, для виявлення різних помилок та своєчасного реагування на їх появу. Smartmontools складається з двох утиліт – smartctl та smartd. Разом вони представляють потужну систему моніторингу та попередження про можливі поломки HDD у Linux. Далі буде детально розглянуто перевірку жорсткого диска linux.

Пакет smartmontools є в офіційних репозиторіях більшості дистрибутивів Linux, тому встановлення зводиться до виконання однієї команди. У Debian та системах, що базуються на ньому, виконайте:

aptitude install smartmontools

А для Red Hat:

yum install smartmontools

Тепер можна переходити до діагностики жорсткого диска linux.

Перевірка жорсткого диска у smartctl

Спочатку дізнайтеся, які жорсткі диски підключені до вашої системи:

ls-l/dev | grep -E "sd | hd"

У висновку буде щось подібне:

Тут – sdx – ім'я пристрою HDD підключеного до комп'ютера.

Для відображення інформації про конкретний жорсткий диск (модель пристрою, S/N, версія прошивки, версія ATA, доступність інтерфейсу SMART) Запустіть smartctl з опцією info та ім'ям жорсткого диска. Наприклад, для /dev/sda:

smartctl --info /dev/sda

Хоча ви можете не звернути увагу на версію ATA, це один з найважливіших факторів при пошуку заміни пристрою. Кожна нова версія ATA сумісна з попередніми. Наприклад, старі пристрої ATA-1 та ATA-2 чудово будуть працювати на ATA-6 та ATA-7 інтерфейсах, але не навпаки. Коли версії ATA пристрою та інтерфейсу не співпадають, можливості обладнання не будуть повністю розкриті. В даному випадку для заміни краще вибрати жорсткий диск ATA-7.

Запустити перевірку жорсткого диска ubuntu можна командою:

smartctl -s on -a /dev/sda

Тут опція -sмістить прапорець SMART на вказівному пристрої. Ви можете його прибрати, якщо підтримка SMART вже включена. Інформація про диск розділена на кілька розділів. READ SMART DATAє загальна інформація про здоров'я жорсткого диска.

START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment rest result: PASSED

Цей тест може бути пройдений ( PASSED) чи ні ( FAILED). В останньому випадку збій неминучий, починайте резервне копіювання даних із цього диска.

Наступна річ, яку можна подивитися, коли потрібна діагностика HDD в linux, це таблиця SMART атрибутів.

У таблиці SMART записані параметри, визначені для конкретного диска розробником, а також поріг відмови для цих параметрів. Таблиця заповнюється автоматично та оновлюється на основі прошивки диска.

  • ID #- ID атрибуту, як правило, десяткове число між 1 та 255;
  • ATTRIBUTE_NAME- назва атрибуту;
  • FLAG- Прапор обробки атрибуту;
  • VALUE- це поле є нормальним для стану даного атрибуту в діапазоні від 1 до 253, 253 - кращий стан, 1 - гірше. Залежно від властивостей початкове значення може бути від 100 до 200;
  • WORST- найгірше значення value за весь час;
  • THRESH- найнижче значення value, після переходу за яке потрібно повідомити, що диск непридатний для експлуатації;
  • TYPE- тип атрибута, можливо Pre-fail або Old_age. Всі стандартні атрибути вважаються критичними, тобто якщо диск не пройшов перевірку по одному з атрибутів, то він уже вважається не придатним (FAILED) але атрибути old_age не критичні;
  • UPDATED- Вказує частоту оновлення атрибута;
  • WHEN_FAILED- буде встановлено в FAILING_NOW якщо значення атрибута менше або дорівнює THRESH, або "-" якщо вище. У випадку FAILING_NOW, краще якнайшвидше виконати резервне копіювання, особливо якщо тип атрибута Pre-fail.
  • RAW_VALUE- Значення, визначене виробником.

Зараз ви думаєте, так smartctl хороший інструмент, але у мене немає можливості запускати його щоразу вручну, було б непогано автоматизувати всю цю справу, щоб програма запускалася періодично і повідомляла мені про результати перевірки. І це можливо за допомогою smartd.

Налаштування smartd та smartctl для діагностики та моніторингу в реальному часі

Діагностика hdd у linux в реальному часі налаштовується дуже просто. Спочатку відредагуйте конфігураційний файл smartd - /etc/smartd.conf. Додайте наступний рядок:

nano /etc/smartd.conf

/dev/sda -m [email protected]-M test

  • -m - адреса електронної пошти для надсилання результатів перевірки. Це може бути адреса локального користувача, суперкористувача або зовнішню адресу, якщо налаштовано сервер для надсилання електронної пошти;
  • -M- Частота надсилання листів. once - надсилати лише одне повідомлення про проблеми з диском. daily- надсилати повідомлення щодня якщо було виявлено проблему. diminishing- надсилати повідомлення через день, якщо була виявлена ​​проблема. test- надсилати тестове повідомлення під час запуску smartd. exec- Виконує зазначену програму в місце відправлення пошти.

Збережіть зміни та перезапустіть smartd. Ви повинні отримати на електронну пошту листа такого змісту:

Також можна запланувати тести за своїм графіком, для цього використовуйте опцію -s та регулярний вираз типу "T/MM/ДД/ДН/ЧЧ", де:

  • T- Тип тесту:
  • L- Довгий тест;
  • S- короткий тест;
  • C- Тест переміщення (ATA);
  • O- офлайн (тест).

Інші символи визначають дату та час тесту:

  • ММ- місяць на рік;
  • ДД- День місяця;
  • ЧЧ- Час Дня;
  • ДН- день тижня (від 1 – понеділок 7 – неділя;
  • MM, ДД та ЧЧ- Вказуються з двох десяткових цифр.

Крапка означає всі можливі значення, вираз у дужках (A|B|C) - означає один із трьох варіантів, вираз у квадратних дужках означає діапазон (від 1 до 5).

Наприклад, щоб виконувати повну перевірку жорсткого диска linux кожного робочого дня на годину дня, додайте наступний рядок у smartd.conf:

DEVICESCAN -s (L/../..//13)

Висновки

Якщо ви хочете швидко перевірити механічну роботу жорсткого диска, переглянути його фізичний стан або виконати більш-менш повне сканування поверхні диска використовуйте smartmontools. Не забувайте виконувати регулярне сканування, потім будете дякувати. Ви вже це робили раніше? Робитимете? Чи використовуєте інші методи? Напишіть у коментарях!

Джерело перекладу.

Якщо під час завантаження операційна система повідомляє про наявність помилок у файловій системі на одному з розділів, то варто негайно перевірити диски та виправити помилки файлової системи.

Будь-який поважаючий себе користувач не повинен забувати, що періодична перевірка жорстких дисків на биті сектори та перевірка дисків на помилки є прикладом здорового глузду.

Важливо!Запуск та виконання FSCKна змонтованій файловій системі може призвести до пошкодження даних, томувикористовуйте цей матеріал на свій страх і ризик. Автор не несе відповідальності за будь-які збитки, які ви можете заподіяти.

Для того, щоб убезпечити себе, необхідно:

  • Перейти в режим одного користувача (Single user mode) і розмонтувати файлову систему
  • Завантажити комп'ютер у режимі відновлення за допомогою компакт-диска

Отже, необхідно перевірити диски і виправити помилки файлової системи, почнемо.

1) Single user mode

Змініть рівень ініціалізації та розмонтуйте файлову систему:

# init 1
# umount /home

Виконайте пошук підключених розділів:

# fsck /dev/sda1

2) Режим відновлення з компакт-диска.

Вставте компакт-диск у дисковод і перезавантажте систему:

Зачекайте деякий час і після завантаження з інсталяційного компакт-диска виконайте команду:

# linux rescue nomount

Директива NOMOUNT заборонить монтування, тому ви зможете безпечно використовувати FSCK.

Після цього запустіть FSCK для розділу помилок:

# fsck -yvf /dev/sda1

LVM (Logical Volume Manager)

Ситуація з LVM (Logical Volume Manager)розділами трохи складніше. Для запуску FSCKдля LVMрозділів спочатку необхідно знайти PV (Physical Vollume), VG (Volume Group), LV (Logical Extension)та активувати їх, для цього виконайте послідовно такі команди:

# lvm pvscan
# lvm vgscan
# lvm lvchange -ay VolGroup00
# lvm lvscan

# fsck -yfv /dev/VolGroup00/LogVol00

За фактом виконання FSCK поверне результат у вигляді коду, цей код — це унікальний номер, який становить суму наступних значень:

0 – Без помилок (No errors);
1 - Виправлені помилки файлової системи (Filesystem errors correctod);
2 - Система має бути перезавантажена (System should be rebooted);
4 - Помилки файлової системи залишили без змін (Filesystem errors left uncorrected);
8 – Експлуатаційна помилка (Operational error);
16 - Помилки при використанні або синтаксичні помилки (Usage or syntax error);
32 - Fsck скасовано на запит користувача (Fsck canceled by user request);
128 – Помилка загальної бібліотеки (Shared-library error).

© 2022 androidas.ru - Все про Android