Tony Nelson wrote:
That test often fails due to a kernel issue, making good media seem
bad. I prefer to compare the bits with:
# cmp /dev/dvd /path/to/iso
If the dvd matches the iso: if there is no kernel issue there will
be no output; else it will complain about eof on the iso file. If
the dvd does not match the iso, there will be a specific complaint
about the first mismatch.
Reading /dev/dvd in general is not reliable since depending on the
hardware, it may not read exactly the right number of bytes (hopefully,
it will at least read >= the right number, which means your command
would either give an EOF error if the number was greater, or say the
files are identical if it's the same).
I use the rawread script from
http://www.troubleshooters.com/linux/coasterless.htm#rawread
which automatically reads the correct size of the ISO, and runs a dd
command reading exactly that much off the disc. This way I can just
check the hash directly, like this:
rawread /dev/dvd | sha256sum
which only requires reading the optical disc.
To deal with the linux readahead bug, the ISO must be zero-padded before
burning. Cdrecord/wodim has such an option (see the above page).
Instead, I use the isopad script at
http://ftp.cs.utoronto.ca/pub/hugh/isopad
I put both the rawread and isopad scripts in ~/bin with execute
permissions so they're available as regular commands. My burning
procedure is:
1) Download DVD ISO, check its hash.
2) Pad the ISO with "isopad + dvd.iso".
3) Burn with command
growisofs -dvd-compat -speed=1 -Z /dev/dvd=dvd.iso
(preferably as root on an unloaded machine to give it every advantage).
4) Verify the burn with "rawread /dev/dvd | sha256sum" (should give the
hash of the UNpadded ISO), or do a mediacheck.