Перевіряє диск на наявність помилок linux mint. Перевірка диска на биті сектори у Linux. Як перевірити файлову систему Linux диск на наявність помилок

by Admin

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

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

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

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

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

root@big:~# 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:
root@big:~#

який 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

root@big:~# smartctl -i /dev/sda |grep SMART
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
root@big:~#

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

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

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

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

root@big:/etc/zabbix# smartctl -H /dev/sda |grep "вихід"| cut -f2 -d: |tr -d " "
PASSED
root@big:/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 користувачем та перевіряємо виконання нашої команди

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

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

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

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

Довелося і мені зіткнутися з цією проблемою. Мій один товариш, у якого встановлено Убунтуна старенький ноутбук ASUS, і який просто не хоче хоч іноді включати мозок, звернувся до мене з такою проблемою. На його ноуті встановлено нову Убунту 12.10 і дуже часто система просто не хоче завантажуватися, викидаючи в чорний екран, або застигаючи на фіолетовому фоні. А ось останнім часом почало вискакувати таке от повідомлення, щось на кшталт «Операційна система не змогла завантажитися. Виберіть потрібну клавішу для подальших дій…» І далі йде опис, що потрібно натиснути. Я вже точно не пам'ятаю, які клавіші пропонує натиснути система, але сенс такий, що для автоматичного виправлення помилок натисніть таку клавішу, для ручного налагодження іншу, і щоб ігнорувати це повідомлення пропонується натиснути третю кнопку. Автоматичне виправлення помилок ні до чого не призводило і завантаження операційної системи так і не сягало логічного завершення. От і вирішив спробувати знамениту команду fsck.

Для початку потрібно завантажитися або із завантажувальної флешки з Ubuntu (Lubuntu, Xubuntu, Kubuntu і т.д.), або з диска Ubuntu Live CD. Тепер нам потрібно дізнатися, який саме розділ з Убунт нам потрібно просканувати для виправлення файлової системи. Запускаємо Термінал (Ctrl-Alt-T) і виконуємо команду:

sudo fdisk -l

Ця команда покаже нам усі диски, флешки, які примонтовані до системи. Я наведу приклад із моїм особистим комп'ютером, а не з ноутбуком приятеля. Ось що вийшло в мене:

ubuntu@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 sectors



Disk identifier: 0x0009d6f7


/dev/sda1 * 2048 61442047 30720000 83 Linux
/dev/sda2 61442048 73730031 6143992 82 Linux swap / Solaris
/dev/sda3 73730048 1250263039 588266496 83 Linux

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb9ff6f01

Device Boot Start End Blocks Id System
/dev/sdb1 * 16065 100197404 50090670 83 Linux
/dev/sdb2 105322201 976771071 435724435+ 5 Extended
/dev/sdb3 100197405 105322139 2562367+ 82 Linux swap / Solaris
/dev/sdb5 105322203 832110591 363394194+ 7 HPFS/NTFS/exFAT
/dev/sdb6 832112640 860755218 14321289+ 83 Linux
/dev/sdb7 860758016 862613503 927744 82 Linux swap / Solaris
/dev/sdb8 862615552 976771071 57077760 83 Linux

Partition table entries не входить в диск order

Disk /dev/sdc: 8115 MB , 8115978240 bytes
250 heads, 62 sectors/track, 1022 cylinders, total 15851520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xc3072e18

Device Boot Start End Blocks Id System
/dev/sdc1 * 32 15847625 7923797 b W95 FAT32

Як видно з висновку команди sudo fdisk -l, У мене є 2 жорсткі диски (sda) 640 Гб і (sdb) 500 Гб, а також флешка (sdc) 8Гб, з якої я власне і завантажувався. Я знаю, що моя основна система з Убунтом 12.04 знаходиться на диску sda, а розділ з операційною системою відповідно називається sda1.

Тепер коли ми знаємо розділ, який потрібно сканувати, можна приступити до його перевірки. У Терміналі:

sudo fsck -y -f -c /dev/sda1

якщо побачите помилку, то, швидше за все, потрібно відмонтувати цей розділ:

sudo umount /dev/sda1

Ключі та параметри команди fsck:

y- завжди відповідати yes на всі питання (є альтернатива: ключ p - починає перевірку в повністю автоматичному режимі);

f- примусова перевірка файлової системи (навіть якщо файлова система позначена як повністю працездатна)

c- шукає биті блоки (bad blocks), а потім відзначає їх відповідним чином

