Jak dodać więcej urządzeń / dev / loop * na Fedorze 19


11

Jak dodać więcej urządzeń / dev / loop * na Fedorze 19? Ja robię:

# 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

Więc nic się nie zmienia.


Pętla nie jest modułem w Fedorze 19, jest skompilowana.
Sirex,

1
prawdopodobnie byś użył mknod. ale dlaczego chcesz tworzyć więcej plików pętli bez łączenia ich z niczym?
strugee

Odpowiedzi:


9

Musisz utworzyć węzły urządzeń w /devmknod. Węzły urządzenia devmają typ (blok, znak itp.), Liczbę główną i liczbę podrzędną. Możesz znaleźć typ i numer główny, wykonując ls -l /dev/loop0:

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

Oznacza to, że węzły urządzeń pętli powinny mieć typ bloku i liczbę główną 7. Liczby pomniejsze zwiększają się o jeden dla każdego węzła urządzenia, zaczynając od 0, więc pętla 0 to po prostu 0, a pętla 7 to 7.

Aby utworzyć pętlę 8, uruchom jako polecenie root mknod -m 0660 /dev/loop8 b 7 8. Spowoduje to utworzenie węzła urządzenia /dev/loop8z uprawnieniami określonymi wzdłuż -mprzełącznika (nie jest to konieczne, ponieważ prawdopodobnie używasz systemu stacjonarnego, ale dobrym pomysłem jest, aby nie pozwalać wszystkim na czytanie i zapisywanie węzłów urządzenia).


1
Zapomniałeś typu węzła po nazwie, więc polecenie powinno być mknod -m 0660 /dev/loop8 b 7 8.
Vasilis Lourdas,

11

Po uruchomieniu go jako root losetup -fautomatycznie utworzy urządzenia pętlowe, jeśli nie są dostępne żadne wolne.

Więc zamiast robić to samemu mknod, najłatwiejszym sposobem na utworzenie nowego urządzenia pętli jest sudo losetup -f. Takie podejście da ci wolne istniejące urządzenie pętli, jeśli takie istnieje, lub automatycznie utworzy nowe, jeśli zajdzie taka potrzeba.


Komunikat o błędzie, który pojawia się podczas działania losetup -fjako użytkownik inny niż root, nie jest jednak zbyt pomocny, więc napisałem bugzilla.redhat.com/show_bug.cgi?id=1215370, aby zasugerować poprawę.
ncoghlan,

4

Heh, niekompletne :) Po prostu użyj tego skryptu, aby dodać nowe / dev / loop. Pamiętaj o zmianie liczb, skrypt tworzy pętlę 63, zaczyna od 8, ponieważ 0-7 jest ustawione domyślnie. Uwaga, prawa są kopiowane z / 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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.