7.4. Brænde cd med cdrecord

Det bliver nu gennemgået, hvorledes man kan brænde en cd udelukkende ved hjælp af cdrecord, altså uden en grafisk overbygning. Det forudsættes at brænderen er sat op og virker. Vi kan derfor, som omtalt i kapitlets indledning, finde brænderens nummer ved hjælp af kommandoen cdrecord -scanbus.

[root@linus /]# cdrecord -scanbus
Cdrecord 2.0 (i586-mandrake-linux-gnu) Copyright (C) 1995-2002 Jörg Schilling
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.7'
scsibus0:
        0,0,0     0) 'PIONEER ' 'CD-ROM DR-744   ' '1.02' Removable CD-ROM
        0,1,0     1) 'LITE-ON ' 'LTR-12101B      ' 'LS3J' Removable CD-ROM
        0,2,0     2) *
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *

Brænderen har i dette tilfælde nummeret 0,1,0, og dette nummer bruges i de følgende eksempler, hvor der angives dev=0,1,0. Der skal muligvis skiftes ud med et andet nummer, som man selv kan finde med cdrecord -scanbus.

7.4.1. Cd brændes

For at kunne brænde en cd skal man typisk have en såkaldt iso-fil, også kaldet et cd-image. En iso-fil er en samling af alle de filer, der skal ende på cd'en, pakket sammen i en enkelt fil. Man kan hente en del iso-filer på nettet; for eksempel består mange Linux-distributioner af omkring 3 iso-filer, som man kan hente og siden brænde. Da en iso-fil indeholder alt det, der skal ende på en cd, vil den ofte være ret stor - op til de omkring 700MB, der kan være på en cd.

Man kan også lave sine egne iso-filer, hvor man helt selv bestemmer indholdet, og dermed hvad der kommer på cd'en. Mere om dette senere.

Når man har en iso-fil, man gerne vil have brændt, sker det ved hjælp af en kommando som følgende:

[root@linus /]# cdrecord speed=16 dev=0,1,0 iso-fil

Dette starter cdrecord, som med 16 gange hastighed vil bruge brænderen med nummer 0,1,0 til at brænde indholdet af filen iso-fil. Selve iso-fil kan være hvad som helst, men navnet vil ofte ende på .iso; eksempelvis går den første cd til en Red Hat 7.3 installation under navnet valhalla-i386-disc1.iso.

Der er mange muligheder for at ændre virkemåden af cdrecord. Specielt kan det være interessant at udvide kommandoen ovenfor med -v. Herved vil cdrecord fortælle lidt mere om, hvad der foregår under brændingen. Endvidere kan -eject være nyttig, da den bevirker at drevet spytter cd'en ud når den er brændt færdig. Gennem man cdrecord kan man læse om alle de øvrige muligheder.

7.4.2. Fremstilling af en iso-fil

Det kan være nyttigt nok at brænde iso-filer, man har hentet, men det er også meget rart selv at kunne bestemme indholdet af den cd, man brænder. For at kunne det, må man selv lave en iso-fil. Til det formål bruges programmet mkisofs, som er nært knyttet til cdrecord - men mkisofs skal installeres som et seperat program. I mkisofs er der endnu flere indstillingsmuligheder end i cdrecord, og her gennemgås kun de mest grundlæggende. Alle mulighederne er beskrevet i manualen, som fås frem med kommandoen man mkisofs.

Når man skal lave en iso-fil er det letteste at lave et katalog, hvor man samler alle de filer, man vil have brændt. Man kan så kopiere filer frem og tilbage, indtil man synes at der er det indhold, man gerne vil have på den færdige cd. I det følgende vil vi bruge kataloget /cd/ som et sådant samlingssted.

På en cd kan der normalt være 650MB data; nogle cd-typer kan indeholde lidt mere. Det er vigtigt, at man ikke forsøger at brænde mere på en cd, end der er plads til. Derfor kan kommandoen du være til god nytte, mens man fylder /cd/ op med data. Man får her et godt overslag på, hvor meget diskplads kataloget bruger:

[root@linus /]# du -sh /cd/
141M    /cd

I dette tilfælde er der brugt cirka 141MB, og der er altså plads til omtrent yderligere 500MB. Målene skal tages med et gran salt; på grund af afrunding og administration forbundet med brændingen er det svært at sige præcis hvornår en cd er helt fyldt. Hvis man sørger for ikke at have mere end 620MB i sit katalog er man på den sikre side, men som regel vil man også have held med at klemme lidt mere ind.

Når man mener at kataloget er, som cd'en gerne skal ende med at se ud, kan man lave en iso-fil som indeholder filerne i kataloget:

[root@linus /]# mkisofs -r -J -o min.iso /cd/

I dette eksempel får iso-filen navnet min.iso, og den indeholder alle filerne fra /cd/. En normal cd indeholder kun kastrerede filnavne. Med -r angiver man at der desuden skal gemmes de fulde filnavne, i en form som Linux forstår. Tilsvarende betyder -J at filnavnene gemmes i fuld længde i en form, som Windows forstår. Hvis man på forhånd ved, at cd'en kun skal bruges på ét af operativsystemerne, kan man selvfølgelig undlade de fulde filnavne til det modsatte system. Som regel er det dog en dårlig idé, da man risikerer at stå i en uventet situation en skønne dag, og så har man pludselig kun de kastrerede filnavne til rådighed.

Efter ovenstående fremgangsmåde har man en iso-fil, som kan brændes på den måde, der blev beskrevet i det foregående afsnit. Hvis man vil være helt sikker på, at indholdet er, som man forventer, kan man teste indholdet af iso-filen inden den brændes. Hvis man har kataloget /mnt/iso/ kan iso-filen monteres herpå ved hjælp af følgende kommando:

[root@linus /]# mount -t iso9660 -o ro,loop min.iso /mnt/iso

I /mnt/iso/ kan det tjekkes at indholdet af iso-filen er som man forventer. Filen afmonteres igen med kommandoen umount /mnt/iso, og man er helt klar til at brænde. Eller man kan lave en ny iso-fil, hvis man fandt et problem med den første.

Når man bliver mere vant til at lave egne cd'er, synes man nok ikke at det er nødvendigt at tjekke indholdet inden brænding. Man kan i sådan et tilfælde helt undlade at lave en iso-fil, og i stedet lade cdrecord læse sine data direkte fra mkisofs. Det sparer både lidt tid og noget plads på harddisken. En sådan kombineret kommando ser eksempelvis således ud:

[root@linus /]# mkisofs -r -J /cd/ | cdrecord speed=16 dev=0,1,0 -

Bemærk her både tegnet |, som forbinder de to kommandoer, og tegnet -, som fortæller cdrecord at den ikke skal læse fra en fil, men blot bruge de data, den modtager fra mkisofs. Fordi der ikke bruges -o min.iso ved mkisofs vil den heller ikke gemme i en fil, men blot sende direkte til cdrecord.

7.4.3. Musik-cd brændes

Hvis man vil lave en cd med musik, som kan afspilles i et normalt stereoanlæg, skal man ikke bruge en iso-fil. I stedet skal man sørge for at den musik, man ønsker på sin cd, findes på harddisken i wav-format; der skal være én fil for hvert nummer, man vil have på den færdige cd.

Er udgangspunktet for cd'en komprimeret musik i form af mp3- eller ogg-filer, skal disse derfor først laves om til wav-filer. De fleste programmer til at afspille komprimerede filer har mulighed for at lave en wav-fil i stedet for at afspille lyden. Hvis man for eksempel har filen Hestevise.mp3 kan den laves om til Hestevise.wav ved hjælp af programmet mpg123:

[tyge@hven musik]$  mpg123 -w Hestevise.wav Hestevise.mp3

På tilsvarende vis kan filen Ulilang.ogg laves om til Ulilang.wav ved hjælp af ogg123:

[tyge@hven musik]$ ogg123 -d wav -f Ulilang.wav Ulilang.ogg

Denne konvertering til wav-filer skal gøres for hver enkelt nummer, der skal med på cd'en.

Ligger musikken, der skal brændes, på en musik-cd i forvejen (og der altså skal laves en kopi) kan det selvstændige program cdparanoia bruges til at danne de nødvendige wav-filer ud fra original cd'en. Med originalen i cd-drevet kan man med følgende kommando få de enkelte numre gemt i filerne track01.cdda.wav, track02.cdda.wav og så videre. Operationen kan tage lang tid; dette afhænger meget af hvilken model cd-drev, der anvendes.

