[Bug 385540] Re: Brasero calculates wrong checksum after burn ISO to CD

MestreLion launchpad at rodrigosilva.com
Wed Jun 10 15:56:41 BST 2009

After studying the log and doing some tests, i think ive spotted the
error: Brasero is passing the wrong number of sectors to the readom
command (that looks like its the one brasero uses to read the burned cd
to calculate the checksum).

These log lines should says it all (some lines were omitted for the sake
of clarity):

BraseroChecksumImage Starting checksuming file /dados/Install/Linux/ubuntu-9.04-desktop-i386.iso (size = 732909568)
BraseroChecksumImage Setting new checksum (type = 2) 66fa77789c7b8ff63130e5d5a272d67b ( before)
BraseroWodim stdout: Track 01: data   698 MB        
BraseroWodim stdout: Total size:      802 MB (79:31.54) = 357866 sectors
BraseroWodim stdout: Lout start:      803 MB (79:33/41) = 357866 sectors
BraseroWodim stdout: Current Secsize: 2048
BraseroWodim stdout: Blocks total: 359846 Blocks current: 359846 Blocks remaining: 1980
BraseroWodim stdout: Track 01:  698 of  698 MB written (fifo 100%) [buf 100%]   8.1x.
BraseroWodim stdout: Track 01: Total bytes read/written: 732909568/732909568 (357866 sectors).

So far so good: ISO checksum and size are correct, and 732909568 bytes /
2048 b/s = 357866 sectors. Media has 359846 sectors in total, so 359846
- 357866 = 1980 sectors wont be used. Track data is 698 MB (698.95
actually), and they are all sucessfully written to disc.

Then surprisingly, a few lines latter brasero says:

BraseroChecksumImage Starting checksum generation live (size = 732905472)
BraseroReadom reading 1 from sector 0 to 357864
BraseroReadom got varg:
BraseroReadom stderr: Capacity: 357866 Blocks = 715732 kBytes = 698 MBytes = 732 prMB
BraseroReadom stderr: end:    357864
BraseroReadom stderr: addr:   357864
BraseroReadom stderr: Read 715728.00 kB at 5110.6 kB/sec.
BraseroChecksumImage Setting new checksum (type = 2) 2602036235674bdd37d297dadd7547dd (66fa77789c7b8ff63130e5d5a272d67b before)

size = 732905472 ????

Why 732905472 ? Thats 4096 bytes less than the ISO image! Thats 357864
sectors, 2 less than it should. And, since only a partial data was read
from CD, checksum was obvioulsy different then original

I did a few tests with readom, using the same parameter template as used
by brasero:

readom dev=/dev/sr0 -nocorr -noerror -sectors=0-357864 -f=- | md5sum 
2602036235674bdd37d297dadd7547dd  -

readom dev=/dev/sr0 -nocorr -noerror -sectors=0-357866 -f=- | md5sum
66fa77789c7b8ff63130e5d5a272d67b  -

Both values matches the ones found in the log. So md5sum of burned CD is
correctly calculated on an incorrect, 4K smaller data. Thats why brasero
says checksums do not match.

Looks like bug has nothing to do with wodin, readom, or md5 calculation.
Seems to be a brasero issue iself, passing a wrong parameter. Shoudnt it
use the actual ISO size instead ?

Last but not least, ISO was read from an NTFS partition that was mounted
in /dados. Does it matter?

Hope this helps!

PS: Here the log for this example. Previous post log is from another ISO
(but had the same error, brasero passed 2 sectors less then actual iso

** Attachment added: "brasero-session.log"

Brasero calculates wrong checksum after burn ISO to CD
You received this bug notification because you are a member of Ubuntu
Burning Team, which is subscribed to brasero in ubuntu.

More information about the Ubuntu-burning mailing list