Um Plextor PX-750A em um sistema Linux fez muitos coasters de DVD + R DL ao tentar gravar um arquivo .iso de DVD de 8GB com o growisofs e o programa cdrecord da Schilling.
Eu tentei growisofs primeiro:
growisofs --version
* growisofs by <[email protected]>, version 7.0,
front-ending to genisoimage: genisoimage 1.1.8 (Linux)
A linha de comando era:
growisofs -dvd-compat -Z /dev/sr1=SUU_14.03.00_A00.iso
A remoção da opção -dvd-compat
também foi tentada.
Schilling cdrtools também foi tentado:
Cdrecord-ProDVD-ProBD-Clone 3.00 (i686-pc-linux-gnu) Copyright (C) 1995-2010 Jörg Schilling
A linha de comando era:
/usr/local/bin/cdrecord -v dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso
Em ambos os casos, a gravação é interrompida a meio, como se ela escrevesse uma camada e coaxasse quando deveria se mover para a segunda camada.
growisofs:
4275175424/8434493440 (50.7%) @1.6x, remaining 22:03 RBU 100.0% UBU 94.4%
:-[ WRITE@LBA=1fdb40h failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error
:-( write failed: Input/output error
cdrecord:
Track 01: 4205 of 8043 MB written (fifo 99%) [buf 97%] 2.4x./usr/local/bin/cdrecord: Input/output error. write_g1: scsi sendcmd: no error
CDB: 2A 00 00 20 DA 10 00 00 10 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 03 00 00 00 00 0A 00 00 95 00 0C 00 00 00 00 00
Sense Key: 0x3 Medium Error, Segment 0
Sense Code: 0x0C Qual 0x00 (write error) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.019s timeout 200s
write track data: error after 4409294848 bytes
/usr/local/bin/cdrecord: A write error occured.
/usr/local/bin/cdrecord: Please properly read the error message above.
Olhando para a mídia após a gravação, ela parece ter dados escritos de dentro para fora - dando a impressão de que ela escreveu uma camada inteira e, em seguida, errou quando essa camada terminou. Em várias tentativas, cada falha ocorre em cerca de 50% do tempo durante a queima de:
$ ls -lh SUU_14.03.00_A00.iso
-rw-rw-r-- 1 user group 7.9G 2014-05-14 07:53 SUU_14.03.00_A00.iso
Begin 2014/05/23 edit:
A página de manual do cdrecord diz:
Cdrecord functional options
...
driveropts=option list
...
layerbreak
Switch a drive with DVD-R/DL medium into layer jump
recording recording mode and use automatic layer-break
position setup.
By default, DVD-R/DL media is written in sequential
recording mode that completely fills up both layers.
layerbreak=value
Set up a manual layer-break value for DVD-R/DL and
DVD+R/DL. The specified layer-break value must not be
set to less than half of the recorded data size and must
not be set to more than the remaining Layer 0 size of the
medium. The manual layer-break value needs to be a mul-
tiple of the ECC sector size which is 16 logical 2048
byte sectors in case of DVD media and 32 logical 2048
byte sectors in case of HD-DVD or BD media.
Cdrecord does not allow to write DL media in case that
the total amount of data is less then the Layer 0 size of
the medium except when a manual layer-break has been
specified by using the layerbreak=value option.
O uso do layerbreak sem um ponto de interrupção calculado manualmente fornece:
cdrecord -v driveropts=layerbreak dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso
...
cdrecord: Bad layer break value ''.
...
Depois de algumas pesquisas, encontrei um patch para um cdrecord mais antigo que continha um "ótimo cálculo de quebra de camada". Com um pouco de experiência, descobri que eu poderia calcular a "quebra de camada ideal" em um shell:
echo -e "a = $(isosize SUU_14.03.00_A00.iso)\nb = a / 2048 / 2\nb - 1 + 16 - ( b - 1 ) % 16\n" | bc
Isso deu um valor de camada de 2059216. Na verdade, para sorrisos, tentei ajustar o valor para cima e para baixo. Para alguns valores de quebra de camada (como 2059215), o cdrecord relataria:
cdrecord: Layer break at 2059215 is not properly aligned.
Espero que eu tenha tentado:
cdrecord -v driveropts=layerbreak=2059216 dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso
E ainda tenho uma montanha russa e erro de gravação:
Track 01: 4205 of 8043 MB written (fifo 99%) [buf 97%] 2.4x./usr/local/bin/cdrecord: Input/output error. write_g1: scsi sendcmd: no error
CDB: 2A 00 00 20 DB 60 00 00 10 00
status: 0x2 (CHECK CONDITION)
Sense Bytes: 70 00 03 00 00 00 00 0A 00 00 95 00 0C 00 00 00 00 00
Sense Key: 0x3 Medium Error, Segment 0
Sense Code: 0x0C Qual 0x00 (write error) Fru 0x0
Sense flags: Blk 0 (not valid)
cmd finished after 0.022s timeout 200s
write track data: error after 4409982976 bytes
/usr/local/bin/cdrecord: A write error occured.
/usr/local/bin/cdrecord: Please properly read the error message above.
Fim de edição de 23/05/2014.
Esse problema ocorreu em um servidor em que não havia ferramentas de GUI instaladas. Eu estou procurando uma maneira de gravar DVDs de camada dupla a partir da linha de comando.