So fügen Sie Fedora 19 weitere / dev / loop * -Geräte hinzu

11

Wie füge ich weitere / dev / loop * -Geräte zu Fedora 19 hinzu? Ich mache:

# uname -r
3.11.2-201.fc19.x86_64
# lsmod |grep loop

# ls /dev/loop*
/dev/loop0  /dev/loop1  /dev/loop2  /dev/loop3  /dev/loop4  /dev/loop5  /dev/loop6  /dev/loop7  /dev/loop-control
# modprobe loop max_loop=128
# ls /dev/loop*
/dev/loop0  /dev/loop1  /dev/loop2  /dev/loop3  /dev/loop4  /dev/loop5  /dev/loop6  /dev/loop7  /dev/loop-control

Es ändert sich also nichts.

user219372
quelle
Schleife ist kein Modul in Fedora 19, es ist kompiliert in.
Sirex
1
Sie würden wahrscheinlich verwenden mknod. Aber warum sollten Sie mehr Loop-Dateien erstellen, ohne sie mit irgendetwas zu verbinden?
strugee

Antworten:

9

Sie müssen /devGeräteknoten mit mknod erstellen. Die Geräteknoten in devhaben einen Typ (Block, Zeichen usw.), eine Hauptnummer und eine Nebennummer. Sie können den Typ und die Hauptnummer herausfinden, indem Sie Folgendes tun ls -l /dev/loop0:

user@foo:/sys# ls -l /dev/loop0
brw-rw---- 1 root disk 7, 0 Oct  8 08:12 /dev/loop0

Dies bedeutet, dass Loop-Geräteknoten den Blocktyp und die Hauptnummer 7 haben sollten. Die Nebenzahlen werden für jeden Geräteknoten ab 0 um eins erhöht, sodass loop0 einfach 0 und loop7 7 ist.

Um loop8 zu erstellen, führen Sie den Befehl root als root aus mknod -m 0660 /dev/loop8 b 7 8. Dadurch wird der Geräteknoten /dev/loop8mit den entlang des -mSwitches angegebenen Berechtigungen erstellt (dies ist nicht erforderlich, da Sie wahrscheinlich ein Desktop-System ausführen, es ist jedoch eine gute Idee, nicht alle Ihre Geräteknoten lesen und schreiben zu lassen).

Sami Laine
quelle
1
Sie haben den Knotentyp nach dem Namen vergessen, daher sollte der Befehl lauten mknod -m 0660 /dev/loop8 b 7 8.
Vasilis Lourdas
11

Wenn Sie es als root ausführen, losetup -fwerden nach Bedarf automatisch Loop-Geräte erstellt, wenn keine freien verfügbar sind.

Anstatt es selbst zu tun, ist es mknodam einfachsten, ein neues Loop-Gerät zu erstellen sudo losetup -f. Mit diesem Ansatz erhalten Sie ein freies vorhandenes Loop-Gerät, falls vorhanden, oder erstellen bei Bedarf automatisch ein neues.

ncoghlan
quelle
Die Fehlermeldung, die Sie erhalten, wenn Sie losetup -fals Nicht-Root-Benutzer ausgeführt werden, ist derzeit jedoch nicht sehr hilfreich. Daher habe ich bugzilla.redhat.com/show_bug.cgi?id=1215370 abgelegt, um eine Verbesserung vorzuschlagen.
Ncoghlan
4

Heh, unvollständig :) Verwenden Sie einfach dieses Skript, um neue / dev / loops hinzuzufügen. Denken Sie beim Ändern von Zahlen daran, dass das Skript die 63. Schleife erstellt und mit der 8. beginnt, da standardmäßig 0-7 festgelegt ist. Beachten Sie, dass die Rechte von / dev / loop0 kopiert werden :)

for i in {8..63}; do if [ -e /dev/loop$i ]; then continue; fi; \
mknod /dev/loop$i b 7 $i; chown --reference=/dev/loop0 /dev/loop$i; \
chmod --reference=/dev/loop0 /dev/loop$i; done
Znik
quelle