Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Sergey Vlasov                        2:5020/400     12 Dec 2006  23:21:07
 To : Eugene Smirnoff
 Subject : Re: Считывание образов с CD/DVD-приводов
 -------------------------------------------------------------------------------- 
 
 On Mon, 11 Dec 2006 00:53:00 +0300 Eugene Smirnoff wrote:
 
 > root@localhost:# dd bs=1 if=/dev/cdrom of=/mnt/common/qnx621.iso
 > dd: чтение `/dev/cdrom': Input/output error
 > 248627200+0 записей считано
 > 248627200+0 записей написано
 >  скопировано 248627200 байт (249 MB), 770,611 секунд, 323 kB/s
 
 Это обычное явление для CD, записанных в режиме Track-at-once - при
 этом размер дорожки в TOC получается на несколько секторов больше,
 чем размер писавшегося туда образа, но последние сектора оказываются
 нечитаемыми. При записи в режиме Disk-at-once эта проблема не
 наблюдается. Кстати, readcd обламывается точно так же, как и dd.
 
 Как это обходить совсем правильно - не знаю; если известно, что на
 диске стандартная ФС iso9660, можно посмотреть размер через isosize
 -d 2048, после чего прочитать соответствующее число секторов (хоть
 через readcd, хоть через dd). K3b в этой ситуации просто пробует
 прочитать конец дорожки, и если это не удаётся, уменьшает её размер:
 
     // A data track recorded in TAO mode has two run-out blocks which cannot be 
 read and contain
     // zero data anyway. The problem is that I do not know of a valid method to 
 determine if a track
     // was written in TAO (the control nibble does definitely not work, I never 
 saw one which did not
     // equal 4).
     // So the solution for now is to simply try to read the last sector of a
 data track. If this is not
     // possible we assume it was written in TAO mode and reduce the length by 2 
 sectors
     //
     unsigned char buffer[2048];
     int i = 1;
     for( K3bDevice::Toc::iterator it = d->toc.begin(); it != d->toc.end(); ++it 
 ) {
       if( (*it).type() == K3bDevice::Track::DATA ) {
         // we try twice just to be sure
         if( m_readerDevice->read10( buffer, 2048, (*it).lastSector().lba(), 1 ) 
 ||
             m_readerDevice->read10( buffer, 2048, (*it).lastSector().lba(), 1 ) 
 ) {
           d->dataSessionProbablyTAORecorded.append(false);
           kdDebug() << "(K3bCdCopyJob) track " << i << " probably DAO recorded."
 << endl;
         }
         else {
           d->dataSessionProbablyTAORecorded.append(true);
           kdDebug() << "(K3bCdCopyJob) track " << i << " probably TAO recorded."
 << endl;
         }
       }
 
       ++i;
     }
 
 ...
 
     // HACK: if the track is TAO recorded cut the two run-out sectors
     if( d->dataSessionProbablyTAORecorded.count() > dataTrackIndex &&
         d->dataSessionProbablyTAORecorded[dataTrackIndex] )
       d->dataTrackReader->setSectorRange( track->firstSector(),
 track->lastSector() - 2 );
     else
       d->dataTrackReader->setSectorRange( track->firstSector(),
 track->lastSector() );
 
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5.3
  * Origin: Talk.Mail.Ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Считывание образов с CD/DVD-приводов   Eugene Smirnoff   11 Dec 2006 01:53:00 
 Считывание образов с CD/DVD-приводов   Eugene Smirnoff   11 Dec 2006 02:50:28 
 Re: Считывание образов с CD/DVD-приводов   Alex Korchmar   11 Dec 2006 14:17:49 
 Re: Считывание образов с CD/DVD-приводов   Eugene Smirnoff   11 Dec 2006 16:17:34 
 Re: Считывание образов с CD/DVD-приводов   Alex Korchmar   11 Dec 2006 17:44:54 
 Re: Считывание образов с CD/DVD-приводов   Eugene Smirnoff   11 Dec 2006 19:59:46 
 Re: Считывание образов с CD/DVD-приводов   Anatoliy Titov   12 Dec 2006 10:21:56 
 Re: Считывание образов с CD/DVD-приводов   Eugene Smirnoff   12 Dec 2006 16:39:46 
 Re: Считывание образов с CD/DVD-приводов   Sergey Vlasov   12 Dec 2006 23:21:07 
 Re: Считывание образов с CD/DVD-приводов   Alex Korchmar   13 Dec 2006 00:42:06 
 Re: Считывание образов с CD/DVD-приводов   Sergey Vlasov   13 Dec 2006 20:44:36 
 Re: Считывание образов с CD/DVD-приводов   Sergey Vlasov   13 Dec 2006 21:16:14 
 Re: Считывание образов с CD/DVD-приводов   Alex Korchmar   13 Dec 2006 22:06:34 
 Re: Считывание образов с CD/DVD-приводов   Eugene Smirnoff   13 Dec 2006 01:35:26 
Архивное /ru.linux/367244ae83d5.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional