ATUALIZAÇÃO:
Is this a correct way to calculate hash of a DVD?
Primeiro, pegue um sha256sum de o próprio DVD como feito neste site :
... you’ve already burned the CD and now you’d like to go back and check
it? As long as you have the sha1sum or md5sum it’s simple.
...
DVD-RW drive is /dev/hda
g33kgrrl@home ~/Desktop$ sha1sum /dev/hda
89164d79d84f483c3642f25507186e58bf5fc0d8 /dev/hda
Enquanto eles usam sha1sum, ele deve funcionar da mesma forma para sha256sum. Primeiro, compare isso com o hash da sua iso original.
If not, why doesn't it work?
Como este usuário aponta :
in certain cases the size can be slightly different because there are
trailing zeroes in either the copy or the original image
Ele fornece algumas etapas para descobrir se esse é o caso, citação:
Por exemplo, se copy.iso for menor que orig.iso:
sha1sum copy.iso
head -c $(stat -c %s copy.iso) orig.iso
É claro que você também deve verificar se os bytes à direita são apenas zero:
od -j $(stat -c %s copy.iso) orig.iso
E, finalmente, voltemos à sua nova pergunta:
Is there a way to make iso file with exactly the same options as the
original iso?
Ainda não encontrei uma maneira de fazer isso. No entanto, depois de ter os hashes de cada etapa, você pode pelo menos ver onde a diferença ocorreu. Meu palpite é que o programa que queima seu arquivo ISO executa algumas etapas que são necessárias para a gravação, mas que também modificam a imagem de alguma forma?
Um pouco fora do escopo desta questão, mas seria interessante ver se ela é modificada sempre da mesma . Em outras palavras, gravar vários discos e ver se há hashes são todos iguais?
Resposta original:
Não tenho certeza se isso satisfaz sua pergunta (talvez seu aplicativo existente já execute essa função)
Mas se você obtiver o utilitário ImgBurn (utilitário do Windows, desculpe), ele terá um recurso para "verificar" um disco usando um ISO imagem.
Meu palpite é que, sob o capô, isso executa algumas etapas extras para alcançar o que você está tentando fazer. Pena que não é de código aberto, ou você pode pegar o código e ver exatamente o que está acontecendo.
Talvez existam outros utilitários de gravação com funcionalidade semelhante e código aberto?