Hallo. SuSE 6.4 hat standardmäßig 8 loop-devices angelegt, mit denen man z.B. eine iso9660 Image-Datei als Filesystem mounten kann. Ich habe mal vor langer Zeit 50 Stück davon angelegt, die auch alle funktionieren. Jetzt brauche ich noch ein paar mehr, und finde die richtige Syntax des mknod-Befehls nicht mehr heraus. Ich kann zwar ein Device anlegen, das existiert dann auch unter /dev, aber ich kann nichts drauf mounten. Mount meldet "Cannot find any free loop device!" oder so ähnlich. Wie war das doch gleich? Ich verstehe das Helpfile nicht, deswegen.... Danke, Ralph
On Tue, 12 Jun 2001, Ralph Scharping wrote:
SuSE 6.4 hat standardmäßig 8 loop-devices angelegt, mit denen man z.B. eine iso9660 Image-Datei als Filesystem mounten kann. [...] Jetzt brauche ich noch ein paar mehr, und finde die richtige Syntax des mknod-Befehls nicht mehr heraus.
Der Befehl bei der 6.4 lautete wohl: mknod /dev/loop9 b 7 9 mknod /dev/loop10 b 7 10 usw.
Ich kann zwar ein Device anlegen, das existiert dann auch unter /dev, aber ich kann nichts drauf mounten. Mount meldet "Cannot find any free loop device!" oder so ähnlich.
Dazu musst Du den Kernel aendern. Unter 6.4 war das AFAIK in der Datei /usr/src/linux/drivers/block/loop.c dort steht irgendwo am Anfang #define MAX_LOOP 8 Aendere die Zahl in 50 oder 128 oder was auch immer (char?). Neu kompilieren des Kernels ist dann erforderlich. Dann geht es. Vorsicht: Seit neueren Versionen (SuSE 7.0, 7.1?) hat sich das geaendert. Da steht in der gleichen Datei static int max_loop = 8; Die Funktion ist die gleiche geblieben. Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
On Die, 12 Jun 2001, Peter Blancke wrote:
Dazu musst Du den Kernel aendern.
Jup.
Unter 6.4 war das AFAIK in der Datei
Genauer: Mit einem 2.2.x Kernel:
/usr/src/linux/drivers/block/loop.c
dort steht irgendwo am Anfang
#define MAX_LOOP 8
Genau.
Aendere die Zahl in 50 oder 128 oder was auch immer (char?).
Maximum sind 255 Devices, da grundsaetzlich (auch bei 2.4.x) device_minor vom typ 'u_int8_t' ist...
Neu kompilieren des Kernels ist dann erforderlich. Dann geht es.
Vorsicht: Seit neueren Versionen (SuSE 7.0, 7.1?) hat sich das geaendert.
Genauer: Mit dem Kernel 2.4.x.
Da steht in der gleichen Datei
static int max_loop = 8;
Die Funktion ist die gleiche geblieben.
NEIN! NEIN! NEIN! *g* Denn das #define laesst sich nur vor dem kompilieren aendern, das 'static int' ist nur der default, der aber durch einen Modulparameter ueberschrieben wird! ,----[ /usr/src/linux/drivers/block/loop.c:27 ] | * Maximum number of loop devices now dynamic via max_loop module parameter. `---- Also: wenn 'loop' als Modul vorliegt, dann reicht ein: options loop max_loop=255 in der /etc/modules.conf oder als Kernel-Parameter an LILO, der Kernel muss nicht neu kompiliert werden! -dnh -- BUGS None. Mutts have fleas, not bugs. -- mutt(1) manpage
participants (3)
-
David Haller
-
Peter Blancke
-
Ralph Scharping