Я подозреваю, что на диске может быть поврежден сектор. Я использовал файловую систему ext3.
Какой инструмент является лучшим эквивалентом инструмента проверки ошибок Windows?
Я подозреваю, что на диске может быть поврежден сектор. Я использовал файловую систему ext3.
Какой инструмент является лучшим эквивалентом инструмента проверки ошибок Windows?
Ответы:
Чтобы проверить наличие поврежденных секторов, проверьте данные SMART, вероятно, наиболее доступные из них, запустив утилиту Disks ( Palimpsest ). Даже если вы не видите там плохих блоков, запустите самопроверку, чтобы быть уверенным.
Программа в gnome-disk-utility
комплекте. Бегатьgksudo gnome-disks
Или в версии Ubuntu 16.04 (3.18):
Вы также можете использовать 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
Само по себе это не поможет вам найти плохие сектора, еще хуже, если есть много плохих секторов, это может нанести еще больший ущерб вашим данным. Используйте его только тогда, когда диск здоров.
В этом ответе я буду предполагать, что накопитель на пути отображается как блочное устройство /dev/sdc
. Чтобы найти путь к диску в нашей текущей настройке, используйте:
palimpsest
), если доступен графический интерфейс, илиlsblk
и ls -l /dev/disk/by-id
и попытаться найти нужное устройство по размеру, секционирования, производителя и название модели.Иногда носитель данных просто отказывается работать вообще. Он по-прежнему отображается в виде блочного устройства в ядре и в диспетчере дисков, но его первый сектор, содержащий таблицу разделов, недоступен для чтения. Это можно легко проверить с помощью:
sudo dd if=/dev/sdc of=/dev/null count=1
Если эта команда приводит к сообщению об «ошибке ввода / вывода», наш диск не работает или не может взаимодействовать с ядром Linux, как ожидалось. В первом случае, если повезет, специалист по восстановлению данных с соответствующим оснащением лаборатории сможет спасти его содержимое. В последнем случае стоит попробовать другую операционную систему. (Я сталкивался с USB-накопителями, которые работают в Windows без специальных драйверов, но не в Linux или OS X.)
Устройства, которые его поддерживают, могут быть запрошены об их здоровье через SMART или проинструктированы о проведении самопроверки разной тщательности. Как правило, это лучший вариант, но обычно доступен только на (не древних) жестких дисках и твердотельных накопителях. Большинство съемных флэш-носителей не поддерживают его.
Дополнительные ресурсы и инструкции:
Чтобы проверить целостность чтения всего устройства без записи на него, мы можем использовать 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 и запустить проверку оттуда.
sudo dumpe2fs -b /dev/sda9
, Но я думаю, что лучше, если диск заботится о неисправных секторах, а не о файловой системе (SMART, badblocks и т. Д., См. Мой пост).
Вы можете проверить наличие бадблоков, выполнив команду
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
для неразрушающего теста чтения-записи. Это сгенерирует файл bad-blocks-result
с поврежденными секторами.
-n Использовать неразрушающий режим чтения-записи. По умолчанию выполняется только неразрушающий тест только для чтения.
-s Показать прогресс сканирования, записав приблизительное процентное завершение текущего прохода бадблоков по диску.
-v подробный режим.
sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
чтобы сообщить файловой системе, где находятся поврежденные сектора, и по возможности удалить данные из них.Вы можете найти больше чтения об этом здесь .
fsck
не работает с btrfs
файловыми системами.
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 - графические интерфейсы, если вы предпочитаете.
smartctl
сообщил: «Неизвестный мост USB», «Пожалуйста, укажите тип устройства с опцией -d». Я нашел нужные данные по адресу: smartmontools.org/wiki/Supported_USB-Devices .
F3 (Fight Flash Fraud) - это еще одна опция, которая должна дополнительно обнаруживать поддельные флэш-накопители (флэш-накопители, фактическая емкость которых составляет часть объявленной емкости):
Установить F3
sudo apt install f3
Вставьте свой диск
Запишите тестовые данные в свободное место на диске (проверьте, где установлен ваш диск lsblk
)
f3write /media/$USER/D871-DD7C/
Прочитайте данные теста
f3read /media/$USER/D871-DD7C/
Ссылка:
Badblocks работает хорошо, но он не предназначен для обнаружения поддельных флешек и может не сообщать о каких-либо ошибках для них .
badblocks
с -w
или с fsck
пометкой секторов как плохих / поврежденных, чтобы они не использовались. f3 может вернуть что-то вроде Corrupted: 16.01 MB (32784 sectors)
, но помечает ли это как плохие сектора? Или для этого нам все еще нужны бадблоки? Я пытаюсь с,dumpe2fs -b
и кажется, что id не помечает.
Вы можете тестировать и читать весь диск, показывая индикатор прогресса:
time sudo pv /dev/sdc >/dev/null
Некоторые проблемы с диском проявляются в виде сообщений об ошибках ввода-вывода. Это немного лучше, чем 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
обрабатывает проверки диска по-другому?