The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Восстановление данных с оптических носителей"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Восстановление данных с оптических носителей"  +/
Сообщение от handler2006 email(ok) on 29-Дек-09, 23:35 
Здравствуйте!
Имеем:
Оптический диск CD-RW c pdf-файлами на нем.
Данный диск был заполнен файлами следующим образом:
Под управлением ОС Windows файлы копировались на CD-RW диск при помощи <Ctrl+C> <Ctrl+V> или  Drag'n'Drop (как на флешку).
На определенном этапе диск перестал читаться.

Задача: извлечь содержимое диска.

Попытка решить задачу:
Для этого нужно ответить на три вопроса:

1. Предполагаемый формат ФС (iso-9660, UDF, CDFS) и его спецификация
2. Спецификация PDF-файлов
3. Не помню

Восстановление проводится под управлением ОС Линукс.
Для этой цели был установлен пакет ddrescue (45Kb.), т. к. dd отказался его читать:

dd if=/dev/cdrom /tmp/cd.iso
bla - bla - bla
I/O error

Про остальные инструменты можно не упоминать.

Что касается первого вопроса, то предполагается, что это iso-9660, однако спецификации данной ФС я не нашел, разве только "Вика" сказала, что первые 32 КБ не используются, а о дальнейшей структуре написано пространно - мол, есть там такие-то структуры, насчет смещений и размеров молчок.
Данная информация нам понадобится в том случае, если подручными инструментами прочесть не получится. Тогда берем в руки ассемблер, грузимся в ДОС, и счастливые 90-е снова оживают.

ddrescue /dev/cdrom /tmp/cd.iso

Носитель прочитала (ушло более суток, подумал, зависла, сделал <Ctrl+C>. Размер файла вышел 600 Мб из 736 Мб).
Созданный файл просмотрел в текстовом режиме - присутствуют структуры каталогов с искомыми файлами.
Выдвинуто предложение написать парсер на С++ , который будет искать сигнатуры pdf-файлов и копировать их оттуда (файлы).
Вот тут нам и нужен ответ на второй вопрос - толковой спецификации тоже не нашел, кроме, разве, сигнатур: %PDF - начало файла, %EOF - конец файла.
В принципе, этого достаточно, но нам нужна гарантия того, что файлы на носителе не фрагментированы (спецификация ФС оптических дисков вроде гарантирует это).

Другие инструменты мне под руку не попадались.
Возможно, Вы посоветуете мне, какие пути решения этой задачи Вам известны?

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Восстановление данных с оптических носителей"  +/
Сообщение от aZ (ok) on 30-Дек-09, 00:37 
А подмонтировать исо не додумался?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Восстановление данных с оптических носителей"  +/
Сообщение от handler2006 (ok) on 30-Дек-09, 08:58 
>А подмонтировать исо не додумался?

Ну что Вы, как мне могла прити в голову такая мысль?
Вы когда-нибудь видели монирование исо, который отказался читать даже дд?

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Восстановление данных с оптических носителей"  +/
Сообщение от aZ (ok) on 30-Дек-09, 13:29 
То, что вы слили в файл (а не сам диск) вы пытались монтировать как исо? Так понятней?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Восстановление данных с оптических носителей"  +/
Сообщение от handler2006 email(ok) on 30-Дек-09, 18:30 
>То, что вы слили в файл (а не сам диск) вы пытались
>монтировать как исо? Так понятней?

# mount -t iso9660 -o loop,ro /tmp/1.iso /mnt
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Восстановление данных с оптических носителей"  +/
Сообщение от QuAzI (ok) on 30-Дек-09, 01:41 
Как правило вдоволь напрыгавшись со всякими "утилитами для восстановления всего и вся" приходишь к выводу что бекап полезен, а так же перестаёшь ставить сковородки на компакты, учишся промывать оптику и узнаёшь что для более уверенного чтения можно сбросить скорость привода.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Восстановление данных с оптических носителей"  +/
Сообщение от аноним on 30-Дек-09, 15:18 
а лучше отказываешься от оптических носителей, ибо место им уже давно на свалке истории.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Восстановление данных с оптических носителей"  +/
Сообщение от handler2006 email(ok) on 30-Дек-09, 18:34 
>а лучше отказываешься от оптических носителей, ибо место им уже давно на
>свалке истории.

Spectacular advice!


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Восстановление данных с оптических носителей"  +/
Сообщение от anonymous (??) on 30-Дек-09, 21:10 
>Что касается первого вопроса, то предполагается, что это iso-9660, однако спецификации данной
>ФС я не нашел, разве только "Вика" сказала, что первые 32
>КБ не используются, а о дальнейшей структуре написано пространно - мол,
>есть там такие-то структуры, насчет смещений и размеров молчок.

...
>Носитель прочитала (ушло более суток, подумал, зависла, сделал <Ctrl+C>. Размер файла вышел 600 Мб из 736 Мб).
>Созданный файл просмотрел в текстовом режиме - присутствуют структуры каталогов с искомыми
>файлами.

попробуйте смонтировать образ:

mount -o loop -t udf ...iso /mnt/куда-то

или

mount -o loop -t iso9660 ...iso /mnt/куда-то

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Восстановление данных с оптических носителей"  +/
Сообщение от handler2006 email(ok) on 30-Дек-09, 21:18 
>
>попробуйте смонтировать образ:
>
>mount -o loop -t udf ...iso /mnt/куда-то
>
>или
>
>mount -o loop -t iso9660 ...iso /mnt/куда-то

