Subject: | |
From: | |
Reply To: | |
Date: | Wed, 6 Nov 2013 08:26:14 -0600 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
On 11/05/2013 07:34 PM, Nico Kadel-Garcia wrote:
> On Tue, Nov 5, 2013 at 7:35 PM, Yasha Karant<[log in to unmask]> wrote:
>> I have not tried this yet, but the statement is that "The cmp utility
>> compares two files of any type and writes the results to the standard
>> output."
>>
>> Will this work for mount points or device special files that are mounted on
>> mount points, allowing one to compare two full directory tree hierarchies?
>
> Yup! The idea that "a file is a file, even when it's a mountpoint or a
> symlink or a pipe or a socket" is fundamental to the concept of what a
> "file" is in libc and in the kernel. itself.
>
>> That is, using the situation elaborated below (that is, earlier in this
>> thread), will
>>
>> cmp /dev/loop0 /dev/sr0
>
> Should work, if those are the valid device names. If you can 'md5sum'
> it, you can 'cmp' it.
>
I use the following 'rawread' script to compare my ISO to burned media.
It is then run through a hash algorithm (md5, sha, etc) to compare.
the RAW_DEV should be the device node associated with the optical drive.
#!/bin/sh
if [ -n "$1" ] ; then
RAW_DEV=$1
fi
blocksize=`isoinfo -d -i $RAW_DEV | grep "^Logical block size is:" | cut
-d " " -f 5`
if test "$blocksize" = ""; then
echo "FATAL ERROR: Blank blocksize" >&2
exit
fi
blockcount=`isoinfo -d -i $RAW_DEV | grep "^Volume size is:" | cut -d "
" -f 4`
if test "$blockcount" = ""; then
echo "FATAL ERROR: Blank blockcount" >&2
exit
fi
dd if=$RAW_DEV bs=$blocksize count=$blockcount conv=notrunc,noerror
Here is the portion comparison script, that calls 'rawread':
# Get the iso MD5
echo "Generating MD5 for $TARGET_FILE..."
ISO_MD5=`md5sum $TARGET_FILE | cut -d " " -f 1`
# Get the disc MD5
echo "Generating MD5 for CD/DVD..."
DISC_MD5=`${CDREC_DIR}/rawread $RAW_DEV | md5sum | cut -d " " -f 1`
echo ""
echo "ISO MD5: $ISO_MD5"
echo "DISC MD5: $DISC_MD5"
echo ""
echo -n "Verification: "
if [ "$ISO_MD5" = "$DISC_MD5" ] ; then
echo "PASSED"
exit 0
else
echo "FAILED"
exit 1
fi
I have been using this long before I used any gui burning utilities. It
has a good track record for me. Extracting the ISO information and
using the above dd options should catch any media errors occurring.
-Mark
--
Mr. Mark V. Stodola
Senior Control Systems Engineer
National Electrostatics Corp.
P.O. Box 620310
Middleton, WI 53562-0310 USA
Phone: (608) 831-7600
Fax: (608) 831-9591
|
|
|