04.30.08

lunux cd/dvd recovery.

Posted in linux, multimedia, ubuntu at 11:32 pm by viliar

Принесла мне хорошая девушка пару дисков dvd с кучей записанных фоток. Один диск читался очень долго и нудно, с множеством ошибок, второй не читался вобще. С первым все решилось довольно просто. Монтировался нормально, и далее просто копировались файлы cp с ключом force или rsync. Потери составили около 30Mb на 4,xGb. Причем процесс шел довольно шустро, сравнительно с теми часами, которые это занимало в windows. А вот со вторым все было плохо. Диск не монтировался. К счастью, nerolinux видел и записанную дорожку и даже названия папок/файлов с указанием для последних занимаемого места. Стал смотреть, что мы имеем для восстановления такого чуда. В первую очередь в голову естественно пришел dd для считывания данных в iso образ. Но увы и ах, несмотря на явным образом заданный объем для считывания, а также опцию conv=noerror процесс заканчивался копированием двух пустых килобайт. Несмотря на указание bs=1M и seek=xx, skip=xx.  У диска, судя по всему, было повреждено начало, поэтому дальше этих двух килобайт процесс в принципе не шёл. Чуть позже нашлась совершенно замечательная  по описаниям утилита - ddrescue. Которая даже в репозитариях ubuntu есть. Среди важных отличий от dd, указывалась возможность действительно игнорировать ошибки чтения, забивать нечитаемые сектора в output нулями и даже reverse read. То, чего мне первое пришло в голову искать с dd, но чего в оном не оказалось. И тем не менее, та же история. Читаем первые два килобайта и умираем. Уж не знаю, может быть опция -r работает не так, как я об этом полагал. Стал думать, а нельзя ли это дело еще как нибудь на уровне raw доступа считать, и уже дальше разбираться с образом. На http://openkazan.info/node/1009 нашел нужные опции к cdrdao
cdrdao read-cd –read-raw –device /dev/sr0 dump.toc

которые при желании находятся в мане. Не выходит каменный цветок.

/dev/scd0: _NEC DVD_RW ND-3520A Rev: 1.04
Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0×0000)

Reading toc and track data…
ERROR: Cannot read disk toc.
Может быть покрутив что-нибудь с опциями и можно было сделать, но эти опции не просматривались в досягаемом материале. То, что просмотр дорожки под nerolinux показывал вполне себе не пустой диск, а какие-то данные, если перемотать чуть-чуть вперед - заставляло меня продолжать поиск.
В погоне за результатом опустился до виндовых программ, запускаемых из под wine (0.9.60 под amd64). ОС Windows сама у меня на компьютере некоторое время соседствовал (для игр) c Linux, но года три назад перестала отягощать винчестер совсем. Посему это воспринялось мной как некое отступление. Всегда предпочитаю искать нативное решение и в большинстве случаев такие решения находились. Как практика показывала, они оказывались даже лучше. Но здесь мне нужен был результат, и желательно быстрый. Погуглив, нашел Cdroller и Cdcheck, которые принципиально не дружили с wine. Их хватило только на установку. Результата я добился в итоге с помощью (да, пусть это будет некоторой рекламой этой хорошей программе) Diskinternals CD-DVD recovery. Её совсем не смутило, что запуск был из под вайна. Спокойно нашла привод и прочитала, по-моему, практически все файлы. На данный момент уже восстановлена бОльшая их часть:

$ du -hs /home/media/temp/recover
3,7G    /home/media/temp/recover

Уверен, что под windows есть и другие замечательные программы, которые позволят с легкостью решить такую задачу и которые даже могут быть freeware в отличии от названной. Но будут ли они дружить с wine - не знаю. Искренне надеюсь, что все-таки со временем найдутся нативные решения под линукс. Мимо которых скорее всего я просто прошел. Абсолютно не принципиально, будут ли они консольные или гуевые. Главное, чтоб были.

Comments are closed.

14 queries. 0.246 seconds