[Pkg-libburnia-devel] Bug#617409: brasero: Brasero corrupts all blank CD-R when burning (was: additional info)

Thomas Schmitt scdbackup at gmx.net
Fri Jul 6 18:18:20 UTC 2012


> - Disabling the option "Burn the image directly without saving to disc"
> (see screen shot) creates a working CDs (that can be ejected
> automatically too).

I will have to try at least the eject aspect.

> But anyway, I updated to brasero 3.4.1 and I can still reproduce the bug.

How did you do that ? My squeeze only fetches 2.30.3.

> brasero (libisofs)DEBUG : Processed 103584 of 103584 KB (100 %)

So this is not the 50-percent-bug where growisofs is involved and where
George's patch might be of help.

> [22796.601067] sr 0:0:0:0: [sr0] CDB: Read(10): 28 00 00 00 00 02 00 00 02 00
> [22796.605520] sr 0:0:0:0: [sr0]  Sense Key : Not Ready [current]
> [22796.605525] sr 0:0:0:0: [sr0]  Add. Sense: Medium not present

The medium is bad. At least after having been written.
The drive does not even acknowledge its existence.

What do you get from this command while the bad medium is in /dev/sr0 ?

  xorriso -outdev /dev/sr0 -toc

Maybe it is still blank and usable. We'll see.


> I will have a look at xorriso... the manpage looks horrible.

Yes, it has grown during the years.
The commands allow to manipulate an ISO 9660 image quite thoroughly.

If you are familiar with mkisofs and cdrecord, there are emulation commands.

For getting started, see the examples section:

> Any specific parameters I should test?

I have to emphasize that the -things are commands like with the shell,
not parameters like with programs dd, ls or gcc.
The sequence of commands matters, as they have to create preconditions
for the commands which come after them.

Let's try to just burn one directory to CD with MD5 checksums.
This here has the right size:
  $ du -s /usr/bin
  230980  /usr/bin

  $ xorriso -md5 on -outdev /dev/sr0 -map /usr/bin /usr/bin

This will fail if the medium is not blank.
For CD-RW you may let xorriso decide whether to blank before burning.

  $ xorriso -md5 on -outdev /dev/sr0 \
            -blank as_needed \
            -map /usr/bin /usr/bin

Burning happens automatically when the program is about to end.

This is supposed to copy /usr/bin from disk to /usr/bin on the CD-RW.
You may then checkread with the recorded MD5s

  $ xorriso -md5 on -indev /dev/sr0 \
            -check_md5_r FATAL /usr/bin --

Or compare directly with the disk directory

  $ xorriso -indev /dev/sr0 \
            -compare_r /usr/bin /usr/bin

Before mounting the medium you should eject and manually reload.
This is to let the CD-ROM driver learn about the new state of the medium.

You can let xorriso burn and eject by having as its last command
             -commit_eject all

You can combine burn, checkread and eject.
Command -commit triggers an intermediate burn. There will be no final
burn because there will be no image changes pending after the checkread.

  $ xorriso -md5 on -outdev /dev/sr0 \
            -blank as_needed \
            -map /usr/bin /usr/bin \
            -commit \
            -check_md5_r FATAL /usr/bin -- \
            -md5 off \
            -compare_r /usr/bin /usr/bin \
            -eject all
For the case of MD5 mismatch, -check_md5_r is set to throw a "FATAL" error
and thus to abort the program run immediately. The tray will not eject in
this case.
The command
            -check_md5_r SORRY /usr/bin -- \
would not abort the program run in case of mismatch.

Have a nice day :)


More information about the Pkg-libburnia-devel mailing list