Позначте погані сектори на жорсткому диску без форматування


22

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

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

Чи є спосіб відзначити ці погані блоки без форматування hdd?

Відповіді:


29

Я припускаю, що ви говорите про фізичні погані блоки на диску, а не про пошкоджені файлові системи.

Для перевірки фізичного стану вашого диска найкраще встановити smartmontools

sudo apt-get install smartmontools

Це працює тому, що всі сучасні диски реєструють стан свого здоров'я за допомогою системи під назвою SMART

Використовуйте smartctrlкоманду, щоб прочитати цей стан. Наприклад, для читання всіх атрибутів першого дзвінка на диску

sudo smartctl --all /dev/sda

Слідкуйте за рядком, який розповідає про загальний стан хітів. Як тільки це вказує на помилку, велика ймовірність, що диск незабаром вийде з ладу.

SMART overall-health self-assessment test result: PASSED

Інші рядки, які ви хочете перевірити, - це очікувані підрахунки секторів та перерозподілені сектори.

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2

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

Ви навіть можете запустити самовипробування диска при підтримці вашої моделі

sudo smartctl -t long /dev/sda

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

sudo badblocks -svvn -c 262144 /dev/sda

Якщо ви повністю обробили ваш диск таким чином, дисковий контролер повинен був замінити всі погані блоки робочими, і перерозподілений кількість буде збільшено в журналі SMART.


2
який вплив -cчи кількість блоків, які перевіряються одночасно, або іншими словами, чому ви маєте таке велике значення порівняно з типовим 64?
greole

4
розмір блоку за замовчуванням 1024 байтів, помножений на типовий 64 блоки одночасно, призводить до обробці лише 64 к для кожного запиту. З сучасними дисками, які мають пропускну здатність до 150 Мбіт / с, це дає більше витрат, ніж мені комфортно. Хочу дати можливість накопичувачу обробити дані найефективнішим чином, не чекаючи даних на шині.
user228505

Каже: / dev / sda, очевидно, використовується системою; запускати недобрі блоки не безпечно!
Дімс

1
@Dims Це говорить вам не запускати це на активно встановленому диску. Спочатку відключіть диск. У вашому випадку це може бути ваш системний диск. Тому спочатку завантажтеся в рятувальну систему.
користувач228505

2
@Dims Є опція -force, якщо ви хочете її запустити будь-коли. тобто sudo badblocks -svvn -c 262144 / dev / sda -force
ADR
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.