Portál AbcLinuxu, 4. května 2025 15:33
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.