Comment ajouter plus d'appareils / dev / loop * sur Fedora 19

11

Comment ajouter plus d'appareils / dev / loop * sur Fedora 19? Je fais:

# 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

Donc rien ne change.

user219372
la source
boucle n'est pas un module dans fedora 19, son compilé.
Sirex
1
vous utiliseriez probablement mknod. mais pourquoi voudriez-vous créer plus de fichiers de boucle sans les connecter à quoi que ce soit?
Strugee

Réponses:

9

Vous devez créer des nœuds de périphérique /devavec mknod. Les nœuds de périphérique en devont un type (bloc, caractère, etc.), un nombre majeur et un nombre mineur. Vous pouvez trouver le type et le numéro principal en faisant ls -l /dev/loop0:

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

Cela signifie que les nœuds de périphérique de boucle doivent avoir le type de bloc et le nombre majeur de 7. Les nombres mineurs incrémentent d'un pour chaque nœud de périphérique, à partir de 0, donc loop0 est simplement 0 et loop7 est 7.

Pour créer loop8, vous exécutez, en tant que root, la commande mknod -m 0660 /dev/loop8 b 7 8. Cela créera le nœud de périphérique /dev/loop8avec les autorisations spécifiées le long du -mcommutateur (ce n'est pas nécessaire car vous utilisez probablement un système de bureau, mais c'est une bonne idée de ne pas laisser tout le monde lire et écrire vos nœuds de périphérique).

Sami Laine
la source
1
Vous avez oublié le type de nœud après le nom, la commande devrait donc l'être mknod -m 0660 /dev/loop8 b 7 8.
Vasilis Lourdas
11

Lorsque vous l'exécutez en tant que root, losetup -fcréera automatiquement des périphériques de boucle selon les besoins s'il n'y en a pas de disponibles gratuitement.

Donc, plutôt que de le faire vous-même mknod, la façon la plus simple de créer un nouveau périphérique de boucle est d'utiliser sudo losetup -f. Cette approche vous donnera un périphérique de boucle existant gratuit s'il en existe un, ou en créera automatiquement un nouveau si nécessaire.

ncoghlan
la source
Le message d'erreur que vous obtenez lors de l'exécution en losetup -ftant qu'utilisateur non root n'est actuellement pas très utile, donc j'ai déposé bugzilla.redhat.com/show_bug.cgi?id=1215370 pour suggérer d'améliorer cela.
ncoghlan
4

Hé, incomplet :) Utilisez simplement ce script pour ajouter de nouvelles boucles / dev /. N'oubliez pas que pour changer les nombres, le script passe à la 63ème boucle, commence à partir de 8ème car 0-7 est fait par défaut. Remarquez, les droits sont copiés depuis / dev / loop0 :)

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
la source