Verder Terug Inhoud

4. Beste Winfried,...

Dit is de sectie die gewoonlijk bekend staat als "veel gestelde vragen met antwoorden". Als je een probleem met je partner, kinderen of hond hebt, stuur dat dan gewoon in, zolang als het maar iets te maken heeft met het schrijven van CD-R's, of het op andere wijze vermakelijk is.

4.1 Hoe gevoelig is het brandingsproces?

Test het. Gebruik de optie -dummy om een lege run van cdrecord te doen. Doe alles wat je anders ook zou doen en kijk of het brandingsproces het overleeft.

Als je cdrecord direct vanuit mkisofs opgeeft, dan zullen diskintensieve processen zoals het bijwerken van de locate-database de maximum flow-rate verlagen en kunnen de CD beschadigen; je kunt het beste controleren of dergelijke processen niet via cron, at of anacron worden gestart ten tijde dat je CD-R's aan het branden bent.

4.2 Heeft bestandsfragmentatie een slechte impact op de doorvoer?

De fragmentatie van bestanden is meestal zo laag, dat het geen opmerkelijke impact heeft. Je kunt echter makkelijk pathologische gevallen van fragmentatie construeren, die de doorvoer van je harddisks tot onder de 100 kbyte/seconde verlagen. Dus doe dat niet. :-)

Ja, bestanden raken in de loop der jaren gefragmenteerd. Meer naarmate het bestandssysteem voller is. Laat altijd 10% of 20% ruimte vrij en het zou met respect voor het schrijven van CD-R's prima moeten gaan.

Als je er niet zo zeker van bent, bekijk dan de meldingen die bij de systeemstart worden afgedrukt, het fragmentatie-percentage wordt tijdens het controleren van de bestandssystemen gerapporteerd. Je kunt op deze waarde controleren met het zeer gevaarlijke commando:

shell> e2fsck -n  /dev/sda5        # '-n' is belangrijk!
[boel verwijderd -- negeer enige fouten]
/dev/sda5: 73/12288 files (12.3% non-contiguous)

In dit voorbeeld lijkt de fragmentatie zeer hoog -- maar er staan op het bestandssysteem slechts 73 kleine bestanden. (gebruikt als /tmp). Dus de waarde is niet alarmerend.

Er is een experimenteel utility met de naam e2defrag om extended-2 bestandssystemen te defragmenteren. De huidige versie werkt echter niet voldoende betrouwbaar voor privé omgevingen. Maak een backup (beter: twee backups), als je je bestandssysteem echt wilt defragmenteren, oefen dan in het terugzetten van de gegevens, maak vervolgens een nieuw bestandssysteem aan (wat het oude systeem zal vernietigen) en zet dan de gegevens terug. Deze schets is thans de veiligste techniek.

4.3 Is het mogelijk om de CD-image op een UMSDOS-bestandssysteem op te slaan?

Ja. Het enige bestandssysteem waar vanaf het niet betrouwbaar en snel genoeg is om naar CD-ROM's te schrijven, is vanaf het network filesystem (NFS).

Ik maakte zelf gebruik van UMSDOS om diskruimte tussen Linux en DOS/Win op een PC (486/66) te delen, die is bestemd voor het beschrijven van CD-ROM's.

4.4 Is er geen manier voor om de beperkingen van ISO-9660 te omzeilen?

Ja. Je kunt ieder bestandssysteem dat je maar wilt op de CD zetten. Maar andere besturingssystemen dan Linux kunnen met deze CD niet omgaan.

Hier is het recept:

Als je voor een dergelijke CD een record in /etc/fstab aan wilt maken, de-activeer dan de controle op het devicebestand tijdens de systeemstart, bijvoorbeeld:

/dev/cdrom  /cdrom  ext2  defaults,ro  0 0

De eerste 0 betekent "neem 't niet in dumps op", de tweede (=belangrijk) 0 betekent "controleer bij het opstarten niet op fouten" (fsck zal er niet in slagen de CD op fouten te controleren).

4.5 Hoe lees ik de tracks vanaf audio CD's?

Er zijn verscheidene software-packages beschikbaar. De nieuwste is "cdpranoia" en kan worden gedownload vanaf

http://www.xiph.org/paranoia/

Of als je de combinatie "cdda2wav" en "sox" wilt proberen, beschikbaar vanaf sunsite en de mirrors van sunsite:

ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz

ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz

