Como faço para reiniciar uma gravação de DVD 'wodim' abortada com Ctrl + C?

4

Eu queria gravar um ISO em um DVD + R. Eu decidi fazer um dummy write primeiro (onde o laser está desligado, então é basicamente uma execução a seco) já que eu nunca usei o comando antes e queria ter certeza de que estava fazendo certo. Eu fiz wodim -v dev=/dev/sr0 speed=4 -dummy -eject path/to.iso e parecia que estava funcionando corretamente. Descobri que não queria esperar que terminasse de fingir que estava queimando a imagem do disco grande, apertei Ctrl + C e digitei o mesmo comando sem -dummy para iniciar a gravação de verdade.

wodim: WARNING: Data may not fit on current disk.
wodim: Notice: Most recorders cannot write CD's >= 90 minutes.
wodim: Notice: Use -ignsize option to allow >= 90 minutes.
wodim: Notice: Use -overburn option to write more than the official disk capacity.
wodim: Notice: Most CD-writers do overburning only on SAO or RAW mode.

Eu tirei o disco e olhei para o fundo, e vi um anel fino com uma diferença de tonalidade, indicando que uma pequena quantidade de dados tinha sido gravada no disco. Eu só posso concluir que, por algum motivo, a opção -dummy não funcionou, e estava queimando a imagem de verdade, pelo menos até que eu a abortasse.

Eu acho que a opção -overburn que ela sugere é usada para gravar uma nova faixa desde o começo, o que não é o que eu quero. Eu preciso arrancar a partir deste disco, então a estrutura real dos dados é importante, não apenas que os arquivos que eu quero estão acessíveis. Como faço para terminar de onde parou para que o disco não seja desperdiçado? Eu não vejo nenhuma indicação exata de onde parou (apenas "145 de 4177 MB escrito", o que não é exato o suficiente), mas deve ser fácil de determinar lendo o disco e a imagem e descobrindo onde eles diferem .

EDITAR: Eu usei apenas cmp para comparar /dev/sr0 com o ISO, e ele disse que o primeiro byte diferenciado é o byte 152307713. Então é aí que ele parou. Se eu cortar o início do ISO para que ele inicie naquele byte e depois queime o arquivo no disco usando o mesmo comando, isso funcionará? Ou haverá um limite de trilha ou algo entre isso que causará problemas?

EDIT 2: Veja a saída dos comandos sugeridos por Thomas Schmitt:

$ dvd+rw-mediainfo /dev/sr0
INQUIRY:                [MATSHITA][DVD+-RW UJ8C7   ][1.00]
GET [CURRENT] CONFIGURATION:
 Mounted Media:         1Bh, DVD+R
 Media ID:              CMC MAG/M01
 Current Write Speed:   8.0x1385=11080KB/s
 Write Speed #0:        8.0x1385=11080KB/s
 Write Speed #1:        2.4x1385=3324KB/s
 Speed Descriptor#0:    01/2295103 [email protected]=4294967040KB/s [email protected]=11080KB/s
 Speed Descriptor#1:    01/2295103 [email protected]=4294967040KB/s [email protected]=3324KB/s