Уже было

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Восстановление данных с оптических носителей"  +/
Сообщение от anonymous (??) on 31-Дек-09, 02:49 
>>попробуйте смонтировать образ:
>>
>>mount -o loop -t udf ...iso /mnt/куда-то
>>
>>или
>>
>>mount -o loop -t iso9660 ...iso /mnt/куда-то
>
>Уже было

вы определили тип файловой системы -- iso или udf?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Восстановление данных с оптических носителей"  +/
Сообщение от handler2006 email(ok) on 01-Янв-10, 16:21 
>
>вы определили тип файловой системы -- iso или udf?

Каким образом?
Правда, команда:

dd if=/dev/cdrom of=/mnt/cd.iso conv=sync,noerror

которую мне подсказали, создала файл на диске, размером с образ диска, пустой, содержащий в начале:

СD-ROM is NOT in ISO 9660 format

Правда, есть сомнения в компетентности данной программы.
Возможно, что не iso, но и не факт, что udf, возможно, есть еще альтернатива?
Проблема также и в том, что я не могу повторно получить снимок диска ни командами
dd, ни ddrescue - первый экземпляр затерся самодельным парсером

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Восстановление данных с оптических носителей"  +/
Сообщение от lavr email on 02-Янв-10, 01:07 
>[оверквотинг удален]
>содержащий в начале:
>
>СD-ROM is NOT in ISO 9660 format
>
>Правда, есть сомнения в компетентности данной программы.
>Возможно, что не iso, но и не факт, что udf, возможно, есть
>еще альтернатива?
>Проблема также и в том, что я не могу повторно получить снимок
>диска ни командами
>dd, ни ddrescue - первый экземпляр затерся самодельным парсером

неужели за это время нельзя было хоть чему-нибудь научиться?

размер блока для CD-DATA = 2048

1) взять тот же Windoze и на CD-RW болванку скинуть данные как это производилось
в оригинале, после чего посмотреть формат в котором была запись

перед последующими пунктами, можно облегчить физические процессы с помощью
опять же физических процессов временного действия:

- лучще воспользоваться низкоскоростным SCSI приводом, качество чтения на них
значительно лучше чем на PATA и тем более SATA
- почистить поверхность болванки и полирнуть пастой

2) в пакете cdrtools есть утилиты благодаря которым можно упростить некоторые
действия или собрать информацию: iso[info|dump|vfy] + readc с помощью которой
много чего можно

3) использовать dd с conv=noerror,sync bs=2048, но это не совсем хорошо, вот
почему советуют 3-раза использовать ddrescue или dd_rescue для direct read и
чтения без split и замещения нулями нечитаемых секторов

получив образ: можно приступить к его анализу, формат/структура -> данные -> восстановление

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Восстановление данных с оптических носителей"  +/
Сообщение от sHaggY_caT (ok) on 01-Янв-10, 23:04 
Ссылка из статьи той же wiki:

http://users.telenet.be/it3.consultants.bvba/handouts/ISO996...

(не читала, не вникала)

http://www.y-adagio.com/public/standards/iso_cdromr/tocont.htm

Стоит поискать официальные документы по joliet и другим расширениям.
И.. обязательно сделайте резервную копию того образа, что сейчас остался (я знаю, что Вы знаете, просто что бы вдруг если забыли, не было мучительно больно)

>[оверквотинг удален]
>Выдвинуто предложение написать парсер на С++ , который будет искать сигнатуры pdf-файлов
>и копировать их оттуда (файлы).
>Вот тут нам и нужен ответ на второй вопрос - толковой спецификации
>тоже не нашел, кроме, разве, сигнатур: %PDF - начало файла, %EOF
>- конец файла.
>В принципе, этого достаточно, но нам нужна гарантия того, что файлы на
>носителе не фрагментированы (спецификация ФС оптических дисков вроде гарантирует это).
>
>Другие инструменты мне под руку не попадались.
>Возможно, Вы посоветуете мне, какие пути решения этой задачи Вам известны?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Восстановление данных с оптических носителей"  +/
Сообщение от handler2006 (ok) on 04-Янв-10, 23:49 
Пришлось прибегнуть к программированию.
Воспользовался вызовом ioctl:

В исходниках вот это:
CDROMREADRAW read data in raw mode (2352 Bytes)
(struct cdrom_read)

usage:

union {
struct cdrom_msf msf; /* input */
char buffer[CD_FRAMESIZE_RAW]; /* return */
} arg;
ioctl(fd, CDROMREADRAW, &arg);

inputs:
cdrom_msf structure indicating an address to read.
Only the start values are significant.

outputs:
Data written to address provided by user.

error return:
EINVAL address less than 0, or msf less than 0:2:0
ENOMEM out of memory

notes:
As of 2.6.8.1, comments in <linux/cdrom.h> indicate that this
ioctl accepts a cdrom_read structure, but actual source code
reads a cdrom_msf structure and writes a buffer of data to
the same address.

MSF values are converted to LBA values via this formula:

lba = (((m * CD_SECS) + s) * CD_FRAMES + f) - CD_MSF_OFFSET;

Остается загадкой способ инициализации msf-cтруктуры для последовательного считывания секторов диска.
Понятно только , что первый сектор у нас 0:2:0 а второй ?
К стати, формат - UDF

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру