Como adicionar mais dispositivos / dev / loop * no Fedora 19

11

Como adicionar mais dispositivos / dev / loop * no Fedora 19? Eu faço:

# 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

Então, nada muda.

user219372
fonte
laço não é um módulo no chapéu 19, a sua compilado.
Sirex
1
você provavelmente usaria mknod. mas por que você deseja criar mais arquivos de loop sem conectá-los a nada?
strugee

Respostas:

9

Você precisa criar nós de dispositivo /devcom o mknod. Os nós do dispositivo devpossuem um tipo (bloco, caractere etc.), um número principal e um número menor. Você pode descobrir o tipo e o número principal fazendo ls -l /dev/loop0:

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

Isso significa que os nós do dispositivo de loop devem ter o tipo de bloco e o número principal de 7. Os números menores são incrementados em um para cada nó do dispositivo, começando em 0; portanto, o loop0 é simplesmente 0 e o loop7 é 7.

Para criar loop8, você executa, como root, o comando mknod -m 0660 /dev/loop8 b 7 8. Isso criará o nó do dispositivo /dev/loop8com as permissões especificadas no -mcomutador (isso não é necessário, pois você provavelmente está executando um sistema de desktop, mas é uma boa idéia não deixar que todos leiam e gravem os nós do dispositivo).

Sami Laine
fonte
1
Você esqueceu o tipo de nó após o nome, então o comando deve ser mknod -m 0660 /dev/loop8 b 7 8.
Vasilis Lourdas
11

Quando você o executa como root, losetup -fcria automaticamente dispositivos de loop conforme necessário, se não houver nenhum disponível gratuitamente.

Portanto, ao invés de fazer você mesmo mknod, a maneira mais fácil de criar um novo dispositivo de loop é sudo losetup -f. Essa abordagem fornecerá um dispositivo de loop existente gratuito, se houver, ou criará automaticamente um novo, se necessário.

ncoghlan
fonte
A mensagem de erro que você recebe ao executar losetup -fcomo usuário não root atualmente não é muito útil, então eu arquivei o bugzilla.redhat.com/show_bug.cgi?id=1215370 para sugerir uma melhoria.
Ncoghlan
4

Heh, incompleto :) Simplesmente use este script para adicionar novos / dev / loops. Lembre-se de que, para alterar números, o script faz o 63'th loop, começa a partir do 8'th porque 0-7 é feito por padrão. Observe que os direitos são copiados 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
fonte