Met cdda2wav kun je een specifieke interval (of een gehele track) vanaf je audio CD krijgen en het naar een .wav-bestand converteren. sox converteert de WAV-bestanden terug in het (audio-CD) cdda-formaat, zodat het weer naar de CD-R kan worden geschreven met behulp van cdrecord. Het is niet noodzakelijk om in het bezit te zijn van sox, want als je een recente versie van cdrecord gebruikt, biedt het ingebouwde ondersteuning voor .au en .wav bestanden.

4.6 Hoe onderzoek je de SCSI-devices na het opstarten?

De informatie staat in het bestand drivers/scsi/scsi.c

/*
 * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
 * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
 * Consider this feature BETA.
 *     CAUTION: This is not for hotplugging your peripherals. As
 *     SCSI was not designed for this you could damage your
 *     hardware !
 * However perhaps it is legal to switch on an
 * already connected device. It is perhaps not
 * guaranteed this device doesn't corrupt an ongoing data transfer.
 */

Neem alsjeblieft in acht dat dit alleen zou moeten worden gebruikt als je SCSI-devices aan het einde van de keten toevoegt. Nieuwe SCSI-devices invoegen in een bestaande keten, verstoort de benoeming van de devices (directory /dev) en het zou de volledige inhoud van je harddisk kunnen ruïneren.

4.7 Is het mogelijk een 1:1 kopie van een gegevens CD te maken?

<! -- Herstel me: dit is zeer onduidelijk --> Ja, maar bedenk wel dat alle fouten tijdens het lezen van het origineel (vanwege stof of krassen) in een defecte kopie zullen resulteren. Denk er alsjeblieft aan dat beide methoden niet met audio-CD's werken! Je zult cdrdao of cdda2wav moeten gebruiken voor audio-CD's.

Eerste situatie: je hebt een CD-writer en een aparte CD-ROM drive. Door het commando

cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0

aan te roepen, lees je de gegevensstroom vanaf de CD-ROM die met /dev/scd0 is verbonden en schrijf je het direct naar de CD-writer.

Tweede situatie: je hebt geen aparte CD-ROM drive. Je moet in dit geval de writer gebruiken om eerst de CD-ROM uit te lezen:

dd if=/dev/scd0 of=cdimage

Dit commando leest de inhoud van de CD-ROM vanuit het device /dev/scd0 en schrijft het naar het bestand "cdimage". De inhoud van dit bestand is equivalent met wat mkisofs produceert, dus je moet verder gaan zoals eerder in dit document is beschreven (wat inhoudt dat je het bestand cdimage als invoer voor cdrecord neemt). Als je een voortgangsmeter en ander fraai spul wilt zien, kun je ook sdd van Jörg Schilling gebruiken.

Installeer een recente versie van cdrecord, die met een tool genaamd "readcd" wordt geleverd (te vinden onder misc/), als je fouten krijgt. Het geeft je hetzelfde resultaat als dd, maar het leest in geval van fouten de sectoren op de CD-ROM verscheidene malen in.

4.8 Kan Linux Joliet CD-ROMs lezen?

Ja. Nieuwere kernels (2.0.36 en de aankomende 2.2) hebben ingebouwde ondersteuning voor het Joliet formaat. Denk eraan dat je beide opties in /etc/fstab moet gebruiken: de sleutelwoorden iso9660 en joliet (de laatste is echt een uitbreiding). Zie http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html voor meer details.

4.9 Hoe lees/mount ik CD-ROM's met de CD-writer?

Net zoals je dat doet met reguliere CD-ROM drives. In het geheel geen trucs. Merk wel op dat je de scd-devices (SCSI CD-ROM) voor het lezen van de CD-ROM's moet gebruiken, zelfs als je een ATAPI CD-ROM hebt (denk eraan dat je je ATAPI-devices zodanig configureerde dat ze zich als SCSI-devices voordoen). Voorbeeldrecord voor /etc/fstab:

/dev/scd0  /cdrom  iso9660  ro,user,noauto  0  0

4.10 Hoe krijg ik nog meer gegevens op de CD-R?

Gebruik bzip2 in plaats van een ander compressie-programma zoals gzip of pkzip. Voor grotere bestanden (>100kb) zal het je tot 30% aan diskruimte besparen. Je kunt het downloaden vanaf

http://www.muraroa.demon.co.uk/

