I nuovi Kernel Linux (2.4) vi permettono di aggiungere molti più dispositivi di loop più facilmente modificando /etc/modules.conf oppure attraverso l'uso dei parametri di boot.
I kernel più vecchi (2.2.?) hanno solamente il supporto per 8 dispositivi di loop compilato nel kernel. In breve, era possibile condividere solo 8 cd sulla rete con questo valore di default. Per superare questo limite, si aveva bisogno di modificare i sorgenti del kernel e ricompilare un nuovo kernel.
Usate i seguenti metodi per determinare quale versione di kernel state usando.
bash# uname -a |
oppure
bash# cat /proc/version |
I kernel attuali vi permettono di indicare il numero di dispositivi di loop senza ricompilare il kernel. Uno di questi metodi è di aggiungere una linea di opzioni ad /etc/modules.conf. Questo metodo funziona solo se il vostro supporto al loop è stato configurato come un modulo del kernel caricabile (che è il modo in cui la maggior parte delle distribuzioni Linux viene preconfigurato).
Modificate /etc/modules.conf e aggiungete la seguente linea
options loop max_loop=64 |
Dopo aver effettuato il cambio descritto sopra, semplicemente riavviate la macchina. Oppure potete provare ad usare rmmod e insmod per effettuare il cambio al volo, ma questo non funzionerà se avete un qualsiasi dispositivo di loop montato (otterrete un errore del tipo: dispositivo o risorsa occupata).
Se non avete il file /etc/modules.conf, il vostro modulo di configurazione potrebbe essere chiamato /etc/conf.modules (questo nome adesso è in disuso).
Continua con la Sezione 3.4.
Grazie a Paul A. Sand per le specificazioni sulle opzioni di /etc/modules.conf
Se il tuo supporto del loop è stato compilato direttamente nel kernel (in altre parole, non è caricato come modulo), potete aggiungere il numero di dispositivi di loop che intendete supportare al prompt di boot di Linux.
boot: linux |
O, se state usando LILO,
potete modificare il boot di Linux in /etc/lilo.conf e aggiungere o modificare l'opzione append=
. Ecco qui un esempio che mostra il parametro
append=
(nota: limitatevi ad aggiungere o modificare la linea aggiunta, non cambiate l'intero file per farlo assomigliare a questo oppure il vostro sistema potrebbe non riavviarsi più). Per maggiori informazioni circa LILO, consultate il
LILO mini-HOWTO a
http://www.linuxdoc.org/HOWTO/mini/LILO.html.
image=/boot/vmlinuz label=linux root=/dev/hdb5 initrd=/boot/initrd.img append=" max_loop=64" vga=788 read-only |
Dopo aver cambiato /etc/lilo.conf, è necessario eseguire il comando lilo affinché in cambiamenti abbiano effetto.
bash# lilo Added linux * Added linux-nonfb Added failsafe Added windows Added floppy |
Adesso riavviate il vostro sistema. Dopo il riavvio, potrete controllare il vostro file di boot digitando ciò che segue:
bash# cat /proc/cmdline |
Non sono sicuro che il modulo di loop (compilato come modulo) legga /proc/cmdline quando il modulo è caricato, e perciò potrebbe non essere necessaria nelle opzioni in /etc/modules.conf. E' possibile che si riesca (e se non riesce, dovrebbe). In breve: non l'ho testata.
Continua con la Sezione 3.4.
Grazie a Tony Melia per le info sul prompt di boot.
Se avete un kernel vecchio (v. 2.2) o se siete a vostro agio ricompilando il kernel, potete incrementare il numero dei dispositivi di loop supportati modificando il file /usr/src/linux/drivers/block/loop.c..
Se constatate che i sorgenti del kernel non sono installati sulla vostra macchina, avrete bisogni di consultare la documentazione sulla vostra distribuzione Linux su come installarli (i sorgenti del kernel esistono con tutte le distribuzioni - fanno parte della licenza GNU GPL.
Cambiate il numero nella linea seguente in accordo a quanti dispositivi di loop avete bisogno.
#define MAX_LOOP 16 |
Compilate il nuovo kernel come modulo se ne è il caso. Se avete bisogno di aiuto nell'iniziare a fare questo, leggete il /usr/src/linux/README o consultate il seguente link The Linux Kernel HOWTO.
Continua con la Sezione 3.4.
Dovreste controllare quante voci avete in /dev per i vostri dispositivi di loop.
bash# ls -l /dev/loop* |
Il comando mknod crea i dispositivi nella directory
/dev. I dispositivi di loop hanno un numero maggiore di sette "7", e i numeri minori cominciano da "0".
Se il vostro MAX_LOOP
è stato definito come "8" in
/usr/src/linux/drivers/block/loop.c, dovreste avere
/dev/loop0 fino
/dev/loop7.
Per creare il dispositivo /dev/loop8,
usate il seguente comando (sostituite il numero giusto di cui avete bisogno per entrambi gli "8" nell'esempio sotto).
bash# mknod -m660 /dev/loop8 b 7 8 |
Controllate i permessi del proprietario e del gruppo & sul nuovo file (usando ls -l). Potete cambiare il proprietario e il gruppo usando il seguente comando:
bash# chown root.disk /dev/loop8 |
Potete cambiare i permessi usando il seguente comando:
bash# chmod 666 /dev/loop8 |