Linux sometimes give me the following error: Input/Output error
Isso indica que algum bloco do meio é não é legível e a unidade não conseguiu corrigir erros.
No caso mais inofensivo, o CD foi escrito pelo tipo de escrita TAO, e Linux corre para o seu longo pé "bug readahead". Isso acontece no próprio fim da leitura do CD.
No caso menos inofensivo, o meio tem um bloco ruim onde dados valiosos devem ser registrados.
Or sometime it simply give me a wrong md5.
Muitos tipos de mídia ótica fornecem mais bytes do que foram escritos pela execução mais recente do burn. Para evitar o bug readahead do Linux, os programas de gravação muitas vezes adicionar algumas centenas de kB de zeros para para empurrar o bug para regiões sem importância do CD.
Para verificar o conteúdo recém-gravado do seu CD, tem que truncar o fluxo de dados do CD para o tamanho da imagem ISO que você escreveu.
Determine o número de blocos de 2 KB do ISO original:
blocks=$(expr $(du -b install53.iso | awk '{print $1}') / 2048)
Leia essa quantia do CD e canalize-a para o md5sum:
dd if=/dev/sr0 bs=2048 count=$blocks | md5sum
Se a execução da gravação foi bem, isso deve resultar no mesmo MD5 que
md5sum install53.iso
Se dd com o número correto de blocos produz erro de E / S dentro dos últimos 128 KB da imagem, então vale a pena tentar um leitor que não use o dispositivo de bloqueio do Linux motorista. Por exemplo. meu programa xorriso:
xorriso -indev /dev/sr0 -check_media data_to=cicco.iso --
Dependendo do tipo de mídia e do programa de gravação, isso pode leia muitos dados também. Então, novamente use para computação MD5
dd if=cicco.iso bs=2048 count=$blocks | md5sum