In plaats van een echte audio-CD te beschrijven, kun je naar keuze je WAV-audio-bestanden naar mp3-audio-bestanden converteren en ze op een ISO-9660 bestandssysteem als reguliere bestanden opslaan. Meestal geeft MPEG III een compressie van 1:10. Natuurlijk kunnen de meeste CD-players geen bestanden lezen...dit is de keerzijde. Aan de andere kant, waarom zou je de muziek voor je volgende feest niet vanaf de harddisk afspelen? 18 Gbytes is genoeg voor 3000-4000 titels. :-)

Een software MPEG III-codeerprogramma is beschikbaar vanaf

http://www.sulaco.org/mp3/

Een MPEG III-player is beschikbaar vanaf

http://www.mpg123.org/

Voor opgenomen spraak, kun je proberen de grootte terug te brengen met behulp van shorten of "GSM lossy spraakcompressie":

ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/

http://kbs.cs.tu-berlin.de/~jutta/toast.html

4.11 Hoe maak je opstartbare CD-ROM's?

Je hebt een 1.44 MB opstartbare diskette nodig. Maak een exacte image van deze diskette door het volgende commando aan te roepen

dd if=/dev/fd0 of=boot.img bs=18k

Plaats deze disk-image in de directory met je verzameling bestanden (of in een subdirectory daarvan, net zoals je dat wilt). Breng mkisofs op de hoogte van dit bestand met de optie '-b' en gebruik ook '-c'. Lees alsjeblieft het bestand README.eltorito in de mkisofs-distributie voor de details.

Een interessante applicatie voor een opstartbare CD voor gebruik, is als een virus-veilig DOS- of Windows-systeem. Het bespaart je het geld voor de harddisks (als je een netwerk hebt en samba gebruikt om de gebruikersgegevens op een fileserver te plaatsen). Het Duitse computermagazine "c't" heeft in de uitgave van 11/99, op pagina 206 over dit onderwerp een artikel ( http://www.heise.de/)

Een aantal details over de opstartbare RedHat CD-ROM zijn beschikbaar vanaf http://www.channel1.com/users/rodsmith/rhjol-technical.html.

4.12 Hoe CD-ROM's op één of andere manier schrijfbaar te maken?

Er is voor Linux een overlay-filesystem beschikbaar, welke over de CD-ROM is gemount en alle schrijfbewerkingen onderschept. Nieuwe en gewijzigde bestanden worden elders opgeslagen, maar voor de gebruiker lijkt het of de CD-ROM is aangepast. Zie http://home.att.net/~artnaseef/ovlfs/ovlfs.html voor meer informatie.

Als dat niet genoeg voor je is: wacht dan totdat het UDF-bestandsysteem voor onder Linux wordt ondersteund, of help mee bij de ontwikkeling ervan (zie http://trylinux.com/projects/udf/.

4.13 Is het mogelijk verscheidene writers tegelijkertijd te gebruiken?

Ja. Het is echter pas met twee branders getest. Je hebt of een recente versie van de Linux kernel nodig (2.2.10 op het moment van dit schrijven) of een kernelpatch voor meer buffers in de algemene SCSI-driver ( ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha); werkt tot aan 2.2.5).

4.14 Welke media zijn het beste?

In het Duitse computermagazine "c't" stond in de uitgave van november 1996 een lijst tips aangaande de blanco CD-R's:

4.15 Hoe zit het met Solaris, *BSD, AIX, HP-UX, enz.?

Alleen hoofstuk 2 is Linux-specifiek. Je kunt hoofdstuk 3 en 4 zelfs toepassen als je een andere variant besturingssystemen dan Linux gebruikt. Kijk alsjeblieft in de bestanden README.NetBSD, README,aix, README.hpux, README.next, README.solaris, README,sunos, README.vms of README.xxxBSD uit de cdrecord-distributie.

4.16 Waar kun je de locale configuratie permanent bewaren?

Je hebt twee opties. Of je gebruikt het ingebouwde configuratiebestand voor cdrecord, of je gebruikt een shell-wrapper zoals die hieronder wordt getoond. Dit shell-script leest regel voor regel een configuratiebestand in, waarin de opties en parameters voor cdrecord staan. De namen zijn exact hetzelfde als op de commandoregel, maar zonder het voorafgaande streepje. Commentaarregels zijn toegestaan. Voorbeeld:

# verbose
v
# stel de snelheid van de brander in
speed=2
# de device-coordinaten in de vorm BUS,ID,LUN
dev=0,6,0

De configuratiebestanden voor de wrapper horen in /etc/cdrecord/ en er moet op de commandoregel naar worden gerefereerd. Voorbeeld: als je naar de configuratie /etc/cdrecord/mywriter.cfg wilt refereren, dan kun je het commando "cdrecord.sh mywriter.cfg -audio track1..." aanroepen. Alles na mywriter.cfg wordt aan cdrecord doorgegeven.

#! /bin/bash

CFGDIR="/etc/cdrecord"

CFG="$1"
shift
ARGS_LEFT="$@"

if [ ! -f "$CFGDIR/$CFG" ]
then
    echo "Configuratiebestand $CFGDIR/$CFG niet gevonden. Exit."
    exit 1
fi

while read LINE
do
    case $LINE in
        \#*|"") continue;;
    esac
    old_IFS="$IFS"
    IFS="$IFS="
    set -- $LINE
    IFS="$old_IFS"
    O_NAME="$1"
    O_VALUE=""
    while shift
    do
        case $1 in
            "") continue;;
        esac
        O_VALUE="$1"
    done

    if [ -z "$O_VALUE" ]
    then
        O_CDRECORD="$O_CDRECORD -$O_NAME "
        continue
    fi
    O_CDRECORD="$O_CDRECORD $O_NAME=$O_VALUE "
    
