Як додати більше / 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 . але чому б ви хотіли створювати більше файлів циклу, не підключаючи їх ні до чого?
strugee

Відповіді:


9

Вам потрібно створити вузли пристроїв у програмі /devmknod. Вузли пристрою 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, тому цикл0 просто 0, а цикл 7 - 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як некорінного користувача, наразі не дуже корисне, тому я подав bugzilla.redhat.com/show_bug.cgi?id=1215370, щоб запропонувати покращити це.
ncoghlan

4

Хе, неповне :) Просто використовуйте цей скрипт для додавання нових / dev / циклів. Пам'ятайте про зміну чисел, сценарій робить 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.