/dev/sda1- пристрій чи розділ, які потрібно перевірити. Хоча команда може мати інший вигляд. Наприклад:

sudo fsck -p /dev/sda1

У цьому випадку додано лише ключ -p. Ви просто прочитайте про всі ключі команди fsck і додавайте саме потрібні вам ключі. Щоб дізнатися про всі можливості програми, введіть у Терміналі:

man fsck

Ось що видав Термінал після перевірки:

ubuntu@ubuntu:~$ sudo fsck -y -f -c /dev/sda1
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
Checking for bad blocks (read-only test): 0.00% done, 0:00 elapsed. (0/0/0 errdone
/dev/sda1: Updating bad block inode.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

Несправний жорсткий диск - одне з найнеприємніших явищ у роботі комп'ютера. Мало того, що ми легко можемо втратити дуже багато важливої ​​інформації та файлів, так і заміна 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, так і на інших системах є досить важливою операцією, яку варто проводити хоча б раз на рік.

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

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

Важливо!Запуск та виконання 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).

Будь-який комп'ютер — складний пристрій, який складається з багатьох компонентів і ніхто не застрахований від збоїв будь-якого з них. У цій статті ми розглянемо як своєчасно розпізнати одну з серйозних проблем з пристроями зберігання інформації, будь то жорсткий диск або flash-накопичувач, як перевіряється диск на биті сектори linux.

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

Сектор може стати битим з різних причин:

  • Заводський брак
  • Вимкнення живлення комп'ютера під час запису інформації.
  • Фізичний знос накопичувача.

Невелика кількість битих секторів знаходиться практично на будь-якому накопичувачі. Але варто звернути увагу, якщо їхня кількість з часом збільшується. Це може говорити про швидку фізичну смерть накопичувача і Вам час задуматися про його заміну.

Давайте розглянемо, за допомогою яких утиліт у Linux ми можемо перевірити диск на биті сектори linux.

Перевірка накопичувача на биті сектори засобами badblocks.

Badblocks – стандартна утиліта Linuх для перевірки на биті сектори. Вона встановлюється за замовчуванням практично у будь-який дистрибутив і за її допомогою можна перевірити як жорсткий диск, так і зовнішній накопичувач.

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

Природно, що виконувати команди потрібно з правами суперкористувача:

Параметром -lми говоримо утиліті fdisk, що нам потрібно показати список розділів та вийти.

Тепер, коли ми знаємо, які розділи ми маємо, ми можемо перевірити їх на биті сектори. Для цього ми будемо використовувати утиліту badblocks наступним чином:

$ sudo badblocks -v /dev/sda1 > badsectors.txt

Для перевірки ми вказуємо такі параметри:

  • -v- Докладний висновок інформації про результати перевірки.
  • /dev/sda1- Розділ, який ми хочемо перевірити на биті сектори.
  • > badsectors.txt- Виводимо результат виконання команди у файл badsectors.txt.

Якщо ж у результаті було знайдено биті сектори, то нам треба дати вказівку операційній системіне записувати у них інформацію у майбутньому. Для цього нам знадобляться утиліти Linux для роботи з файловими системами:

  • e2fsck.Якщо ми будемо виправляти розділ з файловими системами Linux (ext2,ext3,ext4).
  • fsck.Якщо ми виправлятимемо файлову систему, відмінну від ext.

Вводимо такі команди:

$ sudo e2fsck -l badsectors.txt /dev/sda1

Або якщо у нас файлова система не ext:

$ sudo fsck -l badsectors.txt /dev/sda1

Параметром -lми говоримо утиліті використовувати список битих секторів із файлу badsectors.txt, який ми отримали раніше під час перевірки за допомогою утиліти badblocks.

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

Тепер давайте розглянемо сучасніший і надійніший спосіб перевірити диск на биті сектори linux. Сучасні накопичувачі ATA/SATA, SCSI/SAS, SSD мають вбудовану систему самоконтролю S.M.A.R.T (Self-Monitoring, Analysis and Reporting Technology, Технологія самоконтролю, аналізу та звітності), яка проводить моніторинг параметрів накопичувача та допоможе визначити погіршення параметрів роботи накопичувача на ранніх стадіях. Для роботи з S.M.A.R.T в Linux є утиліта smartmontools.

Давайте спочатку її встановимо. Якщо ваш дистрибутив базується на Debian\Ubuntu, введіть:

$ sudo apt install smartmontools

Якщо ж у Вас дистрибутив на основі RHEL CentOS, то вводіть:

$ sudo yum install smartmontools


Top