Ursache für die meisten Brennabbrüche sind sogenannte Buffer-Underruns. Dabei hat der CD-Brenner alle im Schreib-Puffer (Write-Buffer) gespeicherten Daten auf die CD gebracht und wartet nun auf Daten vom Computer. Wird der Puffer nicht rechtzeitig wieder gefüllt, bricht der Brenner den Schreibvorgang ab.
Der Grund dafür ist, dass die Daten der CD mit konstanter Geschwindigkeit geschrieben werden müssen. Ein Absetzen und späteres Fortführen war bislang nicht möglich. Entscheidend für eine konstante Geschwindigkeit ist dabei nicht die Drehgeschwindigkeit der CD, sondern der Weg des Lasers auf der CD-Oberfläche. Innen sind die Spuren kürzer, außen länger. Um mit einer konstanten Datenrate lesen zu können, dreht das CD-ROM beim Lesen der inneren Spuren hörbar schneller als im Außenbereich. Man spricht von CLV (Constant Linear Velocity), der Laser überstreicht also immer den selben Weg pro Zeit. Im Falle von Single-Speed-Geräten beträgt die Datenrate 2352 mal 75 = 176400 Bytes pro Sekunde. Ein Brenner mit zwölffacher Beschleunigung schreibt folglich 12 mal 176400 Bytes pro Sekunde, das sind etwas mehr als 2 MByte pro Sekunde. Diese Datenmenge muss der Computer stets liefern.
Sobald der Computer die Daten nicht mehr schnell genug zum CD-Brenner transportieren kann, zum Beispiel weil die CPU gerade ausgelastet ist, kommt es zu einem Buffer-Underrun – der interne Pufferspeicher des CD-Brenners ist leer, und der Brennvorgang muss abgebrochen werden. Die entstandene CD-ROM ist unvollständig und in der Regel unbrauchbar.
Lösungsansätze
Da dieses Problem schon länger bekannt ist, wurden mehrere Verfahren zur Vermeidung entwickelt. Als erstes ist der vorher schon angesprochene Puffer im CD-Brenner selbst zu nennen. Er hat bei den neueren Brennern eine Kapazität von 2--4 MB und reicht so bei maximaler Brenngeschwindigkeit für etwa 1,5 bis 2 Sekunden. Auch die Brenner-Software baut im Speicher einen Puffer auf. Beim Brenn-Programm cdrecord kann man die Größe frei wählen, standardmäßig sind es 4 MB.
Das neueste Verfahren zur Vermeidung von Buffer Underruns kommt von Sanyo und nennt sich BURN-Proof (Buffer Under RuN error Proof, http://www.sannet.ne.jp/BURN-Proof/). Diese Methode versucht nicht, die Buffer Underruns zu verhindern, sondern deren Folgen. Ein kleiner Mikrokontroller direkt im CD-Brenner überprüft ständig den Füllstand des eingebauten Puffers und leitet im Falle eines drohenden Buffer Underruns (Puffer weniger als 10% gefüllt) ein geordnetes Verfahren zum Beenden des Brennvorganges ein. Sind die letzten Daten auf die CD-R geschrieben, merkt sich der Chip, wo sich diese befinden. Sobald der Puffer wieder voll ist, muss die CD-Brenn-Software den Brennvorgang wieder starten, d. h. auch die Software muss BURN-Proof unterstützen. Darauf startet der Mikrokontroller den Brennvorgang wieder direkt dort, wo die letzen Daten gebrannt wurden. Ähnliche Verfahren gibt es noch von Ricoh, wo sich das ganze "JustLink" nennt, und auch Yamaha hat etwas entsprechendes mit dem Namen "Wast-Proof Write Strategy" angekündigt. Auf dem Markt hat sich bis jetzt aber nur BURN-Proof durchgesetzt, und auch Linux unterstützt bei Verwendung von cdrecord oder cdrdao ab Version 1.1.5 bis jetzt nur diese Technologie.
BURN-Proof verwenden
Ob ein Laufwerk BURN-Proof unterstützt, kann man einfach mit dem Kommando
# cdrecord -checkdrive dev=0,X,0 driveropts=help Cdrecord 1.10a16 (i586-pc-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling […] Driver options: burnproof Prepare writer to use Sanyo BURN-Proof technology noburnproof Disable using Sanyo BURN-Proof technology
feststellen (das X kann via cdrecord -scanbus bestimmt werden – im Kasten IDE Brenner unter Linux finden Sie ein Beispiel). Aktiviert wird BURN-Proof dann einfach, indem man zu dem normalen cdrecord-Befehl den Parameter driveropts=burn-proof hinzufügt.



