In altre parole questa è la sezione di solito chiamata "frequently asked questions with answers". Se hai dei problemi con il tuo partner, i tuoi bambini o il cane puoi inserirli nella sezione, sempre che abbiano a che fare con la scrittura di CD-R o anche solo se si tratta di situazioni divertenti.
Prova. Usa l'opzione -dummy per effettuare una simulazione con cdrecord. Fai quello che vuoi e osserva se il processo viene interrotto o meno.
Se alimenti cdrecord direttamente da mkisofs tieni presente che
processi che occupano molto il disco come l'aggiornamento del
database locate mettono in pericolo il flusso di dati e quindi la
salute del tuo CD; meglio controllare che non vengano lanciati
dal cron
o anacron
mentre stai masterizzando.
Di solito è così bassa che il suo impatto non è visibile. Comunque è piuttosto facile costruire casi patologici di frammentazione, che abbassino il trasferimento degli hard disk sotto i 100 kbytes/secondo. Basta non farlo. :-)
Sì, i file sull'hard disk vengono frammentati durante gli anni. Più questo accade velocemente più il filesystem si riempie. Lascia sempre un 10% o 20% di spazio libero e non dovresti avere problemi nella scrittura di CD.
Se non ne sei sicuro dai un'occhiata ai messaggi stampati al boot, la percentuale di frammentazione è stampata mentre vengono controllati i filesystem. Puoi controllare questo valore con il comando molto rischioso:
shell> e2fsck -n /dev/sda5 # '-n' is important!
[robaccia-lascia perdere]
/dev/sda5: 73/12288 files (12.3% non-contiguous)
In questo esempio la frammentazione è molto alta - ma ci sono solo
73 file molto piccoli su questo filesystem (usati in /tmp
) quindi
il valore non è allarmante.
Vi è un'utility in fase sperimentale chiamata e2defrag per deframmantare filesystem extended-2. La versione corrente non funziona ancora abbastanza bene per essere usata anche solo in ambienti privati. Se vuoi veramente deframmentare il tuo filesystem, crea una copia di backup (meglio due), fai pratica nel ripristino dei dati e crea un nuovo filesystem (distruggendo il vecchio) e ripristina i dati. In due parole questa è la tecnica più sicura.
Certo. L'unico filesystem che non è abbastanza veloce per masterizzare è il network filesystem (NFS).
Anch'io usavo UMSDOS per condividere lo spazio su disco fra Linux e DOS/Win su un PC (486/66) dedicato alla masterizzazione.
Sì. Puoi mettere su un CD qualsiasi filesystem vuoi. Ma altri sistemi operativi diversi da Linux non saranno in grado di usarlo.
Ecco un esempio passo a passo:
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
su empty_file (che ora non è più vuoto) come se
fosse un'immagine ISO-9660Se vuoi aggiungere un CD come questo in /etc/fstab
ne devi disabilitare
il controllo, cioè per esempio:
/dev/cdrom /cdrom ext2 defaults,ro 0 0
Il primo 0 significa che il disco non deve essere incluso nei dump, il secondo (importante) indica di non controllare la presenza di errori al boot (fsck troverebbe degli errori sul CD).
Ci sono parecchi pacchetti software. Il più nuovo si chiama "cdparanoia" e puoi scaricarlo da:
http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia/index.html
Oppure puoi usare una combinazione di "cdda2wav" e "sox", disponibili presso sunsite e i suoi mirror:
ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gzftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz
Con cdda2wav
puoi copiare un intervallo specifico (oppure un'intera traccia) da
un CD Audio e convertire il risultato in un file .wav. sox
al contrario riconverte
i file .wav nel formato cdda tipico dei CD audio dimodoché possano essere scritti
su un CD-R con cdrecord
. Di solito non è necessario usare sox
perché le nuove
versioni di cdrecord
hanno già il supporto per i file .au e .wav.
Il file drivers/scsi/scsi.c
contiene queste righe:
/*
* 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.
*/
(NDT: In pratica il comando "aggiunge" al sistema una nuova periferica indicata dalle coordinate HA, CH, ID, LUN. Occhio, però! Primo: questa funzione è ancora una beta; Secondo: SCSI non è USB e quindi non è una buona idea collegare delle periferiche "a caldo". L'ho visto fare con successo, ma non è una garanzia... Questa funzione è stata ideata per aggiungere periferiche già collegate e anche in questo caso non è sicura al 100%)
Tieni presente che dovrebbe essere usata solo per aggiungere periferiche alla fine della catena. Se la inserisci nel mezzo rompi le scatole al meccanismo di assegnazione dei nomi (directory /dev) e potresti distruggere tutti i tuoi dati.
Sì. Tieni presente però che qualsiasi errore di lettura dell'originale (per polvere o graffi) si ripercuoterà in una copia difettosa.
(NDT: spiacente ma non è vero nella maggior parte dei casi. CD che presentano incongruenze fra "user data" e Error Correction Codes/Error Detection Codes non possono essere replicati esattamente (qualcuno ha detto Playstation?) in quanto il firmware del lettore corregge automaticamente questi "errori". In pratica non è possibile leggere/scrivere quello che si vuole sul CD ma 280 byte di ogni settore devono essere una funzione dei 2048 di dati. Si tratta di 4 byte per l'individuazione degli errori e 276 byte per la loro correzione. Una copia 1:1 è possibile con cdrdao e il driver generic-mmc-raw, che supporta per limitazioni fisiche solo una ristretta quantità di hardware. Se non hai capito niente di questo dai un'occhiata alle specifiche SCSI-2 e tanti auguri).
Primo caso: hai un masterizzatore e un lettore CD-ROM separato. Se impartisci il comando
cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0
puoi estrarre un flusso di dati dal lettore /dev/scd0
e scriverlo direttamente
tramite il masterizzatore che ha ID=3 a velocità 2X.
(NDT: in questo caso si effettua una copia di "cooked data", cioè si copia solo l'area di dati utente in ogni settore. L'altro caso possibile è la copia di "raw data" in cui vengono copiate dal CD le seguenti aree:
Secondo caso: non hai un lettore CD-ROM separato. Mi sa che devi usare il masterizzatore per creare l'immagine del CD-ROM:
dd if=/dev/scd0 of=cdimage
Questo comando legge il contenuto del CD dalla periferica corrispondente a /dev/scd0 e lo scrive nel file "cdimage". Il contenuto di questo file è identico a quello generato da mkisofs
, quindi è possibile procedere come descritto precedentemente nel capitolo (cioè usare il file cdimage come input per cdrecord). Se ti interessa avere un indice dell'avanzamento del processo e altre cosucce carine da vedersi puoi usare sdd
di Jörg Schilling.
Se si presentano errori installa una versione recente di cdrecord che contiene lo strumento "readcd" (presente nella directory misc/). Dà gli stessi risultati di dd, ma ripete la lettura del settore più volte in caso di errori. (NDT: per chi usa cdrdao è disponibile un'opzione 'read-cd' che legge il contenuto del disco e ne salva la struttura in un file (la Table Of Contents) che verrà poi utilizzato nel processo di scrittura per replicare la struttura del CD originale.)
Sì. I kernel più nuovi (2.0.36 e oltre) hanno il suppporto per il formato Joliet. Ricordati di usare le parole chiave iso9660 e joliet (che poi è solo un'estensione) nel file /etc/fstab. Per maggiori dettagli, visita la pagina http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html.
Allo stesso modo che con il lettore. Niente trucchi. Tieni presente che devi usare le periferiche scd (SCSI CDROM) per montare i CD-ROM in lettura anche se possiedi un CD-ROM ATAPI (ricorda che hai configurato le tue periferiche ATAPI con l'emulazione SCSI). Per esempio nel file /etc/fstab potresti mettere:
/dev/scd0 /cdrom iso9660 ro,user,noauto 0 0
Usa bzip2
invece di gzip
o pkzip
. Ti fa risparmiare fino al 30% di spazio
per file più grandi di 100KB. Scaricatelo all'indirizzo
http://www.muraroa.demon.co.uk/
Invece di masterizzare un vero CD audio puoi convertire i file .wav in .mp3 e piazzarli su un CD ISO9660 come normalissimi file. Generalmente la compressione MPEG III ha un'efficienza di 1:10. Ovviamente lo stereo non può leggere dei file... questo è il rovescio della medaglia. Però potresti sempre usare l'hard-disk per la prossima festa; con 18GB puoi avere a disposizione 3000-4000 titoli (NDT: e non dimenticarti di invitarmi! :).
Un compressore MPEG III è disponibile presso:
http://www.stud.ifi.uio.no/~larsi/other/8hz-mp3-cheng.tar.gz
Un riproduttore MPEG-III è disponibile presso:
http://homepages.uni-tuebingen.de/student/michael.hipp/mpg123/
Per la voce campionata potresti ridurne le dimensioni usando la "GSM lossy speech compression":
ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/
(NDT: per chi quando ha letto il titolo della sezione ha subito pensato a un buon
vecchio e sano oversize (della serie: scrivi finché c'è plastica) ho buone notizie:
in generale i driver non sono schizzinosi quindi se il masterizzatore
è fisicamente
in grado di effettuare oversize non ci sono
problemi. Che io sappia i driver che lo permettono sono :
Teac-CDR50/55, generic-mmc di cdrdao e cdrecord.
Secondo la documentazione di cdrdao QUALSIASI
masterizzatore utilizzabile
con il driver generic-mmc-raw dovrebbe essere in grado di effettuare oversize, il firmware non
dovrebbe essere in grado di impedirlo).
Devi avere un floppy da 1.44 MB bootabile. Creane l'esatta immagine con il comando
dd if=/dev/fd0 of=boot.img bs=18k
Piazza l'immagine nella directory che contiene la tua collezione di file (o anche in una sottodirectory, fai tu...). Passa a mkisofs il nome del file con l'opzione '-b' e in più usa '-c'. Per maggiori informazioni leggiti il file README.eltorito nella distribuzione di mkisofs.
Un'applicazione interessante per un CD di boot personalizzato è un ambiente DOS o Windows a prova di virus. Così puoi risparmiare i soldi per un hard-disk (se hai una rete e usi samba per rendere disponibili dei file utente su un fileserver). Il giornale di informatica tedesco C't ha un articolo a tal proposito nel numero 11/99, pagina 206 ( http://www.heise.de/).
Alcuni dettagli sul CD-ROM di boot della RedHat li trovi presso: http://www.channel1.com/users/rodsmith/rhjol-technical.html.
Sì. C'è un filesystem di overlay per Linux che puoi montare al di sopra del CD-ROM e che intercetta tutte le operazioni di scrittura. I file nuovi e quelli modificati sono memorizzati da qualche altra parte, ma all'utente sembra proprio di averli modificati. Per maggiori informazioni dai un'occhiata a: http://home.att.net/~artnaseef/ovlfs/ovlfs.html.
Se non ne hai abbastanza devi solo aspettare che Linux supporti il filesystem UDF, oppure rimboccati le maniche e dai una mano: http://trylinux.com/projects/udf/. Al momento è supportata la sola lettura a causa di limitazioni dei driver per CDROM nel kernel.
Sì. E' stato testato con 3 masterizzatori 6x funzionanti a piena velocità su di un PC con processore a 233 Mhz, un controller SCSI a singolo canale e kernel 2.2.12. Ti serve o una versione recente del Kernel (2.2.12 o superiore) oppure una patch per avere più buffer nel driver SCSI generico ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha; funziona per versioni sino alla 2.2.5.
La risposta a questa domanda era obsoleta ed è stata rimossa. La domanda in sé viene mantenuta per avere uno schema di numerazione costante.
Solo il cap.2 è specifico per Linux. Puoi applicare i capitoli 3 e 4 anche ad altri sistemi operativi. Guarda i file README.NetBSD, README.aix, README.hpux, README.next, README.solaris, README.sunos, README.vms o README.xxxBSD dalla distribuzione di cdrecord.
Hai due possibilità. Usare il file di configurazione per cdrecord oppure uno shell-wrapper come quello indicato qui sotto. Questo script per la shell legge un file di configurazione, nel quale sono indicate le opzioni e i parametri per cdrecord riga per riga. I nomi sono esattamente gli stessi che sulla riga di comando, ma senza essere preceduti da -. I commenti sono possibili. Esempio:
# be verbose
v
# set the speed of the writer
speed=2
# the device-coordinates in the form BUS,ID,LUN
dev=0,6,0
I file di configurazione per lo script sono all'interno di /etc/cdrecord e devono essere indicati nella riga di comando. Esempio: se vuoi riferirti alla configurazione /etc/cdrecord/mywriter.cfg, allora devi impartire il comando "cdrecord.sh mywriter.cfg -audio track1...". Ogni parametro dopo mywrite.cfg è passato a cdrecord.
#! /bin/bash
CFGDIR="/etc/cdrecord"
CFG="$1"
shift
ARGS_LEFT="$@"
if [ ! -f "$CFGDIR/$CFG" ]
then
echo "Configuration file $CFGDIR/$CFG not found. Exiting."
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."
Da qualche parte dopo i primi 32k sul CD vi è un blocco contenente le informazioni sul CD. Puoi estrarre queste informazioni con questo script:
#! /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
Per riscrivere un supporto CD-RW specifica il parametro blank=fast a cdrecord. Tutto qui. Dai un'occhiata alla pagina man di cdrecord per maggiori dettagli su questo parametro.
Per prima cosa l'immagine per un CD multisessione deve essere formattata con il filesystem ISO9660 e le estensioni RockRidge. In più devi usare l'opzione -multi di cdrecord se vuoi ancora aggingere nuove sessioni. Quindi, almeno per la prima devi usare l'opzione -multi.
Le immagini per la seconda e successive sessioni sono un poco più difficili da generare. Mkisofs deve sapere dove inizia lo spazio libero sul CD. ti puoi procurare questa informazione con l'opzione -msinfo di cdrecord (ecco un esempio).
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/ \
Per maggiori informazioni leggi il file README.multi incluso nella distribuzione di cdrecord.
Molte specifiche di masterizzatori indicano di usare un bus SCSI separato se i dati viaggiano da un CD-ROM verso un masterizzatore, e ho potuto constatarlo in questa occasione.
Controller Adaptec 2940UW SCSI, 24x SCSI CD-ROM e masterizzatore 4x4 SCSI. Quando mi è arrivato il masterizzatore aveva nella scatola il suo controller ISA-SCSI che poteva pilotare una sola periferica. Ho pensato di lasciarlo stare e di usare il mio controller Adaptec per ogni cosa. Ho notato che spesso mi capitavano svuotamenti del buffer durante la scrittura a 4X, ma da quando ho iniziato ad usare il controller ISA-SCSI i problemi sono scomparsi. Conosco altre 2 persone (che usano controller Adaptec 2940) che hanno avuto esattamente gli stessi problemi, durante la scrittura "al volo". Non ho mai avuto problemi di questo tipo passando dall'HD al masterizzatore sullo stesso bus.
Di solito un trasferimento via FTP è sufficientemente veloce per sostenere una scrittura a 4X, anche su una ethernet a 10 Mbit. Potete usare cdrecord in coppia con un client ftp attraverso una fifo. Prima create una fifo chiamata cdimage:
mkfifo cdimage
ftp other.host.org
get cdimg cdimage
Quindi trattate la fifo come una normale immagine, per es. con il comando:
cdrecord dev=0,1,0 speed=2 cdimage
Il vostro client ftp si accorgerà che cdrecord vuole leggere dal file e inizierà il trasferimento dati.
Dovete utilizzare la modalita disk-at-once (DAO) per eliminarli.
Potete rendere setuid l'eseguibile di cdrecord. Questo però potrebbe essere un rischio per la sicurezza. Impostare i permessi sui file di periferica non aiuta in quanto cdrecord manda comandi privilegiati attraverso l'interfaccia SCSI generica.
which cdrecord
chown root.root /usr/bin/cdrecord
chmod 4111 /usr/bin/cdrecord
Probabilmente sì. Compilate cdrecord per la vostra piattaforma e date il comando "cdrecord -scanbus". Leggete i file README.* per la vostra versione di Unix che sono distribuiti con i sorgenti di cdrecord. Comunque, non tutte le versioni di Unix possono leggere le estensioni RockRidge, Joliet o HFS.
Potete ottenere le specifiche stampate dalla Philips ma sono molto costose.
Anch'io.
Per quanto riguardo la scrittura di CDR sotto Linux, i masterizzatori SCSI sono leggermente più facili da impostare. E si dice che abbiano una migliore gestione degli errori. Se questo compensi il costo maggiore non è una domanda cui sia possibile rispondere in generale.
Effettuare l'overburn di un CD non è niente di speciale. È a tuo rischio provare a far stare i dati sul CD, ma questo è tutto. Non vi è alcun limite ai 650MB nel software sotto Linux.
Terminerà la scrittura. Quindi è possibile accoppiare il vostro strumento di backup preferito a cdrecord tramite una pipe, come "bru -size=640m -f - |cdrecord dev=0,1,0 speed=2 -". È importante prestare molta attenzione alle opzioni dello strumento di backup.
Non saprei come fare, ma chiunque è il benvenuto per aggiungere questa caratteristica ai sorgenti del kernel di Linux.
Buona domanda.
Un CD-ROM che debba essere letto su molti sistemi può solo usare il formato semplice ISO9660. Questo significa stupidi nomi file in formato 8.3 dal vecchio MS-DOS e senza alcuna estensione HFS (Macintosh), Joliet (Microsoft) o RockRidge (Unix più recenti). Non vi è alcuna estensione per nomi di file più lunghi che possa essere letta da tutti i sistemi operativi.
I lettori di CD Audio sono in grado di gestire solamente le tracce audio memorizzate nella prima sessione. In altre parole, se aggiungete tracce in sessioni successive, queste non verranno lette dal vostro stereo. Scrivere una seconda sessione può essere utile per nascondere una traccia dati al lettore. In questo modo potete evitare che vi sia una traccia di silenzio, come accade nel caso di CD con tracce audio e dati mescolate.
NDT: Per quanto riguarda i dischi con tracce audio e dati esistono 2 possibilità.
Utilizza la modalità di scrittura DAO (Disc At Once) per i tuoi CD audio e non ci saranno più problemi.