Способи оплати Abuse

Як у Linux перевірити диск на биті сектори

20.03.2021, 18:37

Найважливішою складовою комп'ютера є жорсткий диск. Саме на ньому зберігаються файли операційної системи та інша важлива інформація. Одиниця зберігання на жорсткому диску - сектор або блок. Саме в нього записується певний обсяг даних, зазвичай це 512 або 1024 байт. З часом на диску з'являються биті сектори, які перестають працювати, але файлова система продовжує намагатися записати в них інформацію. Записати інформацію в такі сектори вкрай складно, тому користувач може їх втратити. Причому цей недолік властивий жорстким дискам HDD, а твердотільні накопичувачі SSD позбавлені цих недоліків. У них є спеціальний контролер, який переміщує дані з битих секторів у робочі. У цій статті розповімо про те, як перевірити диск на биті сектори в Linux.

Перевіряємо диск на биті сектори

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

$ sudo fdisk -l /dev/sda1

Проверка диска на битые секторы

Користуючись графічним інтерфейсом, можна скористатися Gparted - спеціальна утиліта. Користувачеві достатньо вибрати потрібний диск у випадаючому списку.

Проверка диска на битые секторы

У конкретному прикладі розглянемо, як перевірити розділ /dev/sda2 з файловою системою XFS. Для цього використовується команда badblocks. Синтаксис у неї досить простий:

$ sudo badblocks -vn /dev/sda2 -o ~/bad_sectors.txt 

Вам можуть знадобитися такі опції програми:

  • -e - дає можливість встановити кількість битих блоків, після досягнення якої далі продовжувати тест не треба;
  • -f - за замовчуванням утиліта пропускає тест за допомогою читання/запису, якщо файлова система змонтована, щоб її не пошкодити, ця опція дає змогу все ж таки виконувати ці тести навіть для змонтованих систем;
  • -o - записати виявлені биті блоки в зазначений файл;
  • -p - кількість перевірок, за замовчуванням тільки одна;
  • -s - показує прогрес сканування розділу;
  • -v - максимально докладний режим;
  • -i - дозволяє передати список раніше знайдених битих секторів, щоб не перевіряти їх знову;
  • -n - використовувати безпечний тест читання і запису, під час цього тесту дані не стираються;
  • -w - дозволяє виконати тест за допомогою запису, на кожен блок записується певна послідовність байт, що стирає дані, які зберігалися там раніше.

З метою проведення звичайної перевірки використовуйте таку команду:

$ sudo badblocks -v /dev/sda2 -o ~/bad_sectors.txt

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

$ sudo badblocks -vn /dev/sda2 -o ~/bad_sectors.txt

Після закінчення перевірки системі необхідно повідомити інформацію про биті сектори, щоб вона туди не зверталася. Для цього можна використовувати утиліту fsck і опцію -l:

$ fsck -l ~/bad_sectors.txt /dev/sda1

У разі використання файлової система сімейства Ext для пошуку битих блоків і автоматичної реєстрації їх у файловій системі використовуйте команду e2fsck:

$ sudo e2fsck -cfpv /dev/sda1

За допомогою параметра легко шукати биті блоки і додавати їх до списку, -f - перевіряє файлову систему, -p - відновлює пошкоджені дані, а -v виводить все докладно.

Тепер ви знаєте, як перевіряти жорсткий диск і знаходити биті сектори.