Cómo agregar más dispositivos / dev / loop * en Fedora 19

11

¿Cómo agregar más dispositivos / dev / loop * en Fedora 19? Hago:

# 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

Entonces nada cambia.

usuario219372
fuente
loop no es un módulo en fedora 19, está compilado.
Sirex
1
probablemente tendría que utilizar mknod. pero ¿por qué querrías crear más archivos de bucle sin conectarlos a nada?
Strugee

Respuestas:

9

Tienes que crear nodos de dispositivo /devcon mknod. Los nodos del dispositivo devtienen un tipo (bloque, carácter, etc.), un número mayor y un número menor. Puede averiguar el tipo y el número principal haciendo ls -l /dev/loop0:

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

Esto significa que los nodos del dispositivo de bucle deben tener el tipo de bloque y el número mayor de 7. Los números menores se incrementan en uno para cada nodo del dispositivo, comenzando desde 0, por lo que el bucle0 es simplemente 0 y el bucle7 es 7.

Para crear loop8 ejecuta, como root, comando mknod -m 0660 /dev/loop8 b 7 8. Esto creará el nodo del dispositivo /dev/loop8con los permisos especificados a lo largo del -mconmutador (eso no es necesario ya que probablemente esté ejecutando un sistema de escritorio, pero es una buena idea no permitir que todos lean y escriban los nodos de su dispositivo).

Sami Laine
fuente
1
Olvidó el tipo de nodo después del nombre, por lo que el comando debería ser mknod -m 0660 /dev/loop8 b 7 8.
Vasilis Lourdas
11

Cuando lo ejecute como root, losetup -fcreará automáticamente dispositivos de bucle según sea necesario si no hay ninguno disponible.

Entonces, en lugar de hacerlo usted mismo mknod, la forma más fácil de crear un nuevo dispositivo de bucle es con sudo losetup -f. Ese enfoque le dará un dispositivo de bucle existente gratuito si existe, o creará automáticamente uno nuevo si es necesario.

ncoghlan
fuente
Sin losetup -fembargo, el mensaje de error que aparece cuando se ejecuta como usuario no root no es muy útil, por lo que presenté bugzilla.redhat.com/show_bug.cgi?id=1215370 para sugerir mejorar eso.
ncoghlan
4

Heh, incompleto :) Simplemente use este script para agregar nuevos / dev / loops. Recuerde que para cambiar los números, el script realiza el 63 ° bucle, comienza desde el 8 ° porque 0-7 se realiza de forma predeterminada. Aviso, los derechos se copian de / 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
fuente