done < "$CFGDIR/$CFG"

set -x    #DEBUG
exec cdrecord $O_CDRECORD $ARGS_LEFT
echo "Uitvoering van cdrecord mislukt."

4.17 Hoe kan de CD-info worden opgehaald?

Ergens na de eerste 32 k op de CD, staat een blok informatie over de CD. Je kunt de informatie met het volgende shell-script ophalen:

#! /bin/bash

RD=/dev/cdrom
for i in 32768,7   32776,32 32808,32 32958,128 33086,128 33214,128 \
         33342,128 33470,32 33581,16 33598,16  33615,16  33632,16
do
    old_IFS="$IFS"
    IFS=","
    set -- $i
    IFS="$old_IFS"
    OFFSET=$1
    LENGTH=$2
    echo "*`dd if=$RD bs=1 skip=$OFFSET count=$LENGTH   2> /dev/null`#"
done

4.18 Hoe zit dat met het opnieuw beschrijven?

Geef de optie blank=fast op aan cdrecord, als je CD-RW media gaat overschrijven. Dat is alles. Zie de man-page van cdrecord voor details over deze parameter.

4.19 Hoe maak je een multi-sessie CD?

Als eerste moet de image voor een multi-sessie CD worden geformatteerd met het ISO-9660-bestandssysteem met RockRidge uitbreidingen. En zolang je nog verdere sessies toe wilt voegen, moet je de optie -multi voor cdrecord gebruiken. Dus je moet op z'n minst voor de eerste sessie, -multi gebruiken.

De images voor de tweede en daaropvolgende sessies zijn wat gecompliceerder te genereren. Mkisofs moet weten waar de vrije ruimte op de CD-R begint. Deze informatie kan worden vergaard door met cdrecord gebruik te maken van de optie -msinfo (zie het voorbeeld hieronder).

shell> NEXT_TRACK=`cdrecord -msinfo dev=0,6,0`
shell> echo $NEXT_TRACK
shell> mkisofs -R -o cd_image2 -C $NEXT_TRACK -M /dev/scd5
         prive_collectie/ \

Lees voor meer informatie alsjeblieft het bestand README.multi, dat met cdrecord wordt gedistribueerd.

4.20 Zou ik de SCSI-adapter moeten gebruiken die met de brander wordt meegeleverd?

De meeste CD-writer docs geven aan dat je een aparte scsi-bus moet gebruiken, als je van een cd-reader naar een cd-writer gaat en ik ben het zelf in het volgende scenario tegengekomen:

Adaptec 2940UW scsi-kaart, een 24x scsi cd-rom en een 4x4 scsi cd recorder. Toen ik de cd-recorder had, kwam het met een eigen isa scsi-kaart die slechts één device aankon. Ik dacht dit op te lossen door overal mijn betere adaptec kaart voor te gebruiken. Ik bemerkte dat het bij opname op 4x snelheid tamelijk vatbaar was voor buffer-underruns, maar toen ik het probeerde met de ISA SCSI-kaart, had ik geen problemen. Ik ken 2 andere mensen (die beiden gebruik maken van adaptec 2940 kaarten), die dezelfde exacte symptomen ervaarden...meestal bij het schrijven vanaf een CD-rom naar een CD-recorder...Ik heb het probleem echter nooit ervaren vanaf een harddisk naar een cd-recorder op dezelfde bus.

