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.
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.
De bestandsfragmentatie van bestanden is gewoonlijk zo laag, dat de impact ervan niet wordt opgemerkt. Je kunt echter makkelijk pathologische gevallen van fragmentatie construeren, welke de doorvoer van je harddisk verlagen tot onder de 100 kbytes/seconde. Dus doe dat niet. :-) Ja, bestanden op een harddisk kunnen met de jaren gefragmenteerd raken. Laat altijd 10% of 20% vrije ruimte over en er is niets aan de hand met betrekking tot het schrijven van CD-R's.
Wanneer je niet zo zeker bent, bekijk dan de meldingen die tijdens het booten worden afgedrukt. Het percentage aan fragmentatie wordt gerapporteerd tijdens de controle van de bestandssystemen. Je kunt deze waarde controleren met de zeer gevaarlijke opdracht
shell> e2fsck -n /dev/sda5 # '-n' is van belang!
[stuff deleted -- ignore any errors]
/dev/sda5: 73/12288 files (12.3% non-contiguous)
In dit voorbeeld lijkt de fragmentatie zeer hoog, maar er bevinden zich slechts 73 kleine bestanden op het bestandssysteem. Dus de waarde is niet alarmerend.
Er is een experimenteel utility genaamd e2defrag om extended-2 bestandssystemen te defragmenteren. De huidige versie werkt niet betrouwbaar genoeg, zelfs niet voor gebruik in privé-omgevingen. Als je werkelijk je bestandssysteem wilt defragmenteren, dan kun je nog beter een backup maken (of nog beter: twee kopieën), oefen in het terugzetten van de gegevens, maak dan een nieuw bestandssysteem aan (waarmee het oude zal worden verwijderd) en zet de gegevens terug. Deze schets is thans de veiligste techniek.
Ja. Het enige bestandssysteem dat niet betrouwbaar en snel genoeg is voor het beschrijven van CD-ROM's is het network filesystem (NFS). Ik gebruikte UMSDOS zelf om diskruimte tussen Linux en DOS/Win te delen op een PC (486/66) die bestemd was voor het beschrijven van CD-ROM's.
Ja. Je kunt elk bestandssysteem dat je wenst op de CD plaatsen. Maar andere besturingssystemen dan Linux kunnen niets met deze CD. Zo doe je het:
dd if=/dev/zero of="empty_file" bs=1024k count=650
shell> /sbin/mke2fs -b 2048 empty_file
empty_file is not a block special device.
Proceed anyway? (y,n) y
mount -t ext2 -o loop=/dev/loop1 empty_file /mnt
cdrecord
op empty_file (welke niet langer leeg is)
alsof het een ISO-9660-image is.Als je voor een dergelijke CD een regel aan /etc/fstab
toe
wilt voegen, deactiveer dan het controleren van het device bestand
tijdens de systeemstart. Bijvoorbeeld:
/dev/cdrom /cdrom ext2 defaults,ro 0 0
De eerste 0 betekent "niet opnemen in dumps" (backup), de tweede (=belangrijk) betekent "controleer niet op fouten bij het starten" (fsck zou falen bij het testen van de CD op fouten).
Er zijn verscheidene softwarepackages beschikbaar. De nieuwste is "cdpranoia" en het kan worden gedownload van
http://www.xiph.org/paranoia/
Of je kunt de combinatie "cdda2wav" met "sox" uitproberen, beschikbaar vanaf sunsite en mirrors:
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 aan een specifieke interval (of een gehele
track) van je audio-CD komen en dit converteren naar een .wav bestand.
sox
converteert de WAV bestanden terug naar
het (audio CD) cdda-formaat zodat het naar de CD-R kan worden geschreven
met cdrecord
. Je hebt sox
niet noodzakelijkerwijs nodig
als je een recente versie gebruik van cdrecord
, omdat het ingebouwde
ondersteuning heeft voor .au en .wav bestanden.
Het bestand drivers/scsi/scsi.c
bevat de informatie
/*
* 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 hot plugging 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.
*/
Dit zou alleen moeten worden gebruikt als je SCSI-devices aan het einde van de keten toevoegt. Het invoegen van nieuwe SCSI-devices aan een bestaande keten verstoort de benaming van devices (directory /dev) en kan de complete inhoud van je harddisk vernietigen.
Een aantal kernelversies houdt helemaal niet van het opnieuw scannen van de SCSI-bus en het systeem kan vastlopen als je het bovenstaande probeert. Je bent gewaarschuwd.
Ja. Maar wees je bewust van het feit dat eventuele fouten bij het lezen van het origineel (vanwege stof of krassen) zullen resulteren in een defecte kopie. Beide methoden zullen mislukken bij audio CD's! Voor audio CD's moet je cdrdao of cdda2wav gebruiken.
Eerste situatie: je hebt een CD-writer en een apart CD-ROM station. Door het uitvoeren van de opdracht
cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0
lees je de gegevensstroom in van het CD-ROM station aangesloten als
/dev/scd0
en schrijf je het direct naar de CD-writer.
Tweede situatie: je hebt geen apart CD-ROM station. In dit geval moet je de CD-writer de CD-ROM eerst uit laten lezen:
dd if=/dev/scd0 of=cdimage
Deze opdracht leest de inhoud van de CD-ROM van het device /dev/scd0 en
schrijft het naar het bestand "cdimage". De inhoud van dit bestand is
equivalent aan wat mkisofs
produceert, dus je kunt verdergaan zoals
eerder beschreven in dit document (wat wil zeggen dat je het bestand
cdimage als invoer dient voor cdrecord). Als je een voortgangsmeter
en ander fraais wilt zien, dan kun je ook gebruik maken van
sdd
van Jörg Schillings.
In geval je fouten tegenkomt, installeer je een recente versie van cdrecord waarbij een tool genaamd "readcd" (te vinden onder misc/) wordt meegeleverd. Het geeft je hetzelfde resultaat als dd, maar het leest sectoren op de CD-ROM verscheidene malen in in geval van fouten.
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 trefwoorden iso9660 en joliet (de laatste is echt een extensie). Zie voor meer details http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html.
Net als bij reguliere CD-ROM drives. In het geheel geen truuks. Je moet je scd devices (SCSI CD-ROM) gebruiken om CD-ROM's voor lezen te mounten ook als je een ATAPI CD-ROM hebt (denk eraan dat je de ATAPI devices configureerde om te fungeren als SCSI). Voorbeeldregel in /etc/fstab:
/dev/scd0 /cdrom iso9660 ro,user,noauto 0 0
Gebruik bzip2
in plaats van enig ander compressieprogramma zoals
gzip
of pkzip
. Het zal je zo'n 30% diskruimte besparen
voor grotere (>100kb) bestanden. Je kunt het downloaden vanaf
http://www.muraroa.demon.co.uk/
In plaats van het schrijven van een echte audio-CD, kun je optioneel je WAV audio bestanden converteren naar MP3 audio bestanden en ze als reguliere bestanden opslaan op een ISO-9660 bestandssysteeem. Gewoonlijk geeft MPEG III je een compressie van 1:10. Natuurlijk zijn de meeste CD-spelers niet in staat bestanden te lezen... dit is de keerzijde. Aan de andere kant, waarom zou je de muziek voor je volgende feest niet afspelen vanaf de harddisk? 18 Gbytes is voldoende voor 3000-4000 titels. :-)
Een software MPEG III-encoder is beschikbaar vanaf
http://www.sulaco.org/mp3/
Een MPEG III-speler is beschikbaar vanaf
http://www.mpg123.org/
Voor opgenomen spraak kun je wellicht proberen de grootte te beperken door
gebruik te maken van shorten
of "GSM lossy speech compression":
ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/ http://kbs.cs.tu-berlin.de/~jutta/toast.html
Je hebt hiervoor een 1.44 MB opstartbare diskette nodig. Maak een exacte image van deze diskette met behulp van de opdracht:
dd if=/dev/fd0 of=boot.img bs=18k
Plaats deze diskette-image in de directory met de verzameling bestanden (of in een subdirectory daarvan, zoals je wilt). Vertel mkisofs over dit bestand met de optie '-b' en gebruik ook optie '-c'. Lees voor details het bestand README.eltorito in de mkisofs-distributie.
Een interessante toepassing voor een aangepaste opstartbare CD 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 gegevens van gebruikers op een fileserver te plaatsen). Het Duitse computermagazine c't heeft een artikel over dit onderwerp in uitgave 11/99, pagina 206 ( http://www.heise.de/).
Een aantal details over de opstartbare RedHat CD-ROM zijn beschikbaar vanaf http://members.bellatlantic.net/~smithrod/rhjol-technical.html.
Er is voor Linux een overlay filesystem beschikbaar, welke wordt gemount over de CD-ROM en alle schrijfbewerkingen onderschept. Nieuwe en gewijzigde bestanden worden elders opgeslaten, maar voor de gebruiker lijkt het alsof de CD-ROM wordt aangepast. Zie voor meer informatie http://home.att.net/~artnaseef/ovlfs/ovlfs.html.
Wanneer dat niet volstaat voor wat je nodig hebt: wacht totdat het UDF-bestandssysteem door Linux wordt ondersteund of help bij de ontwikkeling ervan (zie http://trylinux.com/projects/udf/. Thans wordt alleen het lezen van CD-media ondersteund door een beperking in de CD-ROM drivers van de Linux kernel.
Ja. Er is gemeld dat het met op z'n minst 3 writers werkt op volledige snelheid (6x) op een PC met 233 Mhz en een enkele SCSI-bus draaiend onder kernel 2.2.12. Je hebt een recente versie van de Linux kernel (2.2.12 of hoger) nodig.
Slechts hoofdstuk 2 is Linux-specifiek. Je kunt hoofdstuk 3 en 4 toepassen zelfs als je een andere familie besturingssystemen dan Linux draait. Bekijk alsjeblieft de bestanden README.NetBSD, README.aix, README.hpux, README.next, README.solaris, README.sunos, README.vms of README.xxxBSD uit de cdrecord-distributie.
Waarschijnlijk wel. Compileer cdrecord voor je platform en geef de opdracht "cdrecord -scanbus". Lees het README.* bestand voor je Unix distributie wat met de broncode van cdrecord wordt meegeleverd. Echter niet alle Unix-varianten kunnen de RockRidge, Joliet en HFS extensies lezen op je nieuw geschreven CD-R.
Je hebt twee opties. Of je gebruikt het ingebouwde configuratiebestand van cdrecord, of je gebruikt een shellwrapper zoals in onderstaand voorbeeld. Dit shellscript lees een configuratiebestand in, waarin regel voor regel een opsomming is gegeven van de opties en parameters aan cdrecord. De namen zijn exact hetzelfde als op de opdrachtregel, maar dan zonder het voorafgaande koppelteken. Commentaar is toegestaan. Bijvoorbeeld:
# verbose
v
# stel de snelheid van de writer in
speed=2
# de device-coördinaten in de vorm BUS,ID,LUN
dev=0,6,0
De configuratiebestanden voor de wrapper horen in /etc/cdrecord/ en er moet naar worden gerefereerd op de opdrachtregel. Bijvoorbeeld: als je wilt verwijzen naar het configuratiebestand /etc/cdrecord/mywriter.cfg, dan kun je de opdracht "cdrecord.sh mywriter.cfg -audio track1..." geven. Alles na mywrite.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. Sluit af."
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 "Execution of cdrecord failed."
Ergens na de eerste 32 k op de CD, is een blok met informatie over de CD te vinden. Je kunt de informatie met het volgende shellscript extraheren:
#! /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
Wanneer je CD-RW media overschrijft, dan geef je de parameter blank=fast op aan cdrecord. Dat is alles. Zie de manpage van cdrecord voor details over deze parameter.
Allereerst moet het image voor een multi-sessie CD worden geformatteerd met het ISO-9660 bestandssysteem met RockRidge-extensies. En je moet de optie -multi aan cdrecord opgeven zolang je nog sessies toe wilt kunnen voegen. Dus op z'n minst moet je bij de eerste sessie, de optie -multi specificeren.
Een aantal CD-writers hebben geen ondersteuning voor CD-ROM XA mode 2 of voor session-at-once (SAO), dus moet je de switch -data aan cdrecord opgeven op de opdrachtregel.
De images voor de tweede en daaropvolgende sessies zijn iets gecompliceerder te genereren. Mkisofs moet weten waar de vrije ruimte op de CD-R begint. Die informatie kan worden vergaard door gebruik te maken van de optie -msinfo van cdrecord (zie voor een 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
private_collection/ \
Lees voor meer informatie alsjeblieft het bestand README.multi welke met cdrecord wordt gedistribueerd.
Gemeld via e-mail: In de meeste CD-writer docs staat geschreven gebruik te maken van een aparte SCSI-bus als je overgaat van een CD-ROM naar een CD-writer en ik heb dit zelf gezien in het volgende scenario:
Adaptec 2940UW SCSI-kaart, een 24x SCSI CD-ROM en een 4x4 SCSI CD-writer. Toen ik de CD-writer kreeg, werd het geleverd met een eigen ISA SCSI-kaart welk slechts één device kon afhandelen. Ik besloot dit om te gooien en mijn betere adaptec kaart voor alles te gebruiken. Ik bemerkte dat er nogal veel buffer underruns optraden als ik op 4x snelheid opnam, maar zodra ik had geprobeerd de ISA SCSI kaart aan te sluiten, ik geen problemen had. Ik ken 2 andere mensen (beiden gebruiken een adaptec 2940 kaart) die exact dezelfde symptomen ervaarde, gewoonlijk bij het schrijven van een CD-ROM naar een CD-recorder. Ik ervaarde dit probleem echter nooit als ik van een harddisk naar een CD-writer op dezelfde bus schreef.
Gewoonlijk is een bestandstransport met FTP snel genoeg om zelfs over een 10 Mbit ethernet een CD-recorder op viervoudige (4x) snelheid van invoer te voorzien. Je kunt via een fifo de ftp-client aan cdrecord koppelen. Maak eerst een fifo genaamd cdimage:
mkfifo cdimage
ftp other.host.org
get cdimg cdimage
Behandel cdimage als een regulier bestand, d.w.z. roep de volgende opdracht aan:
cdrecord dev=0,1,0 speed=2 cdimage
Je ftp-client zal bemerken wanneer cdrecord van het bestand wil lezen en zal vanaf de ftp-host beginnen met het transporteren van de gegevens.
Je moet de disk-at-one modus (DAO) gebruiken om van het kraken af te komen.
Je kunt de setuid-bit toevoegen aan het uitvoerbare bestand cdrecord. Dit is echter wellicht een beveiligingsrisico. Het slechts instellen van de permissies op de device bestanden helpt niet aangezien cdrecord bevoorrechte opdrachten uitvoert via de SCSI generic interfaces.
which cdrecord
chown root.root /usr/bin/cdrecord
chmod 4111 /usr/bin/cdrecord
Je krijgt de gedrukte specificaties bij Philips en ze zijn duur.
Hier vind je utility's voor de aanmaak van MPEG video's en Video-CD's: http://www.mainconcept.de/
http://www.johanni.de/munich-vision/vcd/
Politiek correcte mensen noemen de Berkeley-tools en andere YUV-strategiën. Het gebruik ervan is gecompliceerd, vergt veel tijd en harddiskruimte en geeft je geen audio-track. Ik raad aan gebruik te maken van conceptuele toepassingen op hoger niveau zoals de hierboven genoemde.
SCSI CD-writers zijn iets eenvoudiger in te stellen met betrekking tot CD-writing onder Linux. En er wordt van vermeld dat ze voorzien zijn van een beter foutenherstel. Of dat de hogere prijs compenseert kan over het algemeen niet worden beantwoord.
Het overbranden van een CD-R is niets speciaals. Het is op eigen risico dat de data op de CD-ROM past, maar dat is alles. Er zijn onder Linux geen 650 Mbytes-limieten in de software.
Het zal stoppen met schrijven. Dus kunt je favoriete backuptool koppelen met cdrecord door gebruik te maken van een pipe, zoals in "bru -size=640m -f - | cdrecord dev=0,1,0 speed=2 -". Je moet speciale aandacht schenken aan het backuputility als de backup meerdere CD-R's beslaat.
Ik zou geen manier weten, maar iedereen is welkom deze feature toe te voegen aan de Linux kernelsource.
Goede vraag.
Een CD-ROM welke moet kunnen worden ingelezen door alle systemen kan alleen gebruik maken van het ISO 9660 formaat. Dat betekent stomme 8+3 bestandsnamen van het oude MS-DOS en zonder enige HFS (Macintosh), Joliet (Microsoft) of RockRidge (nieuwere Unices) extensies. Er bestaat geen extensie voor langere bestandsnamen, welke kan worden ingelezen door alle besturingssystemen.
Audio CD-players zijn alleen in staat om te gaan met tracks die zijn opgeslagen in de eerste sessie. Met andere woorden: je kunt geen audio-tracks toevoegen in opeenvolgende sessies. Het schrijven van data tracks in de tweede sessie verbergt ze echter effectief van audio CD-spelers. Op deze wijze kun je voorkomen dat je een stille track op je gemengde modus CD (audio en data gemengd) hebt.
Een antwoord hangt af van je wensen. Als je reden hebt een nieuwe computer te kopen, is hier het antwoord van de internationale associatie van computerfabrikanten: Wat je ook van plan bent, je hebt een processor nodig van 800 Mhz. Omdat het niet in je bestaande moederbord past, heb je ook een nieuw moederbord nodig. De makkelijkste oplossing is gewoon een typisch compleet aanbod zoals te zien in advertenties op TV te kopen. Negeer alsjeblieft de rest van deze sectie.
Nu het geval als je gewoon een rationeel antwoord wilt: Ik beschreef succesvol verscheidene CD-ROM's met behulp van een "486'r" van 66 Mhz. Alhoewel MS dit niet meer aanmerkt als PC's, maar aanbeveelt daar een CE versie op te draaien (gezien op CeBIT), draait Linux zelfs prima op de voorgangers van de Pentium en is zelfs in staat er CD's op te beschrijven. Je kunt er makkelijk achterkomen of de kracht van je hardware voldoende is voor het beschrijven van CD-ROM's door het uit te testen. Voeg gewoon de opdrachtregel -dummy toe wanneer je cdrecord uitvoert en de laser zal uitblijven. Bekijk het schrijfproces.