CD-Writing HOWTO

v2.9.3, 23 juli 2000

In dit document wordt uitgelegd hoe CD-ROM's onder Linux te schrijven.

IntroductieVeel mensen gebruiken Linux om CD-ROM's te branden, omdat het betrouwbaar en makkelijk is. Geen blauwe schermen tijdens het branden en geen hoofdpijn om de juiste combinatie hard- en software te krijgen. Het werkt gewoon wanneer het eenmaal juist is ingesteld. In de CD-writing wordt een uitleg gegeven van de setup, hoe data op de media geplaatst kan worden en er worden interessante applicaties besproken waarin lezers zo aardig waren in te voorzien.

Copyright, licentie en gebruiksvoorwaardenCopyright Winfried Trümper 1996-2000. All rights reserved.Herdistributie en gebruik, met of zonder aanpassingen zijn toegestaan op voorwaarde dat de naam van de auteur niet mag worden gebruikt als erkenning van producten of om producten te promoten die zijn afgeleid van deze software zonder nadrukkelijke voorafgaande geschreven permissie. In deze zin zijn vertalingen welkom en hoeft hiervoor geen toestemming aan mij te worden gevraagd.De auteur doet afstand van alle rechtvaardigingen met betrekking tot dit document, waaronder alle impliciete garanties of verkoopbaarheid en geschikheid voor een bepaald doel; in geen geval zal de auteur aansprakelijk zijn voor enig speciale, indirecte of gewichtdoende beschadigingen of enige beschadingen hoe dan ook resulterend uit het verlies door gebruik, gegevens of winsten, in een actie of contract, nalatigheid of andere slordige actie, voortkomend uit of in verband zijnde met het gebruik van dit document.Samengevat: lees en gebruik op eigen risico. Geen geld-terug garantie. Als je wilt begrijpen waarom dit document altijd een nogal zwakke licentie heeft gehad en niet onder de gnu GPL of vergelijkbare beperking is geplaatst, dan zou je dit artikel van het Duitse computermagazine c't moeten lezen: (thans alleen in het Duits).
Linux-systeemsetup voor het beschrijven van CD-ROM'sDeze sectie is van toepassing op de volgende typen CD-writers: SCSI, IDE/ATAPI en de devices voor de parallelle poort. USB CD-writers worden niet ondersteund as of May 2000. Voor niet-SCSI writers zijn compatibiliteitsdrivers nodig, welke ze laat verschijnen alsof het echte SCSI-devices zijn. Aan de ene kant is een dergelijke uniforme strategie makkelijk ("alles is SCSI"), omdat op applicatieniveau je je kennis met andere gebruikers kunt delen ongeacht hun soort CD-writer. Aan de andere kant moet je applicaties zoals audio spelers of het mount utility herconfigureren om de wijziging van de naam van de driver weer te geven. Als je eerder bijvoorbeeld je ATAPI CD-writer via het device bestand /dev/hdc benaderde, dan moet je het na het activeren van de SCSI compatibiliteit drivers benaderen via /dev/scd0.Zodra het je is gelukt je hardware en de rest van je Linux-systeem in te stellen, dan toont de opdracht cdrecord -scanbus je een lijst met devices op je SCSI bussen. Het doel van deze sectie dient om je te begeleiden bij het instellen van je Linux-systeem, zodat je uiteindelijk iets te zien zult krijgen als:shell> cdrecord -scanbus Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling scsibus0: 0,0,0) 'Quantum ' 'XP34300 ' 'F76D' Disk 0,1,0) 'SEAGATE ' 'ST11200N ' '8334' Disk 0,2,0) * 0,3,0) 'TOSHIBA ' 'MK537FB/ ' '6258' Disk 0,4,0) 'WANGTEK ' '5150ES SCSI 36 ' 'ESB6' Verwijderbare Tape 0,5,0) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Verwijderbare Tape 0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Verwijderbare CD-ROM 0,7,0) * scsibus1: 1,0,0) 'Quantum ' 'XP31070W ' 'L912' Disk 1,1,0) * 1,2,0) * 1,3,0) 'TEAC ' 'CD-R55S ' '1.0H' Verwijderbare CD-ROM 1,4,0) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Verwijderbare CD-ROM 1,5,0) * 1,6,0) 'YAMAHA ' 'CDR400t ' '1.0d' Verwijderbare CD-ROM 1,7,0) *Detecteren van devices op je SCSI-busDit voorbeeld werd aangeleverd door Jörg Schilling en het toont een totaal van vier CD-writers. Houd alsjeblieft in de gaten dat -scanbus ook andere devices rapporteert, b.v. reguliere CD-ROM's en harddisk drives. De laatste kolom geeft de SCSI beschrijving van het device, waaruit je niet af kunt leiden wat de gewone CD-ROM drives en die met de mogelijkheid te branden zijn. Maar de productidentificatie (middelste kolom) geeft vaak aanwijzingen in de vorm van een R, -R of -RW.

