сохранение данных с неисправного диска

12

Внешний 3½ "жесткий диск, похоже, рискует выйти из строя - он издает тикающие звуки в режиме ожидания .

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

Есть некоторые каталоги, которые важнее других. Тем не менее, я предполагаю, что выбор и выбор каталогов уменьшит мои шансы на сохранение всего этого. Я также должен был бы смонтировать его, создать дамп списка файлов, а затем размонтировать его, чтобы иметь возможность эффективно расставлять приоритеты для каталогов. Добавляя к тому, что это занимает много времени, я отказываюсь от этого подхода.

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

Возможно ли, что копирование медленнее - например, с паузой каждые x МБ / ГБ - будет лучше, чем просто запуск операции полного наклона, например, чтобы избежать проблем с перегревом?

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

У привода не было никаких явных признаков отказа, кроме этого несколько зловещего звука. Мне недавно пришлось несколько ошибок fsck - осиротевшие иноды, неправильное количество свободных блоков / инодов, различия в битовой карте инода, нулевое время на удаленных инодах; всего около 20 ошибок.

Файловая система раздела - ext3.

созерцаемое
источник
Перекрестная публикация на askubuntu и superuser
интуитивно

Ответы:

9

Вы можете использовать ddrescueили dd_rescueили myrescueдля клонирования неисправного диска, не прерывая работу в каком-либо нечитаемом секторе. (Myrescue менее настраиваем, но имеет лучшую стратегию по умолчанию, поскольку пытается пропустить нечитаемые области.) Это скопирует все, включая пустое пространство, и не позволит вам установить приоритеты. Тем не менее, такой подход низкого уровня имеет преимущество по сравнению с инструментами файловой системы на уровне: если каталог неразборчивый, вы можете все еще восстановить файлы , которые он содержит путем поиска необработанного изображения с помощью таких инструментов, как foremost, magicrescue, photorecвключенный в TestDisk и т.д.

Жиль "ТАК - перестань быть злым"
источник
Ссылка для, magicrescueкажется, не работает; Вы имели в виду itu.dk/~jobr/magicrescue вместо этого?
Landroni
@landroni Да, я думаю, этот студент закончил, спасибо.
Жиль "ТАК - перестань быть злым"
«Myrescue [..] имеет лучшую стратегию по умолчанию». Не могли бы вы опубликовать ddrescueпример с настройками по myrescueумолчанию? Благодарность!
Landroni
1
Для ddrescue/ dd_rescueвы делаете первый проход с большим размером блока и меняете на меньший в следующих проходах (например, каждый раз делите пополам размер). Это, конечно, требует от вас использования файла журнала (см. Справочную страницу).
Петер
Сбивает с толку, в системах на основе Debian команда ddrescueприходит из пакета gddrescue; dd_rescueиз пакета ddrescue; и myrescueиз пакета myrescue.
Landroni
8

Там нет никакого способа узнать лучшие из ваших вариантов, не зная точно, что идет не так с диском. Если это механическая неисправность, может помочь избежать ее нагрева, но если это происходит из-за ошибок в данных сервопривода, нагрев вряд ли будет иметь значение.

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

Затем я запускаю очистку данных на диске. Я предполагаю из ext3файловой системы, что вы используете Linux, поэтому попробуйте это:

# umount /dev/sdX
# badblocks -n /dev/sdX

(Размонтирование диска в первую очередь важно.)

Это будет читать каждый сектор с диска и записывать его обратно без изменений. Это заставит микропрограмму привода проверить каждый сектор на наличие ошибок и переназначить все обнаруженные неисправные сектора. Это самая важная часть того, что делает дорогая программа SpinRite . Подходите к этому только в случае badblocksсбоя, и вы все еще не получили все уникальные данные с диска: SpinRite старается больше, чем badblocksделает.

Уоррен Янг
источник
2

Если диск умирает, сначала убедитесь, что вы сделали его как можно лучше (см. Ответ Жиля), и только затем приступайте к игре с этим диском. Таким образом, вы всегда будете иметь по крайней мере некоторые данные на случай, если что-то пойдет не так (что часто может случиться с неисправным оборудованием).

Если вы используете ddrescue(или dd_rescueя не уверен насчет других), вы всегда можете сделать копию частично клонированных данных и связанного файла журнала и попытаться улучшить их, запустив ddrescueснова после выполнения чего-то, что должно было починить диск. Он будет пытаться прочитать недостающие части, оставляя хорошо клонированные части нетронутыми.

peterph
источник