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.
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.
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.
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.
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:
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 (die niet langer
leeg is) alsof het een ISO-9660-image is.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).
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.
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.
<! -- 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.
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.
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
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
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.
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/.
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).
In het Duitse computermagazine "c't" stond in de uitgave van november 1996 een lijst tips aangaande de blanco CD-R's:
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.
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."
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
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.
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.
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.
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.
Je moet disk-at-once modus (DAO) gebruiken om van het kraken af te komen.
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
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.
Je kunt de afgedrukte specificaties bij Philips verkrijgen en ze zijn duur.
Ik ook.
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.
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.
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.
Ik weet geen manier, maar iedereen is welkom deze feature aan de Linux-kernel sources toe te voegen.
Goeie vraag.
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.
Ik betwijfel of gebruikelijke CD-players daar mee om kunnen gaan.