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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : andy legkiy                          2:5020/400     07 Jan 2004  22:00:23
 To : All
 Subject : TEAC 540E (R/RW) illegal number of blocks
 -------------------------------------------------------------------------------- 
 
 Привет всем!
 
 При копировании "образа" (утилитой dd) c "устройства" оптического
 привода создается впечатление, что пытается считаться на на один
 блок больше, чем есть на самом деле.
 
 Что имеем:
 # uname -a
 FreeBSD develop.com 5.1-RELEASE-p11 FreeBSD 5.1-RELEASE-p11 #0: Fri Jan  2
 23:51:27 EET 2004     root@develop.com:/usr/obj/usr/src/sys/PIII  i386
 
 # dmesg
 atapci0: <VIA 82C686B UDMA100 controller> port 0xd000-0xd00f at device 7.1 on
 pci0
 acd0: CDROM <CD-540E> at ata1-master PIO4
 acd1: CD-RW <CD-W540E> at ata1-slave PIO4
 
 # atacontrol info 1
 ATA channel 1:
     Master: acd0 <CD-540E/1.0A> ATA/ATAPI rev 0
     Slave:  acd1 <CD-W540E/1.0H> ATA/ATAPI rev 5
 
 "нарезаем" сделанный iso-шник (вне зависимости от размера, эффект
 тот-же).
 
 # burncd -e -v -f /dev/acd1c data Source.iso fixate
 adding type 0x08 file Source.iso size 96 KB 48 blocks
 next writeable LBA 0
 addr = 0 size = 98304 blocks = 48
 writing from file Source.iso size 96 KB
 written this track 96 KB (100%) total 96 KB
 fixating CD, please wait..
 
 Hикаких ошибок при записи не получено. в логах чисто.
 
 Далее, проверяем как мы записались. Вначале, пробуем считать из "резака":
 
 # dd if=/dev/acd1c of=Test1.iso bs=2048
 acd1: READ_BIG - MEDIUM ERROR asc=0x11 ascq=0x00  error=0x00
 
 Файл записывается на один блок (2048байт) больше, чем оригинальный
 iso-шник (Source.iso)
 
 пробуем с обычного (непишущего привода):
 
 # dd if=/dev/acd0c of=Test0.iso bs=2048
 Jan  6 10:09:34 develop kernel: acd0: READ_BIG - ILLEGAL REQUEST asc=0x64
 ascq=0x00 error=0x04
 
 Однако в этом случае, созданный iso-шник полностью совпадает по размеру с
 исходным, контрольные суммы сходяться.
 
 Ошибки в двух случаях появляются вконце считывания.
 
 Единственная болванка которая "читается" dd-шкой нормально, это iso 5.1RELEASE
 нарезанный "на стороне". Hо перенарезав ее у себя, получаем те же грабли.
 Устройства приводов монтируются без ошибок, и размер примонтиованного
 носителя (пусть 645169152 байт, или 315024 блока по 2048) - показывается
 верный:
 
 # mount /dev/acd1
 # df
 Filesystem  1K-blocks    Used    Avail Capacity  Mounted on
 /dev/acd1      630048  630048        0   100%    /cdrom1
 
 получается, верное кол-во блоков 630048/2 = 315024
 
 Hо dd напрямую хочет считать 315025 блоков (если ей несказать кол-ва).
 
 В случае с CD-RW-приводом это у нее выходит (последний блок забит нулями).
 в случае с CD-R лишнего нет - просто выдается ошибка в лог.
 atacontrol reinit не помогает.
 Установка hw.ata.atapi_dma="1" не помогла (а только поставила на уши nvidia).
 
 Помогает, если сказать dd сколько точно блоков нужно считывать, но 
 это не то.
 
 Если кто сталкивался, подскажите пожалуста, куда копать.
 Подобная проблема была и на линуксе, но тогда не обращал на нее внимания
 (тоже dd на мои приводы ругался).
 
 Cheers!
 -- 
 andy legkiy
 --- ifmail v.2.15dev5.1
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 TEAC 540E (R/RW) illegal number of blocks   andy legkiy   07 Jan 2004 22:00:23 
 Re: TEAC 540E (R/RW) illegal number of blocks   andy legkiy   09 Jan 2004 06:29:38 
Архивное /ru.unix.bsd/55029ffe6618.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional