Як запустити контрольний диск?


84

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

Який інструмент найкращий еквівалент інструменту перевірки помилок Windows?


@PabloBianchi: Це питання має точно таку ж сферу застосування. Я позначаю їх на мод, щоб об'єднати їх.
Девід Фоерстер

Відповіді:


101

Диски

Щоб перевірити наявність поганих секторів, перевірте дані SMART, можливо, найкраще доступні, запустивши утиліту Disks ( Palimpsest ). Навіть якщо ви там не бачите жодних поганих блоків, переконайтеся в самотесті.

Програма входить у gnome-disk-utilityпакет. Біжиgksudo gnome-disks

SMART від Palimpsest

Або у версії Ubuntu 16.04 (3.18):

SMART з дисків

Badblocks

Ви також можете використовувати badblocks

sudo badblocks -sv /dev/sda

просто перевірити або спочатку перевірити та виправити результат у тимчасовий файл:

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

перевірить весь диск і роздрукує всі погані блоки, що зустрічаються в / dev / sda .

З badblocksпосібника:

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

fsck

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


1
Насправді посібник Badblocks відмовляє його безпосередньо використовувати та спрямовує користувачів на e2fsck за допомогою параметра "-c" (для перевірки лише для читання) або "-cc" (для перевірки запису на читання).
mrówa

2
як примітка: 13.04 ви запускаєте palimpsest, просто запускаючи "диски" з меню ubuntu, однак ... я не бачу опції для запуску самотестування (можливо, тому що у мене є лише один диск, і це той, що працює Ubuntu ...)
rogerdpack

2
@ Mrówa керівництво говорить тільки зробити це , якщо «вихід badblocks буде подаватися в програмах E2fsck або mke2fs»
Джон

1
Покладіть інформацію, що для переліку всіх дисків використовуйте sudo fdisk -l
Kangarooo

2
тепер це називається gnome-disks
endolith

74

Протягом цієї відповіді я припускаю, що накопичувальний накопичувач з'являється як блок пристрою на шляху /dev/sdc. Щоб знайти шлях накопичувача в поточній установці, використовуйте:

  • Диски Gnome Встановіть диски Gnome (раніше утиліта Gnome Disk Utility, ака palimpsest), якщо GUI доступний, або
  • на термінальному погляд на виході lsblkі ls -l /dev/disk/by-idі спробувати знайти потрібний пристрій за розміром, секціонування, виробника і назву моделі.

Базова перевірка

  • виявляє лише повністю невідповідальні засоби масової інформації
  • майже миттєво (якщо тільки середовище не розкручується або не порушується)
  • безпечний
  • працює на носіях лише для читання (наприклад, CD, DVD, BluRay)

Іноді носій просто відмовляється взагалі працювати. Він все ще з'являється як блоковий пристрій до ядра та в диспетчері дисків, але його перший сектор, що містить таблицю розділів, не читабельний. Це легко підтвердити за допомогою:

sudo dd if=/dev/sdc of=/dev/null count=1

Якщо ця команда призводить до повідомлення про "помилку введення / виводу", наш привід порушений або іншим чином не вдається взаємодіяти з ядром Linux, як очікувалося. У колишньому випадку, за допомогою трохи удачі, фахівець із відновлення даних з належно обладнаною лабораторією може врятувати його вміст. В останньому випадку варто спробувати іншу операційну систему. (Я натрапив на USB-накопичувачі, які працюють у Windows без спеціальних драйверів, але не в Linux або OS X.)

SMART самотест

  • регульована ретельність
  • миттєве до повільного або повільніше (залежить від ретельності тесту)
  • безпечний
  • попереджає про ймовірний збій найближчим часом

Пристрої, що підтримують його, можна запитати про стан свого здоров’я через SMART або доручити виконувати самотести самовипробування різної ретельності. Це, як правило, найкращий варіант, але, як правило, доступний лише на (не старовинному) жорсткому диску та твердотільних накопичувачах. Більшість знімних флеш-носіїв не підтримують його.

Подальші ресурси та інструкції:

Перевірка лише для читання

  • виявляє лише деякі помилки флеш-медіа
  • досить надійний для жорстких дисків
  • повільний
  • безпечний
  • працює на носіях лише для читання (наприклад, CD, DVD, BluRay)

Щоб перевірити цілісність читання всього пристрою, не записуючи на нього, ми можемо використовувати badblocks(8)так:

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

Ця операція може зайняти багато часу, особливо якщо накопичувач накопичувач пошкоджений. Якщо кількість помилок зросте вище нуля, ми будемо знати, що це поганий блок. Ми можемо спокійно перервати роботу в будь-який момент (навіть насильно, як під час відключення електроенергії), якщо нас не цікавить точна кількість (а може бути, місце) поганих блоків. Можливо, перервавшись автоматично при помилці за допомогою параметра -e 1.

Примітка для розширеного використання: якщо ми хочемо повторно використовувати висновок для e2fsck, нам потрібно встановити розмір блоку ( -b) у розмірі файлової системи, що міститься. Ми також можемо налаштувати кількість даних ( -cу блоках), протестованих одразу, щоб поліпшити пропускну здатність; 16 Мбіт має бути добре для більшості пристроїв.

Неруйнівна перевірка читання-запису

  • дуже ретельно
  • найповільніший
  • цілком безпечно (забороняючи відключення живлення або паніку ядра)

Іноді - особливо при флеш-носіях - помилка виникає лише при спробі запису. (Це не буде надійно виявити (спалах) медіа, які рекламують більший розмір, ніж вони є насправді; замість цього використовуйте Fight Flash Fraud .)

  • НІКОЛИ не використовуйте це на диску з встановленими файловими системами ! badblocksвідмовляється діяти на них все одно, якщо тільки ви не примусите його.

  • Не переривайте цю операцію насильно ! Ctrl+ C(SIGINT / SIGTERM) і чекати витонченого передчасного припинення нормально, але killall -9 badblocks(SIGKILL) - це не так. Після примусового припинення badblocksне вдасться відновити вихідний вміст поточно перевіреного діапазону блоків, і він залишить його перезаписаним непотрібними даними та, можливо, пошкодить файлову систему.

Щоб використовувати неруйнівні чеки читання-запису, додайте -nпараметр до вищевказаної badblocksкоманди.

Руйнівна перевірка читання-запису

  • дуже ретельно
  • повільніше
  • ВИРАЖУЄ ВСІ ДАНІ В ДРУЗІ

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

Для використання руйнівних чеків читання-запису додайте -wпараметр до вищевказаної badblocksкоманди.


43

fsck - перевірка та відновлення файлової системи Linux. Викликайте це за допомогою

fsck /dev/sda1

де / dev / sda1 - диск, який ви хочете перевірити. Докладнішу інформацію див. У розділі "man fsck".

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

Диск потрібно відключити під час перевірки, тому для перевірки кореневого розділу потрібно створити файл «forcefsck» у корені розділу та перезавантажити. Пристрій перевірятиметься при наступному завантаженні:

sudo touch /forcefsck
sudo reboot

Крім того, ви можете завантажитися з Live CD і запустити чек звідти.


Дякую, машина працює без монітора, чи є спосіб отримати доступ до висновку перевірки після перезавантаження?
Гійом Коте

Я створив файл і перезавантажився, але він був дійсно швидким і в boot.log немає нічого нового.
Гійом Коте

fsck просто зробити дуже швидку перевірку, я спробував варіант -c перевірити наявність поганого блоку.
Гійом Коте

fsck -c щойно сказав: / dev / sda9: Оновлення поганого блоку inode. Я не маю інформації про те, скільки поганих вузлів і яку частку файлової системи вони представляють.
Гійом Коте

sudo dumpe2fs -b /dev/sda9. Але я думаю, що краще, якщо диск піклується про несправні сектори, а не для файлової системи (SMART, погані блоки тощо), дивіться мій пост).
організуйте

20

погані блоки

Ви можете перевірити наявність несправних блоків, що виконують команду

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-resultдля неруйнівного тесту читання-запису. Це створить файл, викликаний bad-blocks-resultіз пошкодженими секторами.
    • -n Використовуйте неруйнівний режим читання-запису. За замовчуванням робиться лише неруйнівний тест лише для читання.

    • -s Показати хід сканування, виписавши приблизний відсоток завершення поточного неполадки, що проходить через диск.

    • -v Докладний режим.

  2. Потім ви можете запустити, sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]щоб повідомити файловій системі, де знаходяться погані сектори, і перемістити дані, якщо це можливо.

Ви можете прочитати більше про це тут .


1
Щоб продовжити пізніше, якщо ви забули експортувати поганий сектор у текстовий файл (як я), ця відповідь допоможе вам: superuser.com/a/693000/218025
chelder

чи можу я використовувати неполадки для перевірки розділу Windows? Або це якось може пошкодити це?
Приват

1
@Private Якщо у вас є нове запитання, будь ласка, скористайтеся посиланням "Задати питання" вгорі.
Іван

fsckКоманда ні з btrfsфайловими системами.
Luís de Sousa

20

smartctl

IMO smartctl - кращий інструмент. Ймовірно, спочатку доведеться встановити його

sudo apt-get install smartmontools 

Тоді

sudo smartctl -a /dev/sda | less

друкувати дані про стан здоров'я, атрибути та доступні результати тестів. Щоб менше вийти, введіть q. Як варіант

sudo smartctl -H /dev/sda

просто надрукувати дані про стан здоров'я.

Щоб розпочати новий короткий (кілька хвилин) або довгий (до багатьох годин) самотест у фоновому режимі:

sudo smartctl -t [short|long]

GSsmartControl ( домашня сторінка ) та Gnome Disks - це графічні передні частини, якщо вам більше подобається.

Дивитися також


5
Прекрасне рішення, якщо пристрій підтримує SMART. Багато (дешеві) знімні флешки та дуже старі жорсткі диски цього не роблять.
Девід Фоерстер

Мене спочатку натупили, коли мені smartctlповідомили: "Невідомий USB-міст", "Вкажіть тип пристрою з опцією -d". Я знайшов потрібні мені дані на: smartmontools.org/wiki/Supported_USB-Devices .
nobar

10

F3 (Fight Flash Fraud) - ще один варіант, який повинен додатково виявити підроблені флешки (флешки, фактична потужність яких є часткою рекламованої ємності):

  1. Встановіть F3

    sudo apt install f3
    
  2. Вставте свій привід

  3. Запишіть дані тесту у вільний простір на диску (перевірте, де встановлений ваш привід lsblk)

    f3write /media/$USER/D871-DD7C/
    
  4. Прочитайте дані тесту

    f3read /media/$USER/D871-DD7C/
    

Довідка:

Badblocks працює добре, але він не розроблений для виявлення підроблених флеш-дисків і може не повідомляти про них помилок .


badblocksз -wабо з fsckпозначенням секторів як поганих / пошкоджених, тому вони не використовуються. f3 може повернути щось на кшталт Corrupted: 16.01 MB (32784 sectors), але чи позначає це як поганий сектор? Або нам ще потрібні погані блоки для цього? Я намагаюся зdumpe2fs -b і, здається , ідентифікатор не зазначає.
Пабло А

4

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

time sudo pv /dev/sdc >/dev/null

Деякі проблеми з диском виявляться як повідомлення про помилки вводу / виводу. Це трохи приємніше, ніж ddзавдяки індикатору прогресу і тому, що інтерфейс командного рядка є трохи більш стандартним і трохи менш схильним до друку . Зауважте, що pvце в основному і вдосконалена версія cat. Він може бути встановлений за замовчуванням, але його можна встановити за допомогою sudo apt-get install pv.

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


Це не буде виявляти проблеми, які з’являються лише під час доступу до запису, і не повідомлятиме про постраждалу область носія пам’яті, яку потрібно було б виправити чи вирішити проблему. dd count=1також досить швидко, якщо накопичувач не повністю зламаний (або не підтримується).
Девід Фоерстер

Дивіться також:ddrescueview
nobar

Оскільки GNU Coreutils 8.24+ ddмає індикатор прогресу з status=progress.
Пабло А

1

Якщо у вас є розділ, який НЕ МОЖЕ ВИБУТИ ДАНІ, виконайте ці дії

  1. Визначте, який розділ ви хочете перевірити на поганий сектор за допомогою

$fdisk -l commnd

Давайте припустимо, що розділ для перевірки називається / dev / sdPTC (розділ для перевірки) і що у вас є інший розділ для зберігання результатів, встановлених у / scan / resultPath / folder

2.Тоді ви можете запустити цю команду

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

який визначить, які є погані блоки даного пристрою та збереже їх у файлі під назвою badsectors.txt

  1. Тепер ви можете використовувати fsckкоманду, щоб сказати Ubuntu не використовувати погані сектори, згадані у файлі badsectors.txt.

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

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


Якщо у вас є повний розділ, який ви хочете перевірити на наявність неправильних фізичних секторів, і ви МОЖЕТЕ ВІДБУДАТИ ВСІ ДАНІ на цьому розділі або ВИПУСКОВО виконайте ці кроки

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. Перевірте та перевірте, чи немає важливих даних про цей розділ

  4. Використовуючи gnome-disksDELETE / REMOVE розділ вручну, використовуючи знак "-"

  5. Використовуючи gnome-disksСТВОРИТИ новий розділ та виберіть параметр "повільний", який перевірятиме заданий простір на помилки

введіть тут опис зображення


Чи має значення, для якої версії Ubuntu це? Чи по- bionic beaverрізному обробляє перевірки диска?
Габріель Ярмарок

Я не пробував цей процес у цій версії.
Маурісіо Грація Гутьеррес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.