Linux/CD Burning

From Omnia
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Coasterless CD Burning

Coasterless CD Burning

Installing Your ATAPI CDRW Drive in Linux

Accurately Reading a CD Device

Install mkisofs package:

yum install mkisofs

How to consistently read the correct number of blocks.

isoinfo -d -i /dev/cdrom

"Logical block size is: 2048" and "Volume size is: 329989"

dd if=/dev/cdrom of=image.iso bs=2048 count=329989 conv=notrunc,noerror

rawread script:

#!/bin/sh
device=$1

blocksize=`isoinfo -d -i $device | grep "^Logical block size is:" | cut -d " " -f 5`
if test "$blocksize" = ""; then
	echo catdevice FATAL ERROR: Blank blocksize >&2
	exit
fi

blockcount=`isoinfo -d -i $device | grep "^Volume size is:" | cut -d " " -f 4`
if test "$blockcount" = ""; then
	echo catdevice FATAL ERROR: Blank blockcount >&2
	exit
fi

command="dd if=$device bs=$blocksize count=$blockcount conv=notrunc,noerror"
echo "$command" >&2
$command

rawread /dev/cdrom > myiso.iso
rawread /dev/cdrom | md5sum

Writing a CD

Burn Ubuntu ISO:

cdrecord -v -dev /dev/cdrw  ubuntu-18.04.3-server-amd64.iso

Report SCSI number of your CDRW:

cdrecord -scanbus
cdrecord dev=ATA -scanbus

Blank CDRW:

cdrecord dev=0,0,0 speed=10 blank=fast padsize=63s -pad -dao -v -eject

Burn the CD from the ISO:

cdrecord dev=0,0,0 speed=10 padsize=63s -pad -dao -v -eject myimage.iso

Proper burning:

  • Burn at the right speed
  • Pad properly (padsize=63s and -pad)
  • Use disk at once (-dao)
  • Unless your burner prevents buffer underflow, do no other work while you're burning.

Make sure the CD is properly padded

cdrecord dev=0,0,0 speed=10 padsize=63s -pad -dao -v -eject /home/myuid/myiso.iso

Disk at Once

This argument helps clarify to CD readers where the last block is:

cdrecord dev=0,0,0 speed=10 padsize=63s -pad -dao -v -eject /home/myuid/myiso.iso

Summary

To burn a CD correctly, you must take care of the following:

  • Set up your burner correctly.
  • Burn at the right speed.
  • While burning, do not perform other CPU or disk intensive work, as it will cause buffer underflow on burners without underflow protection.
  • Always pad correctly with the padsize=63s and -pad argument to cdrecord. Without excellent reason, do not defeat the -pad default of the mkisofs program.
  • Always use disk at once. In the cdrecord program, you signify disk at once (session at once) with -dao.

Testing a CD

md5sum myiso.iso
rawread /dev/cdrom | md5sum

If they match, you've burned a winner.

Verifying an ISO

rawread /dev/cdrom > myiso.iso
rawread /dev/cdrom | md5sum
md5sum myiso.iso

CD Tools


 cdrecord dev=/dev/cdrw padsize=63s -pad -dao -v -eject myimage.isoBurn ISO image
 
 mkisofs -J -l -r -o foo.iso /path/to/some/directoryMake ISO
 cdrecord -dev=/dev/scd0 -speed=n -dao -pad -v foo.isoBurn ISO image
 
 gzip < /dev/cdrom > cdrom.iso.gzSave copy of data cdrom
 mkisofs -V LABEL -r dir | gzip > cdrom.iso.gzCreate cdrom image from contents of dir
 mount -o loop cdrom.iso /mnt/dirMount the cdrom image at /mnt/dir (read only)
 cdrecord -v dev=/dev/cdrom blank=fastClear a CDRW
 gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom -Burn cdrom image (use dev=ATAPI -scanbus to confirm dev)
 cdparanoia -BRip audio tracks from CD to wav files in current dir
 cdrecord -v dev=/dev/cdrom -audio *.wavMake audio CD from all wavs in current dir (see also cdrdao)
 oggenc --tracknum='track' track.cdda.wav -o 'track.ogg'Make ogg file from wav file

Mounting ISO Images

mount -o loop -t iso9660 <isofilename> <mountpoint>
mount /dev/cdrom /mnt/cdrom

Check if an old burned CD is still Good

CLI Magic: Is that CD still fresh?

cdck -i

Make an ISO Image

Make an ISO Image

dd if=/dev/dvd of=dvd.iso # for dvd
dd if=/dev/cdrom of=cd.iso # for cdrom
dd if=/dev/scd0 of=cd.iso # if cdrom is scsi

ISO, CDR, and CDRW in Linux

mkisofs -RJ -o image.iso /burndirectory/ 
mkisofs -J -o image.iso /burndirectory

dd if=/dev/cdrom of=image.iso
cat /dev/cdrom >image.iso

cdrecord -v dev=3,0,0 image.iso
mkdir /mnt/isotest
mount -t iso9660 /dev/cdrom /mnt/isotest -o loop
ls /mnt/isotest
# Setting up your system to work with cdrecord
# append="hda=ide-scsi"
cdrecord -scanbus

Command-line CD-ROM burning in Linux

mount -t iso9660 -o loop image.iso /mnt/isoimage
umount /mnt/isoimage
mkisofs -f -R -r -l -J -Vvolid  -Aappid  -Ppubid  -odest.iso  src

YoLinux Tutorial: Burning a CD or DVD

  • LOTS of details

CD-Writing HOWTO

  • Good Details

IBM: Burning CDs on Linux

  • Linux SCSI emulation adventures
cdrecord -v -tao -data speed=8 dev=/dev/hdc your_file.iso
cdrecord -dev=ATA:1,0,0 Desktop/berry-0.72.iso
cdrecord -dev=/dev/hdc Desktop/berry-0.72.iso

Notes

Linux 2.6 and the ide-scsi module

  • Do not use the ide-scsi module any more