Portál AbcLinuxu, 11. prosince 2025 15:02
Snadno a rychle, pomoci skriptu. Pro jadro 2.4 jsem pouzival SCSI emulaci (append hdc=ide-scsi v /etc/lilo.conf), u 2.6 sice funguje nativni ATAPI rozhrani, ale cdrecord v Ubuntu si s nim moc nerozumi. Tak pouzivam hnusny hack, viz. DEVICE=/dev/hdc. Skript by se mel spoustet s pravy roota, aby bylo mozne nastavit RR-sheduler (setpriority) a snizilo se tim riziko buffer underrunu.
Pouziti
Do adresare se pripravi data, ktera se maji palit a ten adresar se podstrci skriptu jako jediny parametr. Zbytek uz je snad blbovzdorny.
#!/bin/bash
if [ $# -ne 1 ]; then
echo "Usage: $0 DIRECTORY"
echo " Calls mkisofs and cdrecord to burn data in DIRECTORY to CD."
exit 1
fi
JOLIET_OPT=""
SPEED=10
DEVICE=/dev/hdc
#0,0,0
#ATAPI:0,0,0
MULTI_OPT="-multi"
ERASE_OPT=""
echo "CD burning tool"
echo "==============="
echo "Select media type: CD-R, CD-RW.[R/w]"
read MEDIA
if [ ${MEDIA}x = "w"x ]; then
SPEED=16
echo "Erase RW?[y/N]"
read ERASE
if [ ${ERASE}x = "y"x ]; then
cdrecord -v blank=fast -speed=$SPEED dev=$DEVICE
fi
fi
echo "Select content type: data, wav audio, ISO image.[D/a/i]"
read TYPE
# audio from wav
if [ ${TYPE}x = "a"x ]; then
cdrecord -v -dao -pad -audio -useinfo -speed=$SPEED dev=$DEVICE \
driveropts=burnproof `find "$1" -type f`
exit 0
fi
# directly iso
if [ ${TYPE}x = "i"x ]; then
cdrecord -v -tao -speed=$SPEED dev=$DEVICE \
driveropts=burnproof "$1"
exit 0
fi
# iso from data
echo "Use ISO Level 3 and Microsoft Joliet extensions?[y/N]"
read JOLIET
if [ ${JOLIET}x = "y"x ]; then
JOLIET_OPT="-iso-level 3 -J"
fi
mkisofs -r $JOLIET_OPT -o "$1".iso "$1"
cdrecord -v -tao $MULTI_OPT -speed=$SPEED dev=$DEVICE \
driveropts=burnproof "$1".iso
exit 0
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.