Як сказати rsync пропускати файли на пошкодженому блоці жорсткого диска, а не застрявати, намагаючись прочитати його


13

Я намагаюся відновити файли з диска, на якому є апаратні помилки.

Диск був відремонтований дисковою утилітою, але він сказав мені, що диск пошкоджений, тому мені потрібно створити резервну копію всього, перш ніж відбудеться збій.

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

Тому я спробував з rsync, і, здається, працює; але це вічно, коли я потрапив у поганий блок.

Тож мені було цікаво, чи є спосіб сказати Rsync навіть не турбуватися з файлом, якщо це займе занадто довго? Або я можу вказати кількість спроб з кожним файлом, або скільки часу потрібно намагатись для кожного файлу?

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

Це те, що я використовую як команду; будь ласка, порада, якщо є який-небудь спосіб зменшити спробу файлу, тому я можу мати rsync, щоб спробувати прочитати пошкоджені блоки, але уникайте затримуватися на певному секторі занадто довго.

rsync -arv -e--ignore-errors --partial-dir=/Volumes/backup/partial /Volumes/work /Volumes/backup

Заздалегідь спасибі.


3
Якщо накопичувач пошкодив сектори, вам краще спробувати зобразити привід з чимось подібним dd_rescue, він має розширені функції, щоб впоратися з поганими секторами.
jmreicha

Я думаю, що у @jmreicha є правильна ідея, але в майбутньому, якщо у вас є технічні питання rsync, дружні гуру доступні у списку rsync: list.samba.org/mailman/listinfo/rsync
Joe

Відповіді:


10

Коротка відповідь: rsyncце не правильний інструмент, який слід використовувати в цьому випадку: його використання може бути навіть шкідливим.
Використовуйте ddrescueнатомість (краще, ніж dd_rescue). Він здатний робити те, що ви просите.


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

Це не лише питання про використання вашого часу , коли, rsyncздається, вічно наближається до пошкодженого сектора. Проблема полягає в тому, що при повторних операціях може статися непоправний збій, і тоді ви вже не зможете врятувати свої дані без дорогої заміни деталей (завжди, якщо це все ще буде можливо, і ви не замурували ваш жорсткий диск ).

У цьому випадку найбезпечніша процедура, яку я знайшов

  1. Щоб створити неочищене зображення на іншому не зламаному диску.
  2. Щоб створити копію цього зображення.
  3. Для того, щоб працювати на копії , щоб виправити файлову систему і врятувати файли .

Чому копія? Тому що якщо у кроці виправлення файлової системи щось не виходить, ви завжди можете запуститися заново без необхідності знову торкатися оригінального пошкодженого жорсткого диска .

Я пропоную вам використовувати ddrescueнедиректне зображення диска, включаючи дефекти, оскільки він добре працює навіть у випадку помилок читання.


Як це зробити ddrescue

Ви можете використовувати ddrescueсаме так, як хотіли б rsync, пропускаючи пошкоджені сектори, не повторюючи їх і не розбиваючи, копіюючи якомога більше даних.
Ця команда наведена нижче (замість цього /dev/hda1ви поставите свій пристрій):

ddrescue --no-split /dev/hda1 imagefile logfile

Після цього ви зробили цей перший уривок ( більш швидкий ), ви можете спробувати уточнити його, намагаючись отримати доступ 3 рази у разі помилки.

ddrescue --direct --max-retries=3 /dev/hda1 imagefile logfile 

Ви можете продовжувати вдосконалювати зображення, повторюючи ddrescueвиклики команд, за допомогою інших параметрів, намагаючись кожен раз витягувати більше даних (див. Посилання). Коли ви закінчите, можете створити копію (якщо у вас є весь необхідний простір), а потім виправити файлову систему .

Зауважте, що необроблене зображення буде таким же великим, як і оригінальний жорсткий диск .
Ви можете знайти в Інтернеті, на цьому та інших веб-сайтах StackExchange багато запитань та відповідей про те, як врятувати дані за допомогою ddrescueінших інструментів.

Список літератури:


дійсно dd_rescue - це шлях. Це було в моїй оригінальній відповіді 2 роки тому; але чомусь хтось вирішив, що я не можу відповісти на власне запитання :) Дякую за відповідь та приголомшливі деталі
rataplan

@newbiez: Натомість у мене була серйозна проблема з диском з моїм майже цегляним головним жорстким диском ... тому я зустрів ddrescueі його друзів :-) Про вашу відповідь лише слово: дивно ... опублікуйте це ще раз, і якщо хтось спробує знову закрити Я проголосую за повторне відкриття (я ніколи не використовував цю нову владу : D)
Хастур

1
Параметр --no-split був видалений у новіших версіях ddrescue. Замість цього використовуйте --no-scrape. Див. List.gnu.org/archive/html/bug-ddrescue/2015-09/msg00001.html
Grmpfhmbl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.