Как добавить больше устройств / dev / loop * на Fedora 19


11

Как добавить больше устройств / dev / loop * на Fedora 19? Я делаю:

# 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

Так что ничего не меняется.


цикл не является модулем в fedora 19, он скомпилирован.
Sirex

1
ты бы наверное использовал mknod. но зачем вам создавать дополнительные файлы петель, не соединяя их ни с чем?
стружка

Ответы:


9

Вы должны создать узлы устройства /devс помощью mknod. Узлы устройства devимеют тип (блок, символ и т. Д.), Старший номер и младший номер. Вы можете узнать тип и основной номер, выполнив ls -l /dev/loop0:

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

Это означает, что узлы устройства цикла должны иметь тип блока и старшее число 7. Младшие числа увеличиваются на единицу для каждого узла устройства, начиная с 0, поэтому loop0 - это просто 0, а loop7 - 7.

Для создания loop8 вы запускаете от имени пользователя root команду mknod -m 0660 /dev/loop8 b 7 8. Это создаст узел устройства /dev/loop8с разрешениями, указанными вдоль -mкоммутатора (это не обязательно, поскольку вы, вероятно, используете настольную систему, но это хорошая идея, чтобы не позволить всем читать и записывать узлы вашего устройства).


1
Вы забыли тип узла после имени, поэтому команда должна быть mknod -m 0660 /dev/loop8 b 7 8.
Василис Лурдас

11

Когда вы запускаете его как root, losetup -fон автоматически создает петлевые устройства по мере необходимости, если нет свободных доступных устройств.

Поэтому вместо того, чтобы делать это самостоятельно mknod, проще всего создать новое устройство петли sudo losetup -f. Такой подход даст вам бесплатное существующее петлевое устройство, если оно существует, или автоматически создаст новое, если это необходимо.


Однако сообщение об ошибке, которое вы получаете при работе losetup -fот имени пользователя без полномочий root, не очень полезно, поэтому я подал bugzilla.redhat.com/show_bug.cgi?id=1215370, чтобы предложить улучшить это.
ncoghlan

4

Хех, неполный :) Просто используйте этот скрипт для добавления новых / dev / loops. Помните, что для изменения чисел скрипт выполняет 63-й цикл, начинается с 8-го, потому что по умолчанию выполняется 0-7. Обратите внимание, права копируются из / 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.