@PabloBianchi: Этот вопрос имеет точно такую же сферу. Я помечаю их для мода, чтобы объединить их.
Дэвид Фёрстер
Ответы:
101
Диски
Чтобы проверить наличие поврежденных секторов, проверьте данные SMART, вероятно, наиболее доступные из них, запустив утилиту Disks ( Palimpsest ). Даже если вы не видите там плохих блоков, запустите самопроверку, чтобы быть уверенным.
Программа в gnome-disk-utilityкомплекте. Бегатьgksudo gnome-disks
Или в версии Ubuntu 16.04 (3.18):
Badblocks
Вы также можете использовать badblocks
sudo badblocks -sv /dev/sda
чтобы просто проверить или проверить и исправить сначала запишите результат во временный файл:
проверит весь диск и распечатает все поврежденные блоки, встречающиеся в / dev / sda .
Из badblocksруководства:
Важное примечание: если выходные данные badblocks будут передаваться в программы e2fsck или mke2fs, важно, чтобы размер блока был задан правильно, так как генерируемые номера блоков очень зависят от размера блока, используемого файловой системой , По этой причине настоятельно рекомендуется, чтобы пользователи не запускали badblocks напрямую, а использовали опцию -c программ e2fsck и mke2fs.
fsck
fsckСамо по себе это не поможет вам найти плохие сектора, еще хуже, если есть много плохих секторов, это может нанести еще больший ущерб вашим данным. Используйте его только тогда, когда диск здоров.
На самом деле руководство 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 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команду.
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
Вы можете проверить наличие бадблоков, выполнив команду
-n Использовать неразрушающий режим чтения-записи. По умолчанию выполняется только неразрушающий тест только для чтения.
-s Показать прогресс сканирования, записав приблизительное процентное завершение текущего прохода бадблоков по диску.
-v подробный режим.
Затем вы можете запустить, sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]чтобы сообщить файловой системе, где находятся поврежденные сектора, и по возможности удалить данные из них.
Чтобы продолжить с бадблоками позже или если вы забыли экспортировать поврежденный сектор в текстовый файл (как я), вам поможет этот ответ: superuser.com/a/693000/218025
chelder
я могу использовать badblocks, чтобы проверить мой раздел Windows? Или это как-то может повредить?
Личное
1
@Private Если у вас есть новый вопрос, воспользуйтесь ссылкой «Задать вопрос» вверху.
Джон
Команда fsckне работает с btrfsфайловыми системами.
Отличное решение, если устройство поддерживает SMART. Многие (дешевые) съемные флешки и очень старые жесткие диски этого не делают.
Дэвид Фёрстер,
Первоначально я был озадачен, когда smartctlсообщил: «Неизвестный мост USB», «Пожалуйста, укажите тип устройства с опцией -d». Я нашел нужные данные по адресу: smartmontools.org/wiki/Supported_USB-Devices .
Нобар
10
F3 (Fight Flash Fraud) - это еще одна опция, которая должна дополнительно обнаруживать поддельные флэш-накопители (флэш-накопители, фактическая емкость которых составляет часть объявленной емкости):
Установить F3
sudo apt install f3
Вставьте свой диск
Запишите тестовые данные в свободное место на диске (проверьте, где установлен ваш диск lsblk)
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также довольно быстро, если носитель данных не поврежден (или не поддерживается).
Если у вас есть раздел, который вы не можете потерять данные, выполните следующие действия
Определите, какой раздел вы хотите проверить на плохой сектор, используя
$fdisk -l commnd
Предположим, что проверяемый раздел называется / dev / sdPTC (проверяемый раздел), и у вас есть другой раздел для хранения результатов, смонтированных в папке / scan / resultPath /
Таким образом, срок службы жесткого диска немного увеличивается, пока вы не получите новый для замены.
Если у вас есть полный раздел, который вы хотите проверить на наличие поврежденных физических секторов, и вы МОЖЕТЕ ПОЛУЧИТЬ ПОЛНУТЬ ВСЕ ДАННЫЕ в этом разделе или если у вас ПУСТОЙ, выполните следующие действия.
$sudo apt-get install gnome-disk-utility
$sudo gnome-disks
Проверьте и дважды проверьте, что на этом разделе нет важных данных
Используя gnome-disksDELETE / REMOVE раздел вручную, используя знак "-"
Используя gnome-disksCREATE новый раздел и выберите «медленный» вариант, который проверит данное пространство на наличие ошибок
Ответы:
Диски
Чтобы проверить наличие поврежденных секторов, проверьте данные SMART, вероятно, наиболее доступные из них, запустив утилиту Disks ( Palimpsest ). Даже если вы не видите там плохих блоков, запустите самопроверку, чтобы быть уверенным.
Программа в
gnome-disk-utility
комплекте. Бегатьgksudo gnome-disks
Или в версии Ubuntu 16.04 (3.18):
Badblocks
Вы также можете использовать
badblocks
чтобы просто проверить или проверить и исправить сначала запишите результат во временный файл:
проверит весь диск и распечатает все поврежденные блоки, встречающиеся в / dev / sda .
Из
badblocks
руководства:fsck
fsck
Само по себе это не поможет вам найти плохие сектора, еще хуже, если есть много плохих секторов, это может нанести еще больший ущерб вашим данным. Используйте его только тогда, когда диск здоров.источник
В этом ответе я буду предполагать, что накопитель на пути отображается как блочное устройство
/dev/sdc
. Чтобы найти путь к диску в нашей текущей настройке, используйте:palimpsest
), если доступен графический интерфейс, илиlsblk
иls -l /dev/disk/by-id
и попытаться найти нужное устройство по размеру, секционирования, производителя и название модели.Базовая проверка
Иногда носитель данных просто отказывается работать вообще. Он по-прежнему отображается в виде блочного устройства в ядре и в диспетчере дисков, но его первый сектор, содержащий таблицу разделов, недоступен для чтения. Это можно легко проверить с помощью:
Если эта команда приводит к сообщению об «ошибке ввода / вывода», наш диск не работает или не может взаимодействовать с ядром Linux, как ожидалось. В первом случае, если повезет, специалист по восстановлению данных с соответствующим оснащением лаборатории сможет спасти его содержимое. В последнем случае стоит попробовать другую операционную систему. (Я сталкивался с USB-накопителями, которые работают в Windows без специальных драйверов, но не в Linux или OS X.)
УМНЫЙ самопроверка
Устройства, которые его поддерживают, могут быть запрошены об их здоровье через SMART или проинструктированы о проведении самопроверки разной тщательности. Как правило, это лучший вариант, но обычно доступен только на (не древних) жестких дисках и твердотельных накопителях. Большинство съемных флэш-носителей не поддерживают его.
Дополнительные ресурсы и инструкции:
Проверка только для чтения
Чтобы проверить целостность чтения всего устройства без записи на него, мы можем использовать
badblocks(8)
так:Эта операция может занять много времени, особенно если диск действительно поврежден. Если количество ошибок превысит ноль, мы узнаем, что есть плохой блок. Мы можем безопасно прервать операцию в любой момент (даже принудительно, например, при сбое питания), если нас не интересует точное количество (и, возможно, местоположение) поврежденных блоков. Возможно отключить автоматически при ошибке с опцией
-e 1
.Примечание для расширенного использования: если мы хотим повторно использовать вывод для
e2fsck
, нам нужно установить размер блока (-b
) равным размеру входящей файловой системы. Мы также можем настроить количество-c
тестируемых данных ( в блоках) за один раз, чтобы улучшить пропускную способность; 16 МиБ должно быть в порядке для большинства устройств.Неразрушающий контроль чтения-записи
Иногда - особенно с флэш-носителями - ошибка возникает только при попытке записи. (Это не обеспечит надежное обнаружение (флэш) носителей, которые рекламируют больший размер, чем на самом деле; вместо этого используйте Fight Flash Fraud .)
НИКОГДА не используйте это на диске со смонтированными файловыми системами !
badblocks
в любом случае отказывается работать с ними, если вы не заставите его.Не прерывайте эту операцию принудительно ! Ctrl+ C(SIGINT / SIGTERM) и ожидание изящного преждевременного завершения - это нормально, но
killall -9 badblocks
(SIGKILL) - нет. После принудительного завершенияbadblocks
не может восстановить исходное содержимое текущего протестированного диапазона блоков и оставит его перезаписанным ненужными данными и, возможно, повредит файловую систему.Чтобы использовать неразрушающие проверки чтения-записи, добавьте
-n
опцию к вышеуказаннойbadblocks
команде.Деструктивная проверка чтения-записи
Как и выше, но без восстановления предыдущего содержимого диска после выполнения теста записи, поэтому это немного быстрее. Поскольку данные все равно удаляются, принудительное завершение остается без (дополнительных) отрицательных последствий.
Чтобы использовать деструктивные проверки чтения-записи, добавьте
-w
опцию в приведенную вышеbadblocks
команду.источник
fsck - проверить и восстановить файловую систему Linux. Вызвать его, используя
где / dev / sda1 - диск, который вы хотите проверить. Смотрите man fsck для более подробной информации.
Также есть команда «badblocks», которая проверяет устройство, как вы уже догадались, на наличие плохих блоков.
При проверке необходимо отключить диск, поэтому для проверки корневого раздела необходимо создать файл 'forcefsck' в корневом каталоге раздела и перезагрузиться. Устройство будет проверено при следующей загрузке:
Кроме того, вы можете загрузиться с Live CD и запустить проверку оттуда.
источник
sudo dumpe2fs -b /dev/sda9
, Но я думаю, что лучше, если диск заботится о неисправных секторах, а не о файловой системе (SMART, badblocks и т. Д., См. Мой пост).badblocks
Вы можете проверить наличие бадблоков, выполнив команду
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
для неразрушающего теста чтения-записи. Это сгенерирует файлbad-blocks-result
с поврежденными секторами.sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
чтобы сообщить файловой системе, где находятся поврежденные сектора, и по возможности удалить данные из них.Вы можете найти больше чтения об этом здесь .
источник
fsck
не работает сbtrfs
файловыми системами.smartctl
IMO smartctl - лучший инструмент. Вы, вероятно, должны сначала установить его
затем
распечатать данные о состоянии диска, атрибуты и доступные результаты испытаний. Чтобы выйти меньше, введите
q
. альтернативнопросто распечатать данные о здоровье.
Чтобы начать новую короткую (несколько минут) или длинную (до многих часов) самопроверку в фоновом режиме:
GSsmartControl ( домашняя страница ) и Gnome Disks - графические интерфейсы, если вы предпочитаете.
Смотрите также
источник
smartctl
сообщил: «Неизвестный мост USB», «Пожалуйста, укажите тип устройства с опцией -d». Я нашел нужные данные по адресу: smartmontools.org/wiki/Supported_USB-Devices .F3 (Fight Flash Fraud) - это еще одна опция, которая должна дополнительно обнаруживать поддельные флэш-накопители (флэш-накопители, фактическая емкость которых составляет часть объявленной емкости):
Установить F3
Вставьте свой диск
Запишите тестовые данные в свободное место на диске (проверьте, где установлен ваш диск
lsblk
)Прочитайте данные теста
Ссылка:
Badblocks работает хорошо, но он не предназначен для обнаружения поддельных флешек и может не сообщать о каких-либо ошибках для них .
источник
badblocks
с-w
или сfsck
пометкой секторов как плохих / поврежденных, чтобы они не использовались. f3 может вернуть что-то вродеCorrupted: 16.01 MB (32784 sectors)
, но помечает ли это как плохие сектора? Или для этого нам все еще нужны бадблоки? Я пытаюсь с,dumpe2fs -b
и кажется, что id не помечает.Вы можете тестировать и читать весь диск, показывая индикатор прогресса:
Некоторые проблемы с диском проявляются в виде сообщений об ошибках ввода-вывода. Это немного лучше, чем
dd
из-за индикатора прогресса и потому что интерфейс командной строки немного более стандартный и менее подверженный опечаткам . Обратите внимание, чтоpv
это в основном и улучшенная версияcat
. Может быть не установлен по умолчанию, но может быть установлен сsudo apt-get install pv
.Аналогичный подход заключается в чтении диска с помощью одного из нескольких доступных инструментов, которые специально осведомлены об ошибках дискового ввода-вывода и имеют функцию «изо всех сил пытаться спасти данные». Ищите
ddrescue
в менеджере пакетов.источник
dd count=1
также довольно быстро, если носитель данных не поврежден (или не поддерживается).ddrescueview
dd
есть индикатор прогресса сstatus=progress
.Если у вас есть раздел, который вы не можете потерять данные, выполните следующие действия
$fdisk -l commnd
Предположим, что проверяемый раздел называется / dev / sdPTC (проверяемый раздел), и у вас есть другой раздел для хранения результатов, смонтированных в папке / scan / resultPath /
2. Затем вы можете запустить эту команду
$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt
который определит, что такое плохие блоки данного устройства, и сохранит их в файле badsectors.txt.
fsck
команду, чтобы сказать Ubuntu не использовать поврежденные сектора, упомянутые в файле badsectors.txt.$sudo fsck -l /scan_result/badsectors.txt /dev/sda
Таким образом, срок службы жесткого диска немного увеличивается, пока вы не получите новый для замены.
Если у вас есть полный раздел, который вы хотите проверить на наличие поврежденных физических секторов, и вы МОЖЕТЕ ПОЛУЧИТЬ ПОЛНУТЬ ВСЕ ДАННЫЕ в этом разделе или если у вас ПУСТОЙ, выполните следующие действия.
$sudo apt-get install gnome-disk-utility
$sudo gnome-disks
Проверьте и дважды проверьте, что на этом разделе нет важных данных
Используя
gnome-disks
DELETE / REMOVE раздел вручную, используя знак "-"Используя
gnome-disks
CREATE новый раздел и выберите «медленный» вариант, который проверит данное пространство на наличие ошибокисточник
bionic beaver
обрабатывает проверки диска по-другому?