У мене є жорсткий диск з поганими блоками або секторами, які не вдається прочитати через можливі механічні проблеми, такі як погана головка диска, поганий двигун або якась інша проблема, яка змушує жорсткий диск читати дані неквапливо повільно і з великою кількістю помилок читання. Я бачу в середньому 50 Кб / с, деякі з них опускаються нижче 10 Кб / сек, і часто він застрягає у файлі чи секторі, як правило, досить тривалий час - від 2-10 хвилин або більше (коли використовуючи rsync, перш ніж вимкнути його).
Швидкість, здається, різко змінюється, і він сильно застрягає у файлах, і коли він нарешті "відклеюється", він, здається, триває лише короткий зйомки, перш ніж він знову застрягне. Привід також дуже тихий, лише час від часу звучання копіювання файлів (зазвичай, коли вони стикаються / відклеюються на короткий час, перш ніж знову застрягти). Таким чином, немає жодного з тих злих звуків, які зазвичай асоціюються зі смертю від жорсткого диска. Хтось припустив, що проблеми звучали так, ніби вони можуть бути викликані неправильно вирівняною головкою диска, яка потребує багато перечитування, перш ніж вона нарешті успішно прочитає дані. Звучить правдоподібно, але я відволікаюсь ...
У будь-якому випадку, проблема з rsync полягає в тому, що вона, мабуть, не має гідної підтримки помилок. Очевидно, що це не було призначене для використання у відновленні даних від збою жорстких дисків, але все так зване «відновлення даних» утиліта, які там будуть призначені для такого використання , як правило , зосереджена на відновленні видалених файлів або переплутати розділи, а не копіювання файлів з відмираючих жорстких дисків. Очевидно, що відновлення видалених файлів - це не те, що мені потрібно, так що, можливо, ви можете зрозуміти моє розчарування в тому, що я не в змозі знайти те, що я ще шукаю.
Звичайно, саме тут, напевно, можна сказати "Ви повинні використовувати ddrescue!" Що ж, це все добре і безглуздо, але я вже отримав резервну копію більшості даних, тому просто хочу відновити певні файли. Мене не хвилює намагання відновити повний розділ блок-за-блоком, як це робить ddrescue. Мене цікавить лише рятування лише конкретних файлів та каталогів.
В ідеалі, що мені хотілося б - це певний перехрес між rsync та ddrescue: щось, що дозволяє мені вказати джерело та призначення як каталоги звичайних файлів, таких як rsync (а не два повних розділу, як вимагає ddrescue), із способом пропустити файли з помилки в початковому виконанні, а потім дозволяє мені спробувати відновити ті файли з помилками в подальшому виконанні (звичайно, з трохи зміненою командою), можливо, навіть запропонувавши можливість вказати кількість спроб повторити ... точно так само як ddrescue працює з блоками, тільки я хочу утиліту, яка працює з певними файлами / каталогами, як rsync.
Тож я мрію тут чи щось там, що може це зробити? Або, можливо, навіть спосіб змусити rsync або ddrescue працювати таким чином? Я дійсно відкритий до будь-яких рішень, які можуть працювати, до тих пір, поки вони дозволять мені вибрати файли, які я хочу "врятувати", і можу пропустити файли з помилками в початковому запуску, і спробувати / повторити ці помилки пізніше.
Поки я намагався rsync з наступними параметрами, але він часто застрягає у файлі довше, ніж час очікування, і в ідеалі я просто хотів би перейти до наступного файлу і повернутися пізніше до тих файлів, які він отримує застряг на. Я не думаю, що це можливо. У будь-якому випадку, ось що я використовував до цього часу:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/