Von Arne
Heute beschreibe ich mal wie man unter Linux eine CD Brennen kann, und zwar nur mit Tools auf Konsolen-Ebene. Wir brauchen genau 2 Programme, die uns fast alles ermöglichen:
cdrecord
mkisofs
Sind beide Programme installiert und in einer ausreichend aktuellen Version vorhanden kanns losgehen.
Ich benutze die folgenden Versionen:
$ rpm -q cdrecord cdrecord-1.11-0.a32.1mdk $ rpm -q mkisofs mkisofs-1.15-0.a32.1mdk
Cdrecord ist nur in der Lage Iso-Images auf eine CD zu brennen, deshalb beschreibe ich zuerst wie man mit mkisofs ein Iso-Image erstellt. Hat man schon ein Iso-Image kann man unten weiterlesen.
Vorausgesetzt man hat sich schon überlget, welche Daten man brennen will, sollte man diese auf der Festplatte, so anordnen, wie sie auf der CD erscheinen sollen, d.h.Unterverzeichnisse usw. sollten schon angelegt sein. Ich nehme an, die Daten liegen in /mnt/daten und allen darunter leigenden Ordner. Außerdem sollte man vorher prüfen, dass die maximale Kapazität der CD nicht überschritten wird. Sind alle Voraussetzungen erfüllt kann es losgehen:
Wir erstellen das Iso-Image mit dem Befehl
$ mkisofs -o <outputfile> -J -r -v -V <diskname> /path/to/data
# mkisofs -o daten.iso -J -r -v -V daten_disk /mnt/daten mkisofs 1.15a32 (i586-mandrake-linux-gnu) Scanning /mnt/daten Writing: Initial Padbock Start Block 0 Done with: Initial Padbock Block(s) 16 Writing: Primary Volume Descriptor Start Block 16 Done with: Primary Volume Descriptor Block(s) 1 Writing: Joliet Volume Descriptor Start Block 17 Done with: Joliet Volume Descriptor Block(s) 1 Writing: End Volume Descriptor Start Block 18 Done with: End Volume Descriptor Block(s) 1 Writing: Version block Start Block 19 Done with: Version block Block(s) 1 Writing: Path table Start Block 20 Done with: Path table Block(s) 4 Writing: Joliet path table Start Block 24 Done with: Joliet path table Block(s) 4 Writing: Directory tree Start Block 28 Done with: Directory tree Block(s) 1 Writing: Joliet directory tree Start Block 29 Done with: Joliet directory tree Block(s) 1 Writing: Directory tree cleanup Start Block 30 Done with: Directory tree cleanup Block(s) 0 Writing: Extension record Start Block 30 Done with: Extension record Block(s) 1 Writing: The File(s) Start Block 31 1.68% done, estimate finish Thu Apr 24 19:33:39 2003 3.37% done, estimate finish Thu Apr 24 19:33:39 2003 [...] 95.88% done, estimate finish Thu Apr 24 19:33:13 2003 97.56% done, estimate finish Thu Apr 24 19:33:12 2003 99.24% done, estimate finish Thu Apr 24 19:33:12 2003 Total translation table size: 0 Total rockridge attributes bytes: 351 Total directory bytes: 0 Path table size(bytes): 10 Done with: The File(s) Block(s) 297217 Writing: Ending pad block Start Block 297248 Done with: Ending pad block Block(s) 16 Max brk space used 7864 297264 extents written (580 Mb)
# mkdir /mnt/iso && mount -t iso9660 -o ro,loop=/dev/loop0 daten.iso /mnt/iso
Nun haben wir ein Iso-Image welches auf die CD gebrannt werden soll. Eigentlich ist das jetzt der einfache Teil...
Mit dem Tool cdrecord lässt sich ein Iso-Image relativ leicht auf CD Brennen, die einzigste Hürde ist, dass man herausfinden muss, welches SCSI Device der CD Brenner ist. Übrigens wird unter Linux auch ein IDE Brenner als SCSI Device angesprochen, über eine Emulation die normalerweise im Kernel vorhanden sein sollte.
lsmod | grep scsi sollte Auschluß geben, ob das SCSI Modul im Kernel geladen ist.
# /sbin/lsmod | grep scsi ide-scsi 8212 0 scsi_mod 90372 3 [sd_mod sr_mod ide-scsi]
# cdrecord -scanbus Cdrecord 1.11a32 (i586-mandrake-linux-gnu) Copyright (C) 1995-2002 Jörg Schilling Linux sg driver version: 3.1.24 Using libscg version ‘schily-0.6‘ scsibus0: 0,0,0 0) * 0,1,0 1) * 0,2,0 2) * 0,3,0 3) ‘PHILIPS ‘ ‘PCRW1208 ‘ ‘ 1.2‘ Removable CD-ROM 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) *
# cdrecord -v -eject speed=12 dev=0,3,0 daten.iso Cdrecord 1.11a32 (i586-mandrake-linux-gnu) Copyright (C) 1995-2002 Jörg Schilling TOC Type: 1 = CD-ROM scsidev: ‘0,3,0‘ scsibus: 0 target: 3 lun: 0 Linux sg driver version: 3.1.24 Using libscg version ‘schily-0.6‘ atapi: 1 Device type : Removable CD-ROM Version : 0 Response Format: 1 Vendor_info : ‘PHILIPS ‘ Identifikation : ‘PCRW1208 ‘ Revision : ‘ 1.2‘ Device seems to be: Generic mmc CD-RW. Using generic SCSI-3/mmc CD-R driver (mmc_cdr). Driver flags : SWABAUDIO Supported modes: TAO PACKET RAW/R16 RAW/R96R Drive buf size : 3244032 = 3168 KB FIFO size : 4194304 = 4096 KB Track 01: data 580 MB Total size: 666 MB (66:03.54) = 297266 sectors Lout start: 667 MB (66:05/41) = 297266 sectors Current Secsize: 2048 ATIP info from disk: Indicated writing power: 5 Is not unrestricted Is not erasable Disk sub type: Medium Type B, low Beta category (B-) (4) ATIP start of lead in: -11644 (97:26/56) ATIP start of lead out: 359849 (79:59/74) Disk type: Short strategy type (Phthalocyanine or similar) Manuf. index: 10 Manufacturer: Lead Data Inc. Blocks total: 359849 Blocks current: 359849 Blocks remaining: 62583 Starting to write CD/DVD at speed 12 in real TAO mode for single session. Last chance to quit, starting real write in 0 seconds. Operation starts. Waiting for reader process to fill input buffer ... input buffer ready. Performing OPC... Starting new track at sector: 0 Track 01: 580 of 580 MB written (fifo 100%) [buf 97%] 12.6x. Track 01: Total bytes read/written: 608796672/608796672 (297264 sectors). Writing time: 348.138s Fixating... Fixating time: 23.645s Average write speed 11.8x. Min drive buffer fill was 95% cdrecord: fifo had 9590 puts and 9590 gets. cdrecord: fifo was 0 times empty and 4788 times full, min fill was 93%.
Nun haben wir ein fertig gebranntes Iso-Image auf der CD. Wir werden die CD nun mounten um zu testen, ob alles richtig geklappt hat.
Wir benutzen den Befehl mount:
# mount /dev/cdrom /mnt/cdrom
# umount /mnt/cdrom
Wir haben es bis jetzt geschafft Iso-Images zu erstellen und auf CD zu brennen, das direkte kopieren einer CD bleibt als Übung für den Leser offen.
Dieses How-To wurde unter Mandrake 9.0 entwickelt und getestet. Die Unterschiede zu anderen Distributionen sollten sich in Grenzen halten. Größere Unterschiede gibt es nur mit dem neuen 2.6er Kernel, hier wird beim Cd-brennen keine Scsi-Emulation mehr benötigt.