SnelstartDeze sectie is een poging te voorzien in een snelle en makkelijke beschrijving van de configuratie. Niet alle mogelijke setups worden behandeld, maar ga alsjeblieft tot het einde door en probeer het hoe dan ook uit. Kijk als eerste welke kernelversie door de opdracht "uname -r" wordt afgedrukt. Het zou iets moeten zijn als 2.0.x of 2.2.Y, waar X een hoger nummer is dan 36 en Y een hoger nummer dan 11. Als je oudere versies of de zogenoemde ontwikkelaarskernels gebruikt dan ben je op jezelf aangewezen. Het installeren van een nieuwe kernel is net zoveel werk als het corrigeren van een oude kernel, dus heb ik alle aanwijzingen die je nodig hebt voor kernels met fouten verwijderd.De listing hieronder toont een set opdrachten om mee te beginnen. De opdrachten maken device files aan onder /dev tenzij ze reeds voorkomen.test `whoami` = 'root' || echo "Je moet root zijn om de opdrachten uit te voeren" cd /dev/ umask -S u=rwx,g=rwx,o-rwx [ -f loop0 ] \ || ./MAKEDEV loop \ || for i in 0 1 2 3 4 5 6 7; do mknod loop$i b 7 $i; done [ -f sg0 -o -f sga ] \ || ./MAKEDEV sg \ || for i in 0 1 2 3 4 5 6 7; do mknod sg$i c 21 $i; doneAanmaken van devicefilesToegang tot de hardware wordt onder Linux gewoonlijk geïmplementeerd via devicefiles. Dus voor je ook maar iets doet, moet je er zeker van zijn dat die bestanden onder /dev voorkomen. Nog steeds heeft niemand me een boeiende reden kunnen geven waarom dit niet is geautomatiseerd via technieken als het device filesystem (devfs). Het devfs is reeds jaren beschikbaar, het geeft een veiliger (!) en veel duidelijkere benaming aan devices en het maakt dat de device entries automatisch onder /dev verschijnen. Een aantal mensen beargumenteren dat devfs niet de perfecte oplossing is, maar ze komen ook niet met iets beters, zelfs niet met iets vergelijkbaars, en als laatste maar niet als minste, niets dat nu beschikbaar is en getest. Laten we beginnen devfs te gebruiken, zodat we de bovenstaande opdrachten uit dit document kunnen verwijderen. ()Het volgende is dat de Linux kernel moet zijn uitgerust met de benodigde drivers. De volgende opdrachten controleren diverse bestanden op de aanwezigheid van drivers in de actieve kernel. Gewoonlijk brengt de opdracht "cdrecord -scanbus" het automatisch laden van alle drivers teweeg. In geval een driver niet in de kernel aanwezig is, wordt het daarna gemeld en de gemodulariseerde driver (module) wordt handmatig via insmod geladen.test `whoami` = 'root' || echo "Je moet root zijn om de opdrachten uit te voeren." cdrecord -scanbus > /dev/null if ! (pidof kerneld || test -f "/proc/sys/kernel/modprobe"); then echo "Noch kerneld noch kmod zijn actief om automatisch modules te laden". fi report_no_autoload() { echo "Zorg dat de module $1 de volgende keer automatisch is geladen." } if test ! -f "/proc/scsi/scsi"; then report_no_autoload scsi_mod && insmod scsi_mod fi if ! grep "^........ sg_" /proc/ksyms > /dev/null; then report_no_autoload sg && insmod sg fi if ! grep "^........ sr_" /proc/ksyms > /dev/null; then report_no_autoload sr_mod && insmod sr_mod fi if ! grep "^........ loop_" /proc/ksyms > /dev/null; then report_no_autoload loop && insmod loop fi if ! grep iso9660 /proc/filesystems > /dev/null; then report_no_autoload iso9660 && insmod iso9660 fi echo "Het volgende is alleen nodig voor IDE/ATAPI CD-writers." if ! grep ide-scsi /proc/ide/drivers > /dev/null; then report_no_autoload ide-scsi && insmod ide-scsi fi cdrecord -scanbusTesten op driversLees alsjeblieft het volgende hoofdstuk door als insmod foutmeldingen retourneert over het ontbreken van modulebestanden. In tekstmodus (console) kan het laden van modules een aantal meldingen op je scherm tot gevolg hebben. In grafische modus (X11, KDE, Gnome) kun je deze meldingen herroepen met de opdracht dmesg.Er zijn verscheidene manieren om de modules de volgende keer dat je je Linux systeem opstart kun starten:(1) Plaats de relevante insmod opdracht in de opstartreeks (een shellscript genaamd rc.local of equivalent). (2a) Start kerneld of kmod op en (2b) configureer ze in /etc/modules.conf (wat nauwkeuriger: je configureert het utility modprobe, welke wordt aangeroepen door de daemons)Mensen met een SCSI-writer kunnen de rest van deze sectie overslaan, omdat cdrecord hun hardware zeer waarschijnlijk al detecteert. Stuur me alsjeblieft een e-mail met wat informatie over je setup als dit niet zo is, zodat ik de sectie over SCSI-writers kan verbeteren.Nu terug naar de mensen met CD-writers voor IDE/ATAPI. Zoals eerder aangegeven, moet je de compatibiliteitendriver ide-scsi laden. Maar deze driver kan je CD-Writer alleen benaderen als nog geen enkele andere driver dit heeft gedaan. Met andere woorden: je moet de reguliere IDE-driver aangeven je CD-Writer als niet herkend te laten, zodat de ide-scsi het af kan vangen.hda = IDE bus/connector 0 master device hdb = IDE bus/connector 0 slave device hdc = IDE bus/connector 1 master device hdd = IDE bus/connector 1 slave deviceBestandsnamen van IDE/ATAPI devicesDe tabel hierboven toont de relatie van bestandsnamen voor devices met de plaatsing van de devices op de IDE-bussen. De bestandsnaam van het device die je CD-Writer voorstelt moet worden doorgegeven aan de driver in de Linux-kernel. Bijvoorbeeld: hdb=ide-scsi. Een dergelijke instelling zou moeten worden toegevoegd aan lilo.conf of chos.conf als de driver statisch in je kernel is gecompileerd, wat de meest gebruikelijke setup blijkt te zijn. Wanneer je meer dan één parameter aan de kernel door moet geven, dan scheidt je ze door middel van spaties (zoals in het chos voorbeeld). De volgende twee listings laten je voorbeeldconfiguraties zien met meer regels dan de relevante append-regel. De append- en cmdline-regels zijn image-specifiek (dwz dat je ze niet onmiddellijk bovenaan moet vermelden).image=/boot/zImage-2.2.14 label=Linux read-only append="hdb=ide-scsi"Voorbeeldconfiguratie voor lilo (/etc/lilo.conf)linux "Linux 2.1.14" { image=/boot/zImage-2.0.37 cmdline= root=/dev/hda5 readonly hdb=ide-scsi }Voorbeeldconfiguratie voor chos (/etc/chos.conf)Als de driver voor IDE/ATAPI CD-ROM's als een module is geladen, dan maakt het bovenstaande geen verschil, maar zorg dat je de options regel uit de volgende listing opneemt. De laatste drie regels uit die listing worden gewoonlijk aanbevolen om het laden van de vereiste modules verder te automatiseren.options ide-cd ignore=hdb # vertel de ide-cd module hdb te negeren alias scd0 sr_mod # laad sr_mod voor toegang tot scd0 #pre-install ide-scsi modprobe imm # onbecommentarieer alleen bij een aantal ZIP-drives pre-install sg modprobe ide-scsi # laad ide-scsi voor sg pre-install sr_mod modprobe ide-scsi # laad ide-scsi voor sr_mod pre-install ide-scsi modprobe ide-cd # laad ide-cd voor ide-scsiVoorbeeldconfiguratie voor /etc/modules.confAls je CD-writer de enige CD-ROM is die op je machine is aangesloten, denk er dan aan dat je de CD-ROM in de writer moet benaderen via het device bestand /dev/scd× waar ×=0,..,8. Je kunt de symbolische naam cdrom laten verwijzen naar de nieuwe bestandsnaam van het device. In de listing hieronder wordt getoond hoe je dit kunt bereiken met het voorbeeld scd0.cd /dev && rm cdrom && ln -s scd0 cdromMaak cdrom een symbolische naam voor scd0Wijzig de cdrom symlink niet als je CD-writer en CD-ROM station twee verschillende apparaten zijn.

