Date: Mon, 22 Sep 1997 23:55:45 +0200 (MESZ) From: Robert Eckardt <roberte@MEP.Ruhr-Uni-Bochum.de> To: hai@genesis4.sps.mot.com (Hai N) Cc: freebsd-questions@FreeBSD.ORG Subject: Re: CD Copy to worm device. Message-ID: <199709222155.XAA01626@ghost.mep.ruhr-uni-bochum.de> In-Reply-To: <3426D983.41C67EA6@genesis4.sps.mot.com> from Hai N at "Sep 22, 97 01:48:03 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
It was Hai N who wrote:
> Hello all,
> I have a simple question that perhaps someone can help me with.
> Can I use the dd command to copy files from a CD to a CD-R ? I would
> like to make backup copies for some of my CD(s).
>
> Would the below command work :
> dd if=/dev/cd0a of=/dev/worm0 bs=1024
No.
If your CDROM is fast enough and you have team installed, you might
find the following script for data CDs useful:
(cdio used to be necessary under 2.1.5/7 to reset the WORM, it ejects
and inserts the tray -- it doesn't hurt under 2.2.2 -- check its path.)
(Also, remember not to distribute your backups to friends, unless
allowed by copyright conditions.)
8<---8<---------------------------------------------------------------------
#!/bin/sh
#
# file: burncd
#
# written by: Darryl Okahata <darrylo@sr.hp.com>
# modified by: Robert Eckardt <roberte@mep.ruhr-uni-bochum.de>
#
# Used to control the writing process of data to a CD-R.
# Writes CD image (tested only cd9660-FS image) to the WORM.
usage()
{
echo "usage: `basename $0` [-bcsdovh] input-file"
echo " -b : do actually burn the CD, dummy run otherwise"
echo " -c : copy CDs"
echo " -s : use single speed"
echo " -d : use double speed (default)"
echo " -o : use \`onp' on fixate (untested)"
echo " -v : verbose, show each step"
echo " -h : help, show this message"
exit 1
}
error()
{
echo "`basename $0`: $1"
exit 1
}
# Uncomment this for the HP4020i:
VENDOR=HP
MODEL=4020i
# Uncomment this for the Plasmon RF4100:
#VENDOR=PLASMON
#MODEL=RF4100
# Defaults:
dummy="dummy"
speed="double"
onp=""
verbose="off"
copy="false"
file_defined="no"
file="/dev/rcd0c"
set -- `getopt "bcsdovh" $*`
if [ $? != 0 ]; then
usage
else
for i
do
case "$i"
in
"-b") dummy="";;
"-s") speed="single";;
"-d") speed="double";;
"-c") copy="yes"; file_defined="yes";;
"-o") onp="onp";;
"-v") verbose="on";;
"-h"|"-?") usage;;
"--") ;;
*) if [ "$file_defined" = "yes" ];then
error "only one file name allowed"
exit 1
else
file=$i
file_defined="yes"
fi;;
esac
shift
done
fi
if [ "$file_defined" = "no" ]; then
usage
#elif [ ! -f $file ]; then
# error "\`$file' is not a valid file."
# exit 1
elif [ "`id -u`" != "0" ]; then
error "Sorry, this must be done as root."
exit 1
fi
if [ "$dummy" = "dummy" ]; then
echo "Will only do a dummy run."
else
echo "*** Attention: Will actually burn the CD-R ! ***"
fi
echo -n "Place a blank CD in the writer and press return: "
read junk
if [ "$verbose" = "on" ]; then
echo "-- reset and select $VENDOR $MODEL"
fi
scsi -f /dev/rworm0.ctl -c "0 0 0 0 0 0" >/dev/null 2>&1
wormcontrol select $VENDOR $MODEL
if [ "$verbose" = "on" ]; then
echo "-- prepdisk $speed $dummy"
fi
# Change "double" to "single" to burn at single-speed.
wormcontrol prepdisk $speed $dummy
if [ "$verbose" = "on" ]; then
echo "-- track data"
fi
wormcontrol track data
if [ "$verbose" = "on" ]; then
echo "-- writing data to WORM"
fi
if [ "$copy" = "yes" ]; then
rtprio 5 dd if=$file ibs=32k | \
rtprio 5 team -v 1m 5 | \
rtprio 5 dd of=/dev/rworm0 obs=20k
else
rtprio 5 team -v 1m 5 < $file | rtprio 5 dd of=/dev/rworm0 obs=20k
fi
if [ "$verbose" = "on" ]; then
echo "-- fixate 1 $onp"
fi
wormcontrol fixate 1 $onp
if [ "$verbose" = "on" ]; then
echo "-- process finished."
fi
/root/bin/cdio
echo -n "Please remove the CD-R from the drive now and press return. "
read junk
8<---8<---------------------------------------------------------------------
#!/bin/sh
scsi -f /dev/rworm0.ctl -s 60 -c '1b 0 0 0 2 0'
sleep 5
scsi -f /dev/rworm0.ctl -s 8 -c '1b 0 0 0 3 0'
8<---8<---------------------------------------------------------------------
It is called (by root) simply as
`burncd -b -c'
or
`burncd -b CDROM-Image-File'.
It works for me with an hp4020i (WORM) and a Toshiba 3701 (7x CDROM).
Try a dummy run first to verify that you can indeed read all of the
source CD !
Robert
--
Robert Eckardt \\ FreeBSD -- solutions for a large universe.(tm)
RobertE@MEP.Ruhr-Uni-Bochum.de \\ What do you want to boot tomorrow ?(tm)
http://WWW.MEP.Ruhr-Uni-Bochum.de/~roberte
For PGP-key finger roberte@gluon.MEP.Ruhr-Uni-Bochum.de
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709222155.XAA01626>
