Eu queria gravar um ISO em um DVD+R. Decidi fazer uma gravação fictícia primeiro (onde o laser está desligado, então é basicamente uma simulação), já que nunca havia usado 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. Descobrindo que não queria esperar que terminasse de fingir que estava queimando a imagem grande do disco, apertei Ctrl + C e digitei o mesmo comando sem -dummy
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.
Tirei o disco e olhei para baixo, e vi um anel fino com uma diferença de tonalidade, indicando que uma pequena quantidade de dados havia sido gravada no disco. Só posso concluir que por algum motivo a -dummy
opção não funcionou, e estava queimando a imagem de verdade, pelo menos até eu abortar.
Acho que a -overburn
opção sugerida é usada para gravar uma nova faixa desde o início, o que não é o que eu quero. Preciso inicializar a partir deste disco, para que a estrutura real dos dados seja importante, e não apenas que os arquivos que desejo estejam acessíveis. Como faço para terminar de onde parou para que o disco não seja desperdiçado? Não vejo nenhuma indicação exata de onde parou (apenas "145 de 4177 MB gravados", o que não é exato o suficiente), mas deve ser fácil determinar lendo o disco e a imagem e descobrindo onde eles diferem primeiro .
EDITAR:Eu costumava cmp
comparar /dev/sr0
com o ISO e dizia que o primeiro byte diferente é o byte 152307713. Então foi aí que parou. Se eu cortar o início do ISO para que ele comece naquele byte e depois gravar esse arquivo no disco usando o mesmo comando, isso funcionará? Ou haverá um limite de pista ou algo intermediário que causará problemas?
EDITAR 2:Aqui está o resultado 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.
Responder1
Provavelmente você terá que desistir deste meio parcialmente escrito e começar com um novo DVD (em branco).
Teoricamente, não é impossível retomar uma execução de gravação em uma trilha de DVD+R gravada de forma incompleta. Mas não tenho conhecimento de nenhum programa de gravação que faça isso. Posso estar errado, no entanto. Então tente o que acontece se você deixar um programa de gravação atuar nessa mídia.
Eu esperaria que os programas de gravação reclamassem sobre uma trilha aberta e abortassem, ou que tentassem iniciar uma nova trilha na área ainda não reivindicada do DVD. Ambos não produzirão uma cópia perfeita do seu ISO no DVD.
Outras opiniões e informações:
wodim
não é realmente adequado para DVD. Use growisofs
, cdrskin
,
xorrecord
ou cdrecord
.
Unidades com mídia DVD+R não oferecem gravação simulada. O que quer que wodim
tenha acontecido quando você o executou com option -dummy
, não foi o mesmo que você vê com CD-R[W], DVD-R ou DVD-RW não formatado. Considere o início da gravação real como uma indicação de que wodim
não tem ideia de mídia DVD+R, DVD+RW, DVD-RAM, DVD-RW formatado ou BD. (Pode ser suficiente para DVD-R e DVD-RW não formatados, porque eles se comportam de maneira bastante semelhante ao CD-R.)
Você pode inspecionar o estado atual do DVD+R por meio de 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
Atualização após "Editar 2" na pergunta:
wodim: Bad Option: -minfo
indica que você não tentou o original, cdrecord
mas sim um clone bastante órfão wodim
. Lá a opção seria o mais antigo -toc
em vez de -minfo
. A saída é mais difícil de interpretar. Seja como for, o resultado dvd+rw-mediainfo
conta a história com os melhores detalhes.
wodim
faixa reservada número 1 com tamanho de 2138864 blocos =~ 4177 MiB. Esta faixa ainda seria gravável começando no bloco 74384 =~ 145 MiB.
Mas esta capacidade de gravação de faixas existentes é uma característica especial do DVD+R (e talvez do BD-R) que não se enquadra bem no modelo de utilização de programas de gravação. Então, eles tentarão usar a faixa número 2 não reservada restante, que começa no bloco 2138880. Se eles aceitarem esse estado médio.
Pelo menos cdrskin
e xorriso
anunciar que tentariam escrever lá suas declarações Next writable address:
e Media nwa
.
growisofs
o código-fonte parece que fará a mesma escolha. Sobre (original) cdrecord
só posso adivinhar.
É claro que uma tentativa de gravação do ISO restante na trilha 2 falhará porque ela tem apenas 300 MB livres. (De qualquer forma, isso criaria uma lacuna gigante de setores ilegíveis.)
O que um programa de gravação possivelmente teria que fazer:
Trata-se principalmente de determinar o próximo endereço gravável a partir da trilha existente, e não da próxima trilha que está por vir.
Isso pode ser substituído em libburn
function burn_disc_track_lba_nwa()
ou depois de cdrskin
ser chamado em sua function Cdrskin_obtain_nwa()
. No final, cdrskin
a variável *nwa
precisaria obter o valor 74384.
Na growisofs
função para determinar o NWA está plusminus_r_C_parm()
. A variável next_session
precisaria obter o valor 74384. Provavelmente será necessário fornecer ao programa uma opção adicional de execução
-use-the-force-luke=seek=74384
e usar a opção -Z
em vez de -M
.
Outro problema potencial é que os programas após tal hack ainda podem emitir comandos SCSI RESERVE TRACK
. Isto 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 o enviará se sua opção -tao
estiver presente.
É de temer que este esboço não seja totalmente suficiente e que as experiências estraguem o DVD+R parcialmente escrito, irreparavelmente. Mesmo assim, se você quiser ousar, o ponto de partida seria obter o código-fonte dodvd+rw-tools
(para growisofs
) ou de link estaticamentecdrskin
. Então poderíamos começar a discutir por correio qual alteração de código proporcionará melhores 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
.)