Volker, very very informative, thank you.
On Tue, 11 Mar 2003 10:54:43 +1300 Volker Kuhlmann <[EMAIL PROTECTED]> wrote: > > If you cannot get an .iso image file on your hard drive to md5sum correctly > > after a couple of tries, it's pointless going on any further. > > True. > > > Those silver SKC disks are obviously not of sufficient quality for use as > > stores for computer files. Sorry I didn't know that when I bought them. > > This may not be the real reason. The implementation of the isofs in > Linux is quite bad (e.g. the method of making inodes will prevent > hardlinked files from ever being stored properly on an isofs). The > kernel also has the habit (ever since the first version) of reading too > much data from the device, i.e. it reads past end of file on the disk. > Needless to say this can cause I/O errors (oh what a surprise). For > this reason only cdrecord has a -pad option, which simply writes > additional zeros past the end of the filesystem onto the disk. Of > course, this also stuffs your md5 sums. Another bug in the kernel is > that it can't properly detect end-of-file on CD media. These additional > zeros will screw your md5. > > For the record, all these are 100% identical: > > cat /dev/cdrom | md5sum > md5sum < /dev/cdrom > dd if=/dev/cdrom bs=2k | md5sum > dd </dev/cdrom bs=2k | md5sum > > plus any more combinations everyone can think of. They either all work, > or not at all. For current 2.4.18/2.4.19 kernels, they don't work > reliably. Depending on how many blocks there are on the CD, reading > will work, or fal with an I/O error (when the kernel tries to read past > the end of the recorded bit stream on the media). Even if the read goes > ok, unless you have happened to read precisely the correct number of > bytes your md5 is screwed anyway. I have had kernels where cat > /dev/cdrom resulted in a complete crash (kernel panick) right at the > very end of reading. > > In my experience the only way to get reliable md5 sums with cds is to > take matters into my own hands. Download the scriptutils package/tar > from my web site and use > > writecd --blockread /dev/cdrom | md5sum > > or cook your own. The trick is > > dd bs=2k if=/dev/cdrom count=`isoinfo -i /dev/cdrom -d | awk ...` > > This will force reading of the correct number of blocks from the disk > media (or any disk file). Note it will only work with an isofs on the > CD, not with any other filesystem. > > Recently I got too fed up with this Linux isofs crap that I started to > put ext2 onto the cds. Much easier and trouble free: create a 650MB or > 700MB file filled with zeros (by reading from /dev/zero). Run mkfs -t > ext2, don't forget -m0 as there really isn't any point in reserving > blocks for the super user on a read-only filesystem. Loop-mount. Master > your cd with cp, or rsync, or tar, or whatever, but no need to mess > with mkisofs. Unmount. cdrecord file to cd, finished. Won't be readable > by microsofties, but for my backups that's just as well. > > Volker > > -- > Volker Kuhlmann is possibly list0570 with the domain in header > http://volker.dnsalias.net/ Please do not CC list postings to me. > -- Nick Rout Barrister & Solicitor Christchurch, NZ Ph +64 3 3798966 Fax + 64 3 3798853 http://www.rout.co.nz [EMAIL PROTECTED]
