Linha de comando para gravar mídia DVD + R DL no Linux?

7

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.

    
por kbulgrien 16.05.2014 / 00:00

2 respostas

3
  1. Tente outro gravador de DVD.

    Failing commands functioned properly when used with a USB-attached LG M/N GE24LU20 DVD writer.

  2. Verifique a revisão do firmware do gravador de DVD. Atualize o firmware se uma nova revisão estiver disponível.

    Both growisofs and cdrecord commands above that fail on a Plextor PX-750A-UF 1.01 burner succeed with the same drive after a firmware update to PX-750A-UF 1.03.

    /usr/local/bin/cdrecord -v dev=ATAPI:1,0,0 SUU_14.03.00_A00.iso
    
    growisofs -dvd-compat -Z /dev/sr1=SUU_14.03.00_A00.iso
    

    Other benefits to firmware upgrade are probable. For instance, the PX-750A-UF 1.01 firmware device wrote the dual layer DVD at about 2.4x but the 1.03 firmware wrote the media at a 6x rate.

Em relação à quebra de camada, foi interessante observar cdrecord pausando muito tempo no ponto de 4023 MB (meio caminho) e logo antes do ponto de 4025 MB, em que cdrecord falhou ao trabalhar com o disco quando ele tinha o firmware mais antigo. Aparentemente, o atraso pode ter sido causado por uma operação de troca de camadas.

    
por 23.05.2014 / 21:52
-1

Se você não disse ao cdrecord onde colocar a quebra da camada, a unidade encherá a mídia em até 100%. Isso causa um longo atraso.

Se o cdrecord falhar, você pode ser uma vítima de várias versões modificadas que arrancaram o suporte a DVD e substituíram o código original por algo meio baken. Essas versões defeituosas não relatam a versão 3 e não sabem sobre os tempos limites certos para a gravação do DVD. Isso pode ser um motivo para o tempo limite do cdrecord ser muito cedo.

A versão recente do cdrecord é 3.01a31 e em breve será 3.01-final.

Você usou uma versão recente?

    
por 20.08.2015 / 00:35