Speciale notities over SCSI CD-writersZorg dat je writer door de BIOS van je SCSI hostadapterkaart wordt herkend. Elke SCSI hostadaptor scant de SCSI-bus als de computer wordt aangezet. en rapporteert alle devices die het vindt die op de bus zijn aangesloten. In dit verslag zijn de SCSI-ID's van de devices en hun productlabel opgenomen. Het heeft geen zin verder te gaan als je CD-writer niet in dit verslag is weergegeven.Als je van plan bent je SCSI-device op de parallelle poort aan te sluiten (niet te verwarren met de IDE-drives voor de parallelle poort), dan heb je een speciale active kabel en een speciale kerneldriver nodig. Lees om meer te leren over deze optie.

Speciale opmerkingen over CD-writers voor de parallelle poortIk heb hier geen idee van, sorry. Lees alsjeblieft of het lokale bestand /usr/src/linux/Documentation/paride.txt.

Compileren van ontbrekende kernelmodules (optioneel)Je hoeft deze sectie niet te lezen als je hardware reeds met succes is herkend en is geconfigureerd door de eerder beschreven configuratiestappen.De Linux kernel kan zijn uitgerust met drivers voor diverse features. Je kunt de drivers in het kernelimage statisch compileren of je kunt ze als module compileren waarbij je ze op verzoek laadt. De laatste methode heeft de voorkeur voor drivers die niet essentieel zijn om je Linux systeem tot leven te brengen, omdat ze kernel dan kleiner en sneller zal zijn. Een aantal drivers zijn echter essentieel voor de werking van het systeem en die moet je dus niet als module compileren. Een voorbeeld: als je systeem op een IDE harddisk is geïnstalleerd, dan moet de driver voor de IDE harddisk in de kernel zijn gecompileerd, niet als een module.Er zijn drie verschillende typen CD-writers: SCSI, IDE/ATAPI en externe writers die via de parallelle poort werken. In de tabel wordt getoond hoe de Linux kernel voor die hardwaretypen te configureren. De eerste kolom van de tabel geeft de sectie aan van het kernelconfiguratiemenu,waar je de betreffende instelling kunt vinden. De tweede kolom is de beschrijving van de feature (ook uit het kernelconfiguratiemenu). De derde kolom geeft de naam van de resulterende module. De kolommen genaamd SCSI, IDE en PP bevatten de benodigde opties voor de betreffende hardware (PP = parallelle poort).Sect. Description Module SCSI IDE PP ------------------------------------------------------------ BLOCK Enhanced IDE/MFM/RLL... Y BLOCK IDE/ATAPI CDROM ide-cd M BLOCK SCSI emulation support ide-scsi M BLOCK Loopback device loop M M M PARIDE Parallel port IDE device paride Y/M PARIDE Parallel port ATAPI CD-ROMs M PARIDE Parallel port generic ATAPI M PARIDE (select a low-level driver) Y SCSI SCSI support scsi_mod Y/M Y/M SCSI SCSI CD-ROM support sr_mod Y/M Y/M SCSI Enable vendor-specific Y Y SCSI SCSI generic support sg Y/M Y/M SCSI (select a low-level driver) Y FS ISO 9660 CDROM filesystem iso9660 Y/M Y/M Y/M FS Microsoft Joliet cdrom... joliet Y Y YDriverkeuze voor verschillende typen writersY staat voor yes en dit betekent dat je het monster in de kernel op zou moeten nemen. M staat voor module en dit betekent dat je deze feature als een module moet compileren. Y/M geeft je de optie te besluiten tussen een van beiden (de volgorde geeft de keuzes aan met minder potentiële problemen). Lege instellingen hoeven niet te worden aangepast en het niet wijzigen verhoogt de kans dat de resulterende kernel zal werken (als het dit voorheen deed...). Vooral in omgevingen waar SCSI en ATAPI devices zijn gemengd, kun je het beste het meeste als modules bouwen.Het compileren van het loopback device is optioneel. Hiermee kun je de image testen voordat je het wegschrijft naar de media. Als je CD-ROM's wilt kunnen lezen, dan hebt je ondersteuning nodig voor het ISO 9660 bestandssysteem. Deze driver voegt automatisch RockRidge Extensies toe. De Microsoft Joliet CD-ROM extensies moeten expliciet worden toegevoegd aan het ISO 9660 bestandssysteem. In elk geval heb je een low-level driver nodig voor je hardware. Low-level refereert naar de driver, welke direct met de hardware samenwerkt. Voor SCSI en de parallelle poort zijn heel wat low-level drivers beschikbaar.Het installeren van de resulterende Linux-kernel valt buiten het kader van deze HOWTO. Raadpleeg hiervoor alsjeblieft de documentatie van je Linux-distributie.Gebruikers van RedHat Linux moeten in de gaten houden dat ze de features "Ramdisk support" en "Initial ramdisk" compileren. Bovendien moet je een nieuwe ramdisk aanmaken bij de nieuwe modules door het aanroepen van een opdracht als "mkintrd --preload ide-cd initrd-2.2.14.img 2.2.14".
CD-R's branden""If to smoke you turn I shall not cease to fiddle while you burn." (Romeins keizer Nero over het branden van zijn eigen klassieke CD's, AD64. Hij vatte het totaal verkeerd op en brandde Rome af.)"Het beschrijven van CD-ROM's bestaat onder Linux uit twee stappen: het verpakken van de gewenste data (bestand, muziek of beiden) in bestanden met een speciaal formaat het schrijven van de data in de bestanden naar de CD-R met het utility cdrecordIn dit hoofdstuk worden de stappen in meer detail beschreven voor data en audio CD's.

