4.3. CD Burners and Linux

4.3.1. Hardware detection

The tools available on the commandline to burn CDs assume that the CD writer is a SCSI device. However most cheaper CD burner are IDE devices. The 2.4 kernel gets around this by providing a ide-scsi.o module to drive the CD burner device.

If you run cdrecord with the -scanbus option you will see that the tool is looking for a SCSI device.

If the CD burner is attached as a secondary master (/dev/hdc) then the following entry in /etc/modules.conf will enable the ide-scsi module for this device:

# /etc/modules.conf  (from the CD-Writing HOWTO)
options ide-scsi=/dev/hdb
options ide-cd ignore=hdb
alias scd0 sr_mod
pre-install sg     modprobe ide-scsi     # load ide-scsi before sg
pre-install sr_mod modprobe ide-scsi # load ide-scsi before sr_mod
pre-install ide-scsi modprobe ide-cd   # load ide-cd  before ide-scsi

The device will be seen as /dev/scd0 and can be added to /etc/fstab with its own mount point.

The following command shows that the hardware has been correctly detected:

cdrecord -scanbus
Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jorg Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.7'
cdrecord: Warning: using inofficial libscg transport code version (schily - Red Hat-scsi-linux-sg.c-1.75-RH '@(#)scsi-linux-sg.c        1.75 02/10/21 Copyright 1997 J. Schilling').
scsibus0:
        0,0,0     0) 'PHILIPS ' 'CDRW48A         ' 'P1.3' Removable CD-ROM
        0,1,0     1) *
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *

4.3.2. Burning an IsoImage

The cdrecord tool can record either data or sound files.

cdrecord  [ general options ] dev=device  [ track options ] track1...trackn

4.3.2.1. The Device

From the output of cdrecord -scanbus we will use the device dev=0,0,0 for our examples.

4.3.2.2. Main general options

speed

specify the speed of the CD burner, eg speed=8

-eject

eject the CD when the recording is done

-multi

start multi session recording. This option must be used with each multi session recording

4.3.2.3. Main track options

-data

the track contains data

-audio

the track is an audio file (.au, .wav or .cdr)

4.3.2.4. Data Recording

cdrecord -v speed=2 dev=0,0,0 -data cd_image.iso

4.3.2.5. Audio Recording

cdrecord -v speed=2 dev=0,0,0 -audio *.wav

4.3.2.6. Mixed Recording

cdrecord -v speed=2 dev=0,0,0 -data cd_image.iso -audio *.wav  

4.3.3. ISO9660 Filesystem and burning CDs

From Wikipedia, the free encyclopedia: [1]

ISO 9660, a standard published by the International Organization for Standardization, defines a file system for CD-ROM media. It aims at supporting different computer operating systems such as Microsoft Windows, Mac OS, and systems that follow the Unix specification, so that data may be exchanged.

Levels and restrictions. There are different levels to this standard.

Level 1. File names are restricted to eight characters with a three-character extension, upper case letters, numbers and underscore; maximum depth of directories is eight

Level 2. File names may be up to 31 characters

Level 3. Files allowed to be fragmented (mainly to allow packet writing, or incremental CD recording).

Extensions. There are common extensions to ISO 9660 to deal with the limitations. Rock Ridge supports the preservation of Unix/Linux permissions and longer ASCII-coded names; Joliet supports names stored in Unicode, thus allowing almost any character to be used, even from non-Latin scripts; El Torito enables CDs to be bootable.

ISO 13490 is basically ISO 9660 with multisession support.

4.3.3.1. Creating a CD Image

Store all the data that need to be copied in a separated directory (e.g backups/). We next need to create an isoimage of this directory as follows:

mkisofs -o baskups-image.iso backups/

Check the image file by mounting it as a loop device:

mount -o loop backups-image.iso /mnt
ls /mnt
umount /mnt

Finally, burn the CD with cdrecord. From the output of cdrecord -scanbus on the previous page we see that the CD writer device is seen as dev=0,0,0 so we type:

cdrecord -v dev=0,0,0 backups-image.iso


[1] This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article ISO_9660