4.21 Hoe over het netwerk te branden?

Gewoonlijk is een bestandsoverdracht zelfs over een 10 Mbit ethernet met FTP snel genoeg om een CD-recorder op viervoudige (4x) snelheid te voeden. Je kunt de ftp-client en cdrecord via een fifo koppelen. Maak eerst een fifo genaamd cdimage aan:

mkfifo cdimage
ftp other.host.org
get cdimg cdimage

Ga met cdimage dan net zo om als met een regulier bestand, d.w.z. roep het volgende commando aan:

cdrecord dev=0,1,0 speed=2 cdimage

Je ftp-client zal 't bemerken wanneer cdrecord vanuit het bestand wil lezen en zal beginnen gegevens vanaf de ftp-host te transporteren.

4.22 Ik krijg een "kraak" geluid aan het einde van ieder spoor

Je moet disk-at-once modus (DAO) gebruiken om van het kraken af te komen.

4.23 Hoe kan het zodanig worden ingesteld dat een gebruiker CD's kan branden in plaats van altijd door root?

Je kunt de setuid-bit aan de cdrecord-executable toevoegen. Dit zou echter een beveiligingsrisico kunnen zijn. Het slechts instellen van de permissies op de devicebestanden helpt niet, aangezien cdrecord via de SCSI generic interfaces bevoorrechte commando's aanroept.

which cdrecord
chown root.root /usr/bin/cdrecord
chmod 4111 /usr/bin/cdrecord

4.24 Wordt mijn variant van Unix ondersteund?

Waarschijnlijk wel. Compileer cdrecord voor je platform en roep het commando "cdrecord -scanbus" aan. Lees het README.* bestand voor je Unix dat met de sources van cdrecord wordt meegeleverd. Echter niet alle varianten van Unix kunnen de RockRidge, Joliet of HFS extensies op je nieuw beschreven CD-R lezen.

4.25 Waar haal ik de "Yellow Book" en "Orange Book" standaards vandaan?

Je kunt de afgedrukte specificaties bij Philips verkrijgen en ze zijn duur.

4.26 Ik ben aan het zoeken geweest naar informatie over het branden van een Video-Cd onder Linux.

Ik ook.

4.27 Wat is eenvoudiger in te stellen, IDE of SCSI?

SCSI CD-writers zijn met betrekking tot het beschrijven van CD's onder Linux iets eenvoudiger in te stellen. En er is van gerapporteerd dat ze beter foutherstel hebben. Of dat zwaarder weegt dan de hogere prijs kan in het algemeen niet worden beantwoord.

4.28 Hoe kan ik een CD met {cdrecord, cdrdao} overbranden?

Er is niets speciaals aan het overbranden van een CD-R. Het is op eigen risico dat de gegevens op de CD-ROM passen, maar dat is alles. Er is in de software onder Linux geen 650 Mbytes limiet.

4.29 Wat zal cdrecord doen wanneer het stopt invoer vanuit de pipe te halen?

Het zal het beschrijven beëindigen. Dus je kunt je favoriete backuptool met cdrecord met behulp van een pipe gebruiken, zoals in "bru -size=640m -f - | cdrecord dev=0,1,0 speed=2 -". Je moet binnen het backup-utility speciale aandacht. schenken.

4.30 Is er een equivalent voor ignore=hdX voor de ide-scsi emulatie?

Ik weet geen manier, maar iedereen is welkom deze feature aan de Linux-kernel sources toe te voegen.

4.31 Hoe vaak kun je een CD-RW hergebruiken voordat ze slecht worden?

Goeie vraag.

4.32 Welk formaat te kiezen voor een platform onafhankelijke CD-ROM?

Een voor alle systemen te lezen CD-ROM kan alleen het gewone ISO 9660 formaat gebruiken. Dat betekent stomme 8+3 bestandsnamen van de oude MS-DOS en zonder enige HFS (Macintosh), Joliet (Microsoft) of RockRidge (newer Unices) extensies. Er is geen uitbreiding voor langere bestandsnamen, die door alle besturingssystemen zouden kunnen worden gelezen.

4.33 Is multi-sessie voor audio tracks mogelijk?

Ik betwijfel of gebruikelijke CD-players daar mee om kunnen gaan.


Verder Terug Inhoud