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