[tyge@hven musik]$ cdparanoia -B 1-

Hvis ikke hele cd'en skal kopieres, kan man også nøjes med at overføre et enkelt nummer. For eksempel kan nummer fire dannes i filen track04.cdda.wav med kommandoen cdparanoia -B 4. Det kan være en god idé at give filerne et mere sigende navn når de er blevet overført.

Når alle de numre, der skal på musik-cd'en, ligger som wav-filer, er de klar til at blive brændt. Da alle filerne nu er wav-filer, er det herefter ligegyldigt hvorvidt filerne oprindeligt kom fra komprimerede mp3- eller ogg-filer, fra en eller flere cd'ere, eller en kombination af det hele. Wav-filerne kan brændes til en cd med følgende kommando:

[root@linus musik]# cdrecord speed=16 dev=0,1,0 track01.cdda.wav track02.cdda.wav

Hver enkelt musikfil, som skal med på cd'en, angives i denne kommando. I dette eksempel vil cd'en derfor komme til at bestå af blot to numre. På den færdige cd kommer numrene til at ligge i samme rækkefølge, som man angiver filnavnene i. Ofte er man ikke ligeglad med den endelige orden, og derfor må man nøje overveje den rækkefølge, man angiver wav-filerne i.

Normalt bliver der indsat en pause på cirka to sekunder mellem hvert nummer på cd'en. Dette er ofte intet problem, men hvis man laver en kopi af en cd hvor de enkelte numre glider sammen, kan pausen i kopien være meget irriterende. Problemet gør sig især gældende ved live-optagelser. Pausen mellem numrene kan undgås ved at bruge "disk at once" brænding, hvor hele cd'en brændes i én køre, modsat normal "track at once" brænding, hvor de enkelte numre brændes individuelt og altså med en lille pause imellem. "Disk at once" brænding aktiveres ved hjælp af -dao og det tidligere eksempel ser så ud som følger:

[root@linus musik]# cdrecord speed=16 dev=0,1,0 -dao track01.cdda.wav track02.cdda.wav

7.4.4. Brænding af cd med både musik og data (CD-Extra)

Man kan lave en cd, som indeholder både musik og data. Når sådan en cd bruges i en almindelig cd-afspiller virker den som en musik-cd, og når den bruges i en computer er den en data-cd. Princippet kendes fra kommercielle musik-cd'er, som af og til indeholder lidt ekstra guf hvis man sætter dem i en computer (der dog som oftest skal køre operativsystemet Windows). Denne måde at fremstille en cd på kaldes CD-Extra, og foregår i to omgange.

Først laves en musik-cd som normalt, men der skal tilføjes -multi ved brændingen. Dette bevirker, at cd'en ikke bliver lukket, og det er derfor muligt at tilføje mere senere hen:

[root@linus musik]# cdrecord -speed=16 dev=0,1,0 -multi track01.cdda.wav track02.cdda.wav

I forlængelse af musikken skal der brændes en iso-fil. Denne iso-fil laves på en speciel måde, således at den ikke bliver placeret i starten af cd'en. Derfor må man først finde ud af, nøjagtig hvor musikken slutter. Det kan cdrecord heldigvis aflæse, når man har brændt første del af cd'en. Med cd'en stadig i brænderen bruger man -msinfo:

[root@linus musik]# cdrecord dev=0,1,0 -msinfo
0,25654

Der udskrives to tal, som udtrykker størrelsen på den allerede brændte del af cd'en. Man behøver ikke bekymre sig om tallenes værdi, men blot overføre dem direkte til mkisofs med -C argumentet:

[root@linus /]# mkisofs -r -J -o min.iso -C 0,25654 /cd/

Med -C bliver iso-filen fremstillet på en måde så den passer ind netop efter den allerede brændte musik. Filen kan derfor brændes som normalt, uden at den vil blive lagt oven i musikken:

[root@linus /]# cdrecord -speed=16 -eject dev=0,1,0 min.iso

Nu indeholder cd'en både musiknumrene og iso-filen, og er dermed en færdig CD-Extra cd. I eksemplet er tilføjet -eject for at cd-rom-drevet åbnes efter brændingen.