Завдання: відновити інформацію з пошкодженого компакт-диску, копіювання з якого переривається через помилки читання.
Розв'язок: декілька утиліт, зокрема базових, що дозволяють деякою мірою відновити дані.
Стаття (рос.):
http://mydebianblog.blogspot.com/2006/12/blog-post_27.htmlПереклад: див. нижче. Переклад зроблено з допомогою
http://test.pere.org.ua
Вільні утиліти відновлення данихЗавдання: відновити інформацію з пошкодженого компакт-диска, копіювання з якого переривається через помилки читання.
Розв'язок: декілька утиліт, зокрема базових, що дозволяють деякою мірою відновити дані.
Утиліта ddСтара, як сам UNIX, утиліта, яка входить практично у будь-який нормальний дистрибутив UNIX-подібних систем. Понад те, на блозі вже згадувався варіант її використання для перевірки дисків. Тепер ми використаємо її для потреб відновлення.
Власне, її використання призведе до копіювання даних, попри помилки. Уважне читання довідки man dd дає ключі до використання:
dd if=/dev/cdrom of=~/bad.iso bs=2048 conv=noerror
Ігнорування помилок читання забезпечує саме останній параметр, тому ви будете спостерігати численні повідомлення про помилки.
У Мережі є довідка російською для тих, хто відчуває проблеми з англійською.
Утиліта recoverdmДо комплекту поставки дистрибутивів вона входить рідко, але поширюється під ліцензією GPL, і скачати її можна
звідси.
Потребує прав root-a, оскільки використовує деяке "трюкацтво", наприклад скидання стану контролера і читання "сирих" даних (RAW-data). Забезпечує більшу точність відновлення ніж dd, і більший набір параметрів. Проте працює значно повільніше ніж dd через те, що набагато більша кількість спроб читання відбувається. Спроможна відновлювати дані з дискет, CD/DVD і жорстких дисків. З іншого боку, поставляється з утилітою mergebad, яка корисна у разі, наприклад, коли є декілька компакт-дисків, й вони биті, а інформація розподілена між ними.
Компіляція з джерельних текстів у вигляді команди make технічно нескладна. Потрібно поставити на команді відповідні права та виконати:
sudo ./recoverdm -t 20 -і /dev/hda -o bad.iso -l badsectors.bad -n 10 -r 12
Після цього почнеться повільне і сумне відновлення. Найкраще ставити її проти ночі, бо за скільки-небудь великих збоїв читання компакт-дисків таке зчитування триватиме декілька годин (мій злощасний миморекс читався 7 годин).
У процесі зчитування ви бачитимете у консолі такі повідомлення:
Trying RAW read...
Tried reading 10 times, failed doing that. Continuing...
error at 732188672 bytes, retrying: 1
error at 732188672 bytes, retrying: 2
error at 732188672 bytes, retrying: 3
seek to end...
error at 732188672 bytes, retrying: 4
resetting device...
error at 732188672 bytes, retrying: 5
resetting controller...
error at 732188672 bytes, retrying: 6
error at 732188672 bytes, retrying: 7
error at 732188672 bytes, retrying: 8
error at 732188672 bytes, retrying: 9
error at 732188672 bytes, retrying: 10
Trying RAW read...
Tried reading 10 times, failed doing that. Continuing...
Природно, утиліта не чарівна, й ті дані, які відновити не вдалося, просто заміняє порожніми блоками. Коли на диску було багато фотографій, втрату десятка ви переживете менш болісно, ніж всього диска повністю.
Відновлення цієї програмою займає значно більше часу, ніж dd. Не чекайте, що диск з великими ушкодженнями (понад десять відсотків секторів) опрацюється менше, як за 7-8 годин (при багаторазовому зчитуванні з параметрами, зазначеними вище). Але є перевірений спосіб: ставимо проти ночі і йдемо спати...
Особистий досвідВідновлював з допомогою цих двох утиліт один фільм зі славних своєю "якістю" дисків фірми Memorex. Так їх назвати можна було лише з глибоким сарказмом - навіть безрідна китайщина досі читається на максимальної швидкості (записані 5 років тому!), зате славні миморекси здохли всім десятком за якихось півтора року тюремного.
Хай як там не було, але dd і dd_rescue працювали довго й у результаті занадто багато пропущених секторів - фільм йшов із помітними "глюками". Той-таки диск, відпрасований recoverdm з наведеними вище параметрами дав істотно менше пропусків і фільм йшов значно "плавніше" і навіть випали лише три-чотири незначних епізоди по 5-6 секунд. Більш як задовільний результат тим більше, що звичайне копіювання переривалося на половині диска з істеричним криком "I/O error, пишіть листи".
Посилання:Стаття надихана власними потребами у відновленні даних із хвалених вітчизняних уральських дисків
МимоMemorex і
цієї відмінної статті. У найближчих планах стоїть апробація програми testdisk, про яку писали
тут.