Nieuwere Linux kernels (2.4) bieden je de mogelijkheid op eenvoudige wijze meer loopdevices toe te voegen door het bewerken van /etc/modules.conf of via het gebruik van een bootparameter.
Oudere kernels (2.2 ?) boden slechts ondersteuning voor 8 loopdevices in de kernel gecompileerd. Je kon dus slechts 8 CD's op een netwerk delen met deze standaardwaarde. Om meer dan de standaard te ondersteunen, moet je de kernelsource aanpassen, en een nieuwe kernel compileren.
Gebruik de volgende methoden om vast te stellen wat het versienummer van je actieve kernel is.
bash# uname -a |
of
bash# cat /proc/version |
Huidige kernels staan je toe het aantal ondersteunde loopdevices in te stellen zonder de kernel opnieuw te compileren. Een van deze methoden bestaat eruit een options regel toe te voegen aan /etc/modules.conf. Deze methode werkt alleen als loop ondersteuning is geconfigureerd als een laadbare kernel module (zo worden de meeste grotere Linux distributies nu voorgeconfigureerd).
Wijzig /etc/modules.conf en voeg de volgende regel toe:
options loop max_loop=64 |
Na het maken van de bovenstaande wijziging, kun je simpelweg rebooten. Of je kunt proberen gebruik te maken van rmmod en insmod om de wijziging te activeren, maar dit zal niet werken als je thans enige loopdevices hebt gemount (je krijgt de foutmelding: loop: Device or resource busy).
Als je geen /etc/modules.conf bestand hebt, dan kan je module configuratiebestand /etc/conf.modules zijn genoemd (deze naam is nu verouderd).
Ga verder met paragraaf Aanmaken van loopdevices in /dev.
Met dank aan Paul A. Sand voor het wijzen op de /etc/modules.conf option.
Als je loop ondersteuning direct in de kernel is gecompileerd (met andere woorden, het is niet als een module geladen) dan kun je het aantal loopdevices dat je ondersteunt wilt hebben op de linux bootprompt opgeven.
boot: linux max_loop=64 |
Of als je gebruik maakt van LILO, dan kun je het linux bootrecord in /etc/lilo.conf bewerken en de append= regel toevoegen/aanpassen. Hier is een voorbeeldrecord waarin dit wordt getoond: append= (noot: voeg alleen de append regel toe of wijzig deze, breng geen wijzigingen aan in het volledige record zodat het er zoals hierbovenstaand uitziet want dan zal je systeem wellicht niet meer booten ). Raadpleeg voor meer informatie over LILO de LILO mini-HOWTO op 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 |
Na het wijzigen van /etc/lilo.conf, moet je de opdracht lilo uitvoeren om je wijzigingen te activeren.
bash# lilo Added linux * Added linux-nonfb Added failsafe Added windows Added floppy |
Start vervolgens je systeem opnieuw op. Nadat je systeem is opgestart, kun je de boot opdrachtregel controleren door het intikken van het volgende:
bash# cat /proc/cmdline |
Ik ben er niet zeker van of de loop module (gecompileerd als een module) het bestand /proc/cmdline inleest wanneer de module wordt geladen, en daarom geen options regel nodig heeft in /etc/modules.conf. Het is mogelijk dat het dit kan (en als het dit niet doet, dat het dit wel zou moeten doen). Kortom: Ik heb dit niet getest.
Ga verder met paragraaf Aanmaken van loopdevices in /dev.
Met dank aan Tony Melia voor de boot prompt info.
Als je een oudere kernel hebt (v. 2.2) of je je prima op je gemak voelt bij het hercompileren van de kernel, dan kun je het aantal loopdevices dat wordt ondersteund, verhogen door het bestand /usr/src/linux/drivers/block/loop.c te bewerken.
Als je bemerkt dat de broncode van de kernel niet op je machine is geïnstalleerd, dan zul je de documentatie van je Linux documentatie moeten raadplegen over hoe je het installeert (de broncode van de kernel wordt met alle distributies meegeleverd - het maakt onderdeel uit van de GNU GPL licentie).
Wijzig het nummer in de volgende regel in het aantal loopdevices dat je nodig zult hebben.
#define MAX_LOOP 16 |
Compileer de nieuwe kernel of module wat van toepassing is. Als je hier wat hulp bij nodig hebt, lees dan /usr/src/linux/README of raadpleeg De Linux Kernel HOWTO.
Ga verder met paragraaf Aanmaken van loopdevices in /dev.
Kijk hoeveel /dev regels je hebt voor loopdevices.
bash# ls -l /dev/loop* |
De opdracht mknod maakt de devices aan in de directory /dev. De loopdevices hebben een major nummer "7", en de minor nummers beginnen bij "0". Als je MAX_LOOP werd gedefinieerd als "8" in /usr/src/linux/drivers/block/loop.c, dan zou je /dev/loop0 tot en met /dev/loop7 moeten hebben. Om het /dev/loop8 device aan te maken, gebruik je de volgende opdracht (vervang het van toepassing zijnde nummer voor beide "8'ten" in het voorbeeld hieronder).
bash# mknod -m660 /dev/loop8 b 7 8 |
Controleer de Eigenaar/groep & permissies van het nieuwe bestand (met ls -l). Je kunt de eigenaar en de groep met de volgende opdracht wijzigen:
bash# chown root.disk /dev/loop8 |
Je kunt de permissies met de volgende opdracht wijzigen:
bash# chmod 666 /dev/loop8 |