Beschrijven van CD-ROM's (zuivere data)Het verzamelen van de data om op een CD te zetten duurt gewoonlijk langer dan men verwacht. Overweeg dat ontbrekende bestanden niet kunnen worden toegevoegd zodra de CD is beschreven en gefixeerd. Dit geldt tevens voor een CD-RW, welke thans alleen in z'n geheel kan worden beschreven. Het gebruik van de multi-sessie feature is geen optie voor enkele bestanden, aangezien het veel ruimte consumeert voor een complete inhoudsopgave (TOC). UDF is nog niet gereed voor Linux.Houd ook in gedachten dat een bepaalde hoeveelheid van de vrije ruimte op een CD wordt gebruikt voor het opslaan van de informatie van het ISO-9660-bestandssysteem (gewoonlijk een paar MB). 620 MB data zal altijd wel passen op een 650 MB CD-R.

Maak een image aan van de laatste CD-ROMVoor enig opslagmedium (b.v. diskette, harddisk of CD) kan worden gebruikt, moet er een bestandssysteem op worden geplaatst (In DOS taal: worden geformatteerd). Het bestandssysteem is verantwoordelijk voor het organiseren en opnemen van de bestanden die op het medium moeten worden bewaard.De gebruikelijke utility's voor het aanmaken van bestandssystemen op harddisk- partities schrijven er een leeg bestandssysteem op, welke vervolgens wordt gemount en wordt gevuld met bestanden door de gebruikers. Een schrijfbare CD is slechts éénmaal beschrijfbaar, dus als we er een leeg bestandssysteem op weg zouden schrijven, zou het worden geformatteerd en voor eeuwig leeg blijven. Dit geldt tevens voor herschrijfbare media aangezien je nog geen willekeurige sectors kunt wijzigen; je moet de gehele inhoud verwijderen.Dus wat we nodig hebben is een tool dat het bestandssysteem aanmaakt onderwijl we de bestanden naar de CD kopiëren. Deze tool wordt mkisofs genoemd. Een voorbeeld van het gebruik ervan gaat als volgt:mkisofs -r -o cd_image privé_verzameling/ `---------' `-----------------------' | | schrijf uitvoer naar neem directory als invoerDe optie '-r' stelt de permissies in van alle bestanden in op voor het publiek leesbaar op de CD en activeert RockRidge-extensies. Je wilt deze optie waarschijnlijk wel gebruiken, tenzij je werkelijk weet wat je aan het doen bent (hint: zonder '-r'krijgt het mountpoint de permissies van privé_verzameling!).mkisofs zal proberen alle bestandsnamen in te delen in het 8.3 formaat dat wordt gebruikt door DOS om de grootst mogelijke compatibiliteit te garanderen. In het geval van naamconflicten (verschillende bestanden hebben dezelfde 8.3 naam), worden nummers gebruikt in de bestandsnamen en informatie over de gekozen bestandsnaam wordt afgedrukt via STDERR (gewoonlijk het scherm). Geen paniek: Onder Linux zul je deze rare 8.3 bestandsnamen nooit zien, omdat Linux gebruikt maakt van de Rock Ridge extensies die de oorspronkelijke bestandsinformatie bevatten (permissies, bestandsnaam, enz.).Denk eraan de optie -J (MS Joliet extensies) te gebruiken of gebruik mkhybrid als je een Windows-vriendelijker CD-ROM wilt genereren. Voor HFS CD-ROMS die worden gebruikt op de Macintosh, kun je beter de manpage van mkisofs' grotere zuster mkhybrid lezen voor details over de diverse opties.Nu vraag je je wellicht af waarom de uitvoer van mkisofs niet direct naar het writer device wordt gestuurd. Hier zijn drie redenen voor:mkisofs weet niets over het besturen van CD-writers.Je wilt wellicht het image testen voordat je het brandt.Op langzame machines zou het niet betrouwbaar zijn (zie sectie 4).Er is een methode om een CD-R in één keer te beschrijven, welke hieronder zal worden beschreven.Men zou er ook over kunnen denken een extra partitie aan te maken en de image naar die partitie weg te schrijven in plaats van naar een bestand. Ik ben tegen een dergelijke strategie. Mocht je namelijk naar de verkeerde partitie schrijven door een typfout, dan kun je je volledige Linux systeem kwijtraken. Lees: wat mij overkwam... Bovendien is het een verspilling van diskruimte omdat de CD-image dient als tijdelijke data wat na het beschrijven van de CD kan worden verwijderd. Het gebruik van ruwe partities bespaart je echter de tijd om bestanden met een omvang van 650 MB te verwijderen.

Test het CD-imageLinux heeft de mogelijkheid bestanden te mounten alsof het diskpartities zijn. Deze feature is handig voor een controle of de directory lay-out en bestandstoegangspermissies overeenkomen met wat je wilt. Alhoewel media tegenwoordig erg goedkoop is, kost het schrijfproces nog steeds veel tijd, en je wilt wellicht wat tijd besparen door een snelle test uit te voeren.Geef voor het mounten van het hierboven aangemaakte bestand cd_image op de directory /cdrom, de opdrachtmount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdromNu kun je de bestanden onder /cdrom inspecteren, ze verschijnen exact zo op een echte CD. Voor het unmounten van de CD-image geeft je op: umount /cdrom. (Waarschuwing: Onder Linux kernels van voor versie 2.0.31 kan het zijn dat het laatste bestand op /cdrom niet volledig leesbaar is. Gebruik alsjeblieft een recentere kernel zoals 2.0.36. De optie -pad van cdrecord is alleen van toepassing op audio CD's en de optie -pad van mkisofs vereist een patch, wat net zoveel werk is als een upgrade naar een foutvrije Linux kernel.)Noot: "Een aantal oude versies van mount kunnen niet omgaan met loopback devices. Als je een dergelijk oude versie van mount hebt, upgrade dan je Linux-systeem. Verscheidene mensen hebben reeds geopperd informatie in dit document te plaatsen over hoe je aan de nieuwste mount utility's kunt komen. Ik weiger dit altijd. Als je Linux distributie met een oude mount wordt geleverd, rapporteer dit dan als een bug. Als je Linux distributie niet eenvoudig is te upgraden, rapporteer dit dan als een bug. Als ik alle informatie op zou nemen die nodig is om om bugs heen te werken die in slecht ontworpen Linux distributies aanwezig zijn, dan zou deze HOWTO heel wat groter en moeilijker te lezen zijn."

Schrijf de CD-image naar een CDIn deze sectie gaat het alleen over het beschrijven van CD's in TAO modus, omdat het de meest gebruikte modus voor gegevens is. Kijk alsjblieft in het hoofdstuk over audio CD-R's voor meer informatie over de verschillen tussen TAO en DAO. Als je de DAO modus gebruikt met de tool cdrdao, denk er dan aan een dummy audio track aan het einde van het TOC bestand toe te voegen (zie de README).Niet veel meer te doen. Als je het nog niet hebt geprobeerd, is het nu een goed moment voor de opdrachtcdrecord -scanbusDit vertelt je aan welk SCSI-device je CD-writer is gekoppeld. Alle andere methoden om de informatie te raden die zo fraai door cdrecord worden afgedrukt, zijn uit deze HOWTO verwijderd.Laat me je waarschuwen dat CD-writers een constante gegevensstroom als invoer willen, voordat ik je de laatste opdracht laat zien. Dus het schrijfproces van de CD-image naar de CD moet niet worden onderbroken anders heeft dit een beschadigde CD tot gevolg. De gegevensstroom kan makkelijk worden onderbroken door een zeer groot bestand te verwijderen. Bijvoorbeeld: als je een oud CD-image met een omvang van 650 Mbyte verwijdert, dan moet de kernel informatie bijwerken over 650,000 blokken op de harddisk (in de veronderstelling dat je een blokomvang hebt van 1 Kbyte voor je bestandssysteem). Dat neemt wat tijd in beslag en het is zeer waarschijnlijk dat het de diskactiviteit lang genoeg voor de gegevensstroom zal vertragen dat het een paar seconden pauzeert. Het lezen van mail, browsen op het web of zelfs compileren van een kernel echter heeft op moderne machines geen effect op het schrijfproces.Geen enkele writer kan zijn laser herpositioneren en verdergaan op de oorspronkelijke plek op de CD wanneer het wordt gestoord. Daarom zullen sterke vibraties of andere mechanische schokken de CD die je aan het beschrijven bent naar alle waarschijnlijkheid ruïneren.Trek een zwart gewaad aan, vermenigvuldig de SCSI-id van de CD-writer met zijn SCSI-revisie en steek zoveel mogelijk kaarsen aan, zeg twee twee coupletten van de ASR-FAQ op (nieuwsgroep alt.sysadmin.recovery) wanneer je voldoende geestelijk bent voorbereid en typ tenslotte:shell> SCSI_BUS=0 # uit listing 1 "scsibus0:" shell> SCSI_ID=6 # uit listing 1 "TOSHIBA XM-3401" shell> SCSI_LUN=0 shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \ -data cd_image # hetzelfde als bovenstaand, maar korter: shell> cdrecord -v speed=2 dev=0,6,0 -data cd_imageVoor een betere leesbaarheid, worden de drie omgevingsvariabelen met natuurlijke namen opgeslagen: SCSI_BUS, SCSI_ID, SCSI_LUN.Wanneer je cdrecord gebruik om een CD-RW te overschrijven, dan moet je de optie "blank=..." toevoegen om de oude inhoud te verwijderen. Lees alsjeblieft de manpage om meer te leren over de diverse methoden om een CD-RW leeg te maken.In tijden waarin iedereen behalve ik een 400 Mhz machine heeft, geven mensen de uitvoer van mkisofs direct door als invoer aan cdrecord:shell> IMG_SIZE=`mkisofs -R -q -print-size privé_verzameling/ 2>&1 \ | sed -e "s/.* = //"` shell> echo $IMG_SIZE shell> [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r privé_verzameling/ \ |cdrecord speed=2 dev=0,6,0 tsize=${IMG_SIZE}s -data - # don't forget the s --^ ^-- lees data van STDINDe eerste opdracht is een lege run om vast te stellen wat de omvang van het image is (je hebt hier mkisofs van de cdrecord distributie voor nodig). Je moet alle parameters opgeven die je ook bij de uiteindelijke uitvoering opgeeft (b.v. -J of -hfs). Misschien hoeft je writer niet te weten wat de omvang van het weg te schrijven image is, dus dan kun je deze droge uitvoering achterwege laten. De afgedrukte grootte moet als een tsize parameter aan cdrecord worden doorgegeven (het wordt opgeslagen in de omgevingsvariabele IMG_SIZE). De tweede opdracht is een reeks aan mkisofs en cdrecord, gevormd via een pipe.
Beste Winfried,...Dit is de sectie die gewoonlijk bekend staat als "veelgestelde vragen met antwoorden". Als je een probleem ondervindt met je partner, kinderen of hond, stuur dit dan gewoon in, zolang het maar te maken heeft met het beschrijven van CD-R's of op andere wijze amusant is.

Hoe gevoelig is het brandproces?Test het. Gebruik de optie -dummy voor een lege uitvoering van cdrecord. Doe alles wat je anders ook zou doen en kijk of het brandproces het overleeft.Als je cdrecord direct de uitvoer van mkisofs doorgeeft, dan zullen diskintensieve processen zoals het updaten van de database locate de maximum flow rate verlagen en wellicht de CD beschadigen. Je kunt maar beter van te voren controleren of dergelijke processen niet worden gestart via cron, at of anacron terwijl je CD-R's op oudere machine's brandt.
ProbleemoplossingDenk eraan dat je beschadigde CD-ROM's nog altijd als onderzetters kunt gebruiken. :-)

Het werkt niet: onder LinuxControleer alsjeblieft eerst of de writer werkt onder de software welke is meegeleverd (=onder een andere besturingssysteem). Concreet:Herkent de controller de writer als een SCSI-device?Herkent de driversoftware de writer?Is het mogelijk een CD te maken met software die werd meegeleverd?Als het "zelfs niet werkt" met de meegeleverde software dan heb je te maken met een hardwareconflict of beschadigde hardware. Als het wel werkt en je gebruikt loadlin om Linux te booten, dan is het een probleem met loadlin. Loadlin veroorzaakt een warme boot met de meeste hardware reeds geïnitialiseerd en dat kan de Linux kernel is verwarring brengen.
KredietVeel dank aan de lezers van deze HOWTO, die actief een bijdrage leverden aan de inhoud. Aangezien ik zelf een aantal jaren geen toegang had tot een CD-writer, zijn verslagen over daadwerkelijke setups en ervaringen altijd van grote waarde voor me geweest.Doug Alcorn <doug@lathi.net>hielp bij het verbeteren van de afhandeling door nieuwere kernelsKalle Andersson <kalle@sslug.dk>Hoe audio's te schrijven direct vanuit MP3.Alan Brown <alan@manawatu.net.nz>Rick Cochran <rick@msc.cornell.edu>hint over het standaard verbreken/herstellen van de verbinding in de ncr driverRobert Doolittle <bob.doolittle@sun.com>goede argumenten voor het laten vervallen van cdwrite uit de HOWTOMarkus Dickebohm <m.dickebohm@uni-koeln.de>Thomas Duffy <tduffy@sgi.com>belangrijke opschoning van syntax en spelfoutenDave Forrest <dforrest@virginia.edu>adapter spellingsproblemen gecorrigeerdJos van Geffen <jos@tnj.phys.tue.nl>merkte het probleem in 4.9 op.Bernhard Gubanka <beg@ipp-garching.mpg.de>merkte op dat een recente versie van mount nodig was om het loopback device te gebruikenStephen Harris <sweh@mpn.com>gaf een hint over het beschrijven van audio-CD'sJanne Himanka <shem@oyt.oulu.fi>verwijzing naar de kernelpatch om Joliet CD-ROM's te lezenStephan Noy <stnoy@mi.uni-koeln.de>informatie en ervaring over het beschrijven van audio CD'sDon H. Olive <don@andromeda.campbellsvil.edu>URL van de mkhybrid toolJesper Pedersen <jews@imada.ou.dk> Pierre Pfister <pp@uplift.fr>hielp met de beschrijving van 1:1 kopieënDaniel A. Quist <dquist@cs.nmt.edu>informatie over IDE CD-R en nieuwere kernelversiesMartti.Rahkila@hut.fiMeldde een probleem met voorgeïnitialiseerde writers wanneer via loadlin werd geboot.Dale Scheetz <dwarf@polaris.net>Joerg Schilling <schilling@fokus.gmd.de>veel informatie over cdrecordMartin Schulze <joey@Infodrom.North.DE>gaf informatie over de cdwrite-mailinglistGerald C Snyder <gcsnyd@loop.com>testte het beschrijven van een ext2 CD-ROM (zie 4.4)Art Stone <stone@math.ubc.ca>had het idee niet-ISO-9660 bestandssystemen op een CD te plaatsenThe Sheepy One <kero@escape.com>deed de suggestie beschadigde CD-ROM's als onderzetter voor drankjes te gebruikenErwin Zoer <ezoer@wxs.nl>Ik zou bovendien de volgende mensen willen bedanken voor het melden van spelfouten: Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>, Alessandro Rubini <rubini@prosa.it>, Ian Stirling <ian@opus131.com>, Brian H. Toby.Einde van de Linux CD-Writing HOWTO. (Je kunt hier stoppen met lezen.)