READ DVD STRUCTURE[#0h]:
 Media Book Type:       00h, DVD-ROM book [revision 0]
 Legacy lead-out at:    2295104*2KB=4700372992
READ DISC INFORMATION:
 Disc status:           appendable
 Number of Sessions:    1
 State of Last Session: incomplete
 "Next" Track:          1
 Number of Tracks:      2
READ TRACK INFORMATION[#1]:
 Track State:           partial/complete
 Track Start Address:   0*2KB
 Next Writable Address: 74384*2KB
 Free Blocks:           2064480*2KB
 Track Size:            2138864*2KB
READ TRACK INFORMATION[#2]:
 Track State:           blank
 Track Start Address:   2138880*2KB
 Next Writable Address: 2138880*2KB
 Free Blocks:           156224*2KB
 Track Size:            156224*2KB
 ROM Compatibility LBA: 265696
READ CAPACITY:          0*2048=0
$ cdrskin -v dev=/dev/sr0 -minfo
cdrskin 1.4.2 : limited cdrecord compatibility wrapper for libburn
cdrskin: verbosity level : 1
cdrskin: NOTE : greying out all drives besides given dev='/dev/sr0'
cdrskin: scanning for devices ...
cdrskin: ... scanning for devices done
cdrskin: pseudo-atip on drive 0
cdrskin: status 3 BURN_DISC_APPENDABLE "There is an incomplete disc in the drive"
scsidev: '/dev/sr0'
Device type    : Removable CD-ROM
Vendor_info    : 'MATSHITA'
Identifikation : 'DVD+-RW UJ8C7'
Revision       : '1.00'
Drive id       : 'WQ36  064543'
Driver flags   : BURNFREE
Supported modes: TAO SAO
cdrskin: burn_drive_get_write_speed = 11080  (8.0x)
Current: DVD+R
Profile: 0x0012 (DVD-RAM)
Profile: 0x002B (DVD+R/DL)
Profile: 0x001B (DVD+R) (current)
Profile: 0x001A (DVD+RW)
Profile: 0x0013 (DVD-RW restricted overwrite)
Profile: 0x0014 (DVD-RW sequential recording)
Profile: 0x0016 (DVD-R/DL layer jump recording)
Profile: 0x0015 (DVD-R/DL sequential recording)
Profile: 0x0011 (DVD-R sequential recording)
Profile: 0x0010 (DVD-ROM)
Profile: 0x000A (CD-RW)
Profile: 0x0009 (CD-R)
Profile: 0x0008 (CD-ROM)
Profile: 0x0002 (Removable disk)
book type:     DVD+R (emulated booktype)
Product Id:    CMC_MAG/M01/48
Producer:      CMC Magnetics Corporation
Manufacturer:    'CMC MAG'
Media type:      'M01'

Mounted media class:      DVD
Mounted media type:       DVD+R
Disk Is not erasable
disk status:              incomplete/appendable
session status:           empty
first track:              1
number of sessions:       1
first track in last sess: 1
last track in last sess:  2
Disk Is unrestricted
Disk type: DVD, HD-DVD or BD

Track  Sess Type   Start Addr End Addr   Size
==============================================
    1     1 Apdbl  0          2138863    2138864   
    2     1 Blank  2138880    2295103    156224    

Next writable address:              2138880   
Remaining writable size:            156224    

Warning: Incomplete session encountered !
$ xorriso -outdev /dev/sr0 -toc
xorriso 1.4.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev '/dev/sr0'
Media current: DVD+R
Media status : is written , is appendable
Media summary: 1 session, 2295104 data blocks, 4483m data,  305m free
xorriso : WARNING : Incomplete session encountered !
Drive current: -outdev '/dev/sr0'
Drive type   : vendor 'MATSHITA' product 'DVD+-RW UJ8C7' revision '1.00'
Drive id     : 'WQ36  064543'
Media current: DVD+R
Media product: CMC_MAG/M01/48 , CMC Magnetics Corporation
Media status : is written , is appendable
Media blocks : 1 readable , 156224 writable , 2295104 overall
TOC layout   : Idx ,  sbsector ,       Size , Volume Id
Incmp session:   1 ,         0 ,         0s , 
Media summary: 1 session, 2295104 data blocks, 4483m data,  305m free
Media nwa    : 2138880s
xorriso : WARNING : Incomplete session encountered !
$ cdrecord -v dev=/dev/sr0 -minfo
wodim: Bad Option: -minfo.
Usage: wodim [options] track1...trackn

Use wodim -help
to get a list of valid options.

Use wodim blank=help
to get a list of valid blanking options.

Use wodim dev=b,t,l driveropts=help -checkdrive
to get a list of drive specific options.

Use wodim dev=help
to get a list of possible SCSI transport specifiers.
    
por flarn2006 02.10.2016 / 19:05

1 resposta

2

Provavelmente você terá que desistir desse meio parcialmente escrito e comece com um novo DVD (em branco).

Teoricamente, não é impossível retomar uma corrida de gravação em um faixa de DVD + R incompletamente escrita. Mas eu não estou ciente de nenhum programa de gravação que faria isso. Eu posso estar errado, no entanto. Então, tente o que acontece se você deixa um programa de gravação agir nesse meio.

Espero que os programas de gravação queixam-se de uma rastrear e abortar, ou que eles tentarão iniciar uma nova pista no área ainda não reivindicada no DVD. Ambos não vão produzir uma cópia perfeita seu ISO no DVD.

Mais opiniões e informações:

wodim não é realmente adequado para DVD. Use growisofs , cdrskin , xorrecord ou cdrecord .

As unidades com mídia DVD + R não oferecem gravação simulada. Seja qual for o wodim quando você o executou com a opção -dummy , não foi o mesmo que você vê com o CD-R [W], DVD-R ou DVD-RW não formatado. Tome sua partida de gravação real como uma indicação de que wodim não tem Dica de DVD + R, DVD + RW, DVD-RAM, DVD-RW formatado ou mídia BD. (Pode ser suficiente para DVD-R e DVD-RW não formatado, porque eles se comportam de maneira semelhante ao CD-R.)

Você pode inspecionar o estado atual do DVD + R por um dos seguintes comandos:

dvd+rw-mediainfo /dev/sr0

cdrskin -v dev=/dev/sr0 -minfo

xorriso -outdev /dev/sr0 -toc

cdrecord -v dev=/dev/sr0 -minfo

Atualize após "Editar 2" na pergunta:

wodim: Bad Option: -minfo indica que você não tentou o% originalcdrecord mas, ao contrário, seu clone praticamente órfão wodim . Lá a opção seria seja o mais antigo -toc em vez de -minfo . A saída é mais difícil de interpretar. Seja como for, a saída de dvd+rw-mediainfo conta a história com mais detalhes.

wodim reservou o número da faixa 1 com um tamanho de 2138864 blocos = ~ 4177 MiB. Esta faixa ainda seria gravável a partir do bloco 74384 = ~ 145 MiB.

Mas esta capacidade de gravação de faixas existentes é uma característica especial do DVD + R (e talvez BD-R), que não se encaixa bem no modelo de uso de gravação programas. Então, eles preferem tentar usar a trilha não reservada restante número 2, que começa no bloco 2138880. Se eles aceitarem este estado médio em tudo.

Pelo menos, cdrskin e xorriso anunciam que tentariam escrever lá pelas suas declarações Next writable address: e Media nwa . O código-fonte growisofs parece que fará a mesma escolha. Sobre (original) cdrecord eu só posso imaginar.

É claro que uma tentativa de gravação do ISO restante para rastrear 2 falhará porque tem apenas 300 MB livres. (Isso criaria uma lacuna gigante de ilegível setores de qualquer maneira.)

O que um programa de gravação possivelmente teria que fazer:

É principalmente sobre como determinar o próximo endereço gravável a partir do existente faixa, em vez de a partir da próxima faixa para vir.

Isso pode ser substituído em libburn function burn_disc_track_lba_nwa() ou após cdrskin ter chamado em sua função Cdrskin_obtain_nwa() . No final, cdrskin variable *nwa precisaria obter o valor 74384.

Em growisofs , a função para determinar o NWA é plusminus_r_C_parm() . A variável next_session precisaria obter o valor 74384. Provavelmente, um terá que dar ao programa uma opção adicional -use-the-force-luke=seek=74384 e use a opção -Z em vez de -M .

Outro problema em potencial é que os programas depois de tal invasão ainda podem Emita o comando SCSI RESERVE TRACK . Isso deve ser evitado.

Parece que growisofs envia o comando apenas para DVD-R, DVD-R DL e DVD-RW não formatado. cdrskin não irá enviá-lo se sua opção -tao for presente.

Tem de se temer que este esboço não seja totalmente suficiente e que experimentos estragam o DVD + R parcialmente escrito além do reparo. Se você quiser ousar, no entanto, o ponto de partida seria obter o código-fonte de dvd+rw-tools (para growisofs ) ou estaticamente vinculado cdrskin . Então poderíamos começar a discutir pelo correio qual alteração de código dará melhor chances de sucesso na primeira e única tentativa. O resultado seria então relatado aqui.

(Caso não seja óbvio: sou desenvolvedor de libburn e cdrskin .)

    
por 03.10.2016 / 08:47