Sommario dei passi necessari
Create una grande partizione per ospitare i file immagini dei cd.
Copiate il CD in una immagine file con il comando dd.
Montate l'immagine del CD all'interno dell'albero delle directory.
Condividete la directory sulla rete utilizzando Samba, NFS, ecc.
Siate anche sicuri di aver letto la Sezione 1 e la Sezione 1.2.
Scegliete (o create) un file system con la maggior parte possibile di spazio libero su di esso. Tenete in mente che i CD-ROM possono contenere circa 640 Mb di dati, perciò se volete condividere 8 CD-ROM sulla vostra rete, avrete bisogno di 5.1 Gb di spazio disponibile..
Loggatevi come root oppure andate "su" verso root.
bash# df -h Filesystem Size Used Avail Use% Mounted on /dev/hda5 1.4G 82M 1.3G 6% / /dev/hda1 15M 827k 14M 6% /boot /dev/hda7 2.4G 1008M 1.3G 43% /usr /dev/hda8 23.6G 11.7G 11.7G 50% /home |
Qui il filesystem /home ha lo spazio libero maggiore, perciò esso è il filesystem più adatto per essere usato per copiarci le immagini dei Cd sopra.
bash# cd /home bash# mkdir image bash# cd image |
Adesso, copiate il CD come immagine ISO. Dovreste conoscere il nome del dispositivo del vostro CD-ROM (normalmente /dev/cdrom, potrebbe essere /dev/scd0 per i Cd-Rom SCSI). Userò la distribuzione Mandrake su Cd-ROM come esempio:
bash# dd if=/dev/cdrom of=mndrk81.iso |
Il termine "if=" è il file di ingresso, il termine "of=" è il file di uscita. Dovreste vedere un messaggio che vi visualizza il numero di record in ingresso e in uscita.
Se vedete errori di I/O, probabilmente saranno principalmente dovuti alle tracce iniziali e alle tracce finali del cd. Se il numero dei record in ingresso e quello dei record in uscita non corrispondono, potreste avere un problema, anche se l'immagine potrebbe essere corretta, ma non potrete mai sapere se gli errori sono avvenuti durante la lettura della parte ISO o no (dovuto alla polvere o ai graffi sul cd).
Altre utilità per leggere i CD esistono, come readcd o sdd.
Maggiori informazioni circa la copia speculare dei CD si trova nel [CD-Writing-HOWTO], vedi la Sezione 1.3.
I miei ringraziamenti a Giblhauser Carl Michael per le informazioni sui runoutblock .
Il prossimo passo è montare le immagini ISO. Create una directory sotto /mnt per sistemarvi i file montati.
bash# cd /mnt bash# mkdir iso bash# cd iso bash# mkdir mndrk81 |
Adesso montate l'immagine ISO in questa directory appena creata
bash# mount -o loop,unhide -t iso9660 -r /home/image/mndrk81.iso /mnt/iso/mndrk81 |
La variabile"-o loop" significa usare l'opzione che monta un file come un dispositivo a blocchi. L'opzione unhide mostra i file nascosti. La variabile "-t iso9660" significa che il file è in formato CD-ROM iso 9660. La variabile "-r" significa che il file system è montato in sola lettura.
Grazie a Amar Chaouche per aver precisato l'opzione unhide per il comando di mount.
Adesso potete:
bash# cd mndrk81 bash# ls -al |
Dovreste vedere un elenco (ls) dei file e delle directory che sono sul Cd attuale (solo che adesso essi sono dentro l'immagine ISO, di cui state guardando dentro il contenuto.
Adesso che avete montato manualmente l'immagine, e siete sicuri che funzioni, avete bisogno di inserire una voce nel file /etc/fstab affinché l'immagine sia rimontata al prossimo avvio del sistema. E' importante inserire la voce DOPO quella per il filesystem genitore, per esempio /home (ho usato vim, ma emacs, joe, pico o jed lavorano altrettanto bene):
bash# vim /etc/fstab |
Dopo la linea che assomiglia alla seguente (o qualunque filesystem in cui abbiate sistemato le vostre immagini):
/dev/hda8 /home ext2 defaults 1 2 |
Inserite la seguente linea con il vostro editore di testi:
/home/image/mndrk81.iso /mnt/iso/mndrk81 iso9660 ro,loop,auto,unhide 0 0 |
Avete bisogno di Samba già installato e configurato per effettuare i seguenti passi (ciò è al di fuori dello scopo di queste istruzioni, vedete la Sezione 1.3). Se non è ancora installato, consultate le istruzioni sulla vostra distribuzione Linux per l'installazione del pacchetto Samba. O potete visitare il sito web su Samba a http://us1.samba.org/samba/samba.html per le istruzioni di installazione, gli eseguibili, e/o il codice sorgente.
Per condividere i vostri cd attraverso una finestra del network, semplicemente create uno share nel file /etc/smb.conf simile al seguente:
[cdimages] comment =Tutte le immagini dei cd condivisi path = /mnt/iso public = yes writable = no |
Ciò condividerà tutte le sottodirectory sotto la /mnt/iso directory nel network. Per montare la condivisione verso un drive locale (in questo caso il drive I:), aprite il prompt di MsDos su una macchina Windows e scrivete questo:
C:\> net use I: \\lavostramacchinalinux\immaginideicd |
Ogni immagine ora apparirà come una sottodirectory del drive I: sulla vostra macchina Windows.
Per montare solamente l'immagine del CD di Mandrake verso un drive locale (useremo M:, il drive principale, che corrisponde esattamente al CD così come è stato inserito nel drive CD-ROM), create la seguente condivisione nel file /etc/smb.conf.
[mndrk81] comment = Mandrake Linux 8.1 path = /mnt/iso/mndrk81 public = yes writable = no |
Quindi, al prompt del DOS, montatela con il seguente comando:
C:\> net use m: \\lavostramacchinalinux\mndrk81 |
Le condivisioni di Samba presentate qui sono state semplificate, e non sono sicure. Esistono parecchie opzioni per le condivisioni di Samba che limitano chi può montare le condivisioni, controllare come l'autenticazione dell'utente è effettuata, e anche se la condivisione è visibile attraverso le risorse di rete di una macchina windows.
Siate sicuri che NFS sia configurato e in esecuzione sulla vostra Linux Box, quindi aggiungete ciò che segue al file /etc/exports usando le vostre opzioni preferite:
# sample /etc/exports file /mnt/iso (ro,insecure,nohide,all_squash) |
L'opzione "nohide" vi permetterà di montare una directory madre, senza esplicitamente montare tutte le sottodirectory esportate da essa.
Adesso provate ad eseguire:
bash# exportfs -r |
Questo dovrebbe riesportare tutto nel vostro file /etc/exports.
Adesso, quando scrivete "showmount -e lavostramacchinalinux" dovreste vedere che la directory /mnt/iso è inclusa nella lista di directory esportate.