Как запустить чекдиск?


84

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

Какой инструмент является лучшим эквивалентом инструмента проверки ошибок Windows?


@PabloBianchi: Этот вопрос имеет точно такую ​​же сферу. Я помечаю их для мода, чтобы объединить их.
Дэвид Фёрстер

Ответы:


101

Диски

Чтобы проверить наличие поврежденных секторов, проверьте данные SMART, вероятно, наиболее доступные из них, запустив утилиту Disks ( Palimpsest ). Даже если вы не видите там плохих блоков, запустите самопроверку, чтобы быть уверенным.

Программа в gnome-disk-utilityкомплекте. Бегатьgksudo gnome-disks

СМАРТ от Палимпсест

Или в версии Ubuntu 16.04 (3.18):

СМАРТ с Дисков

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руководства:

Важное примечание: если выходные данные badblocks будут передаваться в программы e2fsck или mke2fs, важно, чтобы размер блока был задан правильно, так как генерируемые номера блоков очень зависят от размера блока, используемого файловой системой , По этой причине настоятельно рекомендуется, чтобы пользователи не запускали badblocks напрямую, а использовали опцию -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»
Jon

1
Поместите информацию, чтобы перечислить все диски, используйте sudo fdisk -l
Kangarooo

2
теперь это называется гном-дисками
эндолит

74

В этом ответе я буду предполагать, что накопитель на пути отображается как блочное устройство /dev/sdc. Чтобы найти путь к диску в нашей текущей настройке, используйте:

  • Диски Gnome Установить Gnome Диски (ранее Gnome Disk Utility, aka palimpsest), если доступен графический интерфейс, или
  • на терминальном взгляд на выходе 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 или проинструктированы о проведении самопроверки разной тщательности. Как правило, это лучший вариант, но обычно доступен только на (не древних) жестких дисках и твердотельных накопителях. Большинство съемных флэш-носителей не поддерживают его.

Дополнительные ресурсы и инструкции:

Проверка только для чтения

  • обнаруживает только некоторые ошибки флэш-медиа
  • довольно надежно для жестких дисков
  • медленный
  • безопасный
  • работает на носителях только для чтения (например, 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: обновление неверного блочного индекса. У меня нет информации о том, сколько плохих узлов и какую долю файловой системы они представляют.
Гийом Котэ

sudo dumpe2fs -b /dev/sda9, Но я думаю, что лучше, если диск заботится о неисправных секторах, а не о файловой системе (SMART, badblocks и т. Д., См. Мой пост).
организуем

20

badblocks

Вы можете проверить наличие бадблоков, выполнив команду

  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

я могу использовать badblocks, чтобы проверить мой раздел Windows? Или это как-то может повредить?
Личное

1
@Private Если у вас есть новый вопрос, воспользуйтесь ссылкой «Задать вопрос» вверху.
Джон

Команда fsckне работает с btrfsфайловыми системами.
Луис де Соуза

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 .
Нобар

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 и кажется, что id не помечает.
Пабло А

4

Вы можете тестировать и читать весь диск, показывая индикатор прогресса:

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

Некоторые проблемы с диском проявляются в виде сообщений об ошибках ввода-вывода. Это немного лучше, чем ddиз-за индикатора прогресса и потому что интерфейс командной строки немного более стандартный и менее подверженный опечаткам . Обратите внимание, что pvэто в основном и улучшенная версия cat. Может быть не установлен по умолчанию, но может быть установлен с sudo apt-get install pv.

Аналогичный подход заключается в чтении диска с помощью одного из нескольких доступных инструментов, которые специально осведомлены об ошибках дискового ввода-вывода и имеют функцию «изо всех сил пытаться спасти данные». Ищите ddrescueв менеджере пакетов.


Это не обнаружит проблемы, которые появляются только во время доступа для записи, и не сообщит об уязвимой области носителя, которую нужно будет исправить или обойти проблему. dd count=1также довольно быстро, если носитель данных не поврежден (или не поддерживается).
Дэвид Фёрстер

Смотрите также:ddrescueview
Нобар

Начиная с GNU Coreutils 8.24+ ddесть индикатор прогресса с status=progress.
Пабло А

1

Если у вас есть раздел, который вы не можете потерять данные, выполните следующие действия

  1. Определите, какой раздел вы хотите проверить на плохой сектор, используя

$fdisk -l commnd

Предположим, что проверяемый раздел называется / dev / sdPTC (проверяемый раздел), и у вас есть другой раздел для хранения результатов, смонтированных в папке / scan / resultPath /

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-disksCREATE новый раздел и выберите «медленный» вариант, который проверит данное пространство на наличие ошибок

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


Имеет ли значение какая версия Ubuntu? Разве bionic beaverобрабатывает проверки диска по-другому?
Габриэль Ярмарка

Я не пробовал этот процесс на этой версии.
Маурисио Грасия Гутьеррес
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.