如何在Fedora 19上添加更多/ dev / loop *设备


11

如何在Fedora 19上添加更多的/ dev / loop *设备?我做:

# 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。但是为什么要创建更多的循环文件而不将它们连接到任何东西呢?
13年

Answers:


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开始,每个设备节点的次要数递增1,因此loop0仅是0,loop7是7。

要创建loop8,请以root用户身份运行command mknod -m 0660 /dev/loop8 b 7 8。这将创建/dev/loop8具有在-m交换机上指定的权限的设备节点(这不是必需的,因为您可能正在运行台式机系统,但是最好不要让所有人读取和写入您的设备节点)。


1
您在名称后忘记了节点类型,因此命令应为mknod -m 0660 /dev/loop8 b 7 8
Vasilis Lourdas 2015年

11

当您以root身份运行时,losetup -f如果没有可用的空闲设备,它将根据需要自动创建循环设备。

因此mknod,创建新的循环设备最简单的方法是使用,而不是自己使用sudo losetup -f。如果存在,该方法将为您提供一个免费的现有环路设备,或者在需要时自动创建一个新的环路设备。


losetup -f但是,当前以非root用户身份运行时收到的错误消息不是很有帮助,因此我提交了bugzilla.redhat.com/show_bug.cgi?id=1215370提出改进建议。
ncoghlan 2015年

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.