mknod
创建块设备或者字符设备文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
用法:
mknod [选项]... 名称 类型 [主设备号 次设备号]
选项参数列表:
选项 | 说明 |
---|---|
--version | 显示命令版本信息 |
--help | 显示帮助信息 |
-m | --mode=MODE | 设置权限,类似chmod,后跟660、777等数字权限 |
-Z | --context=CTX | 为创建的设备设置SELinux的安全上下文,确保该设备在SELinux安全策略下正常工作 |
设备类型 | b,块设备;c,字符设备;u,没有缓冲的字符设备;p,fifo设备 |
设备号 | 主设备号和次设备号以"0x"或"0X"开头,它们会被视作十六进制数来解析;如果以"0"开头,则被视作八进制数;其余情况下被视作十进制数。设备类型为"p"时可不指定主设备号和次设备号,否则它们是必须指定的。 |
详细说明:
- b-块设备:可以用来表示磁盘、分区、闪存驱动器等存储介质。这些设备通常支持随机读写操作,并且数据是以固定大小的数据块进行组织的。
- c,u-字符设备:是指只能一个字节一个字节进行读写操作的设备,不能随机读取设备中的某一数据、读取数据要按照先后数据。字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED等以及/dev/null等特殊的字符设备。
- p-fifo设备:一种特殊类型的文件,用于进程间的通信。它允许一个进程向 FIFO 写入数据,另一个进程从 FIFO 读取数据。类似的创建管道的命令还有mkfifo
- 主设备号:用于标识设备类型。例如:主设备号 8 通常用于标识传统的 IDE 硬盘和部分 SCSI 硬盘;主设备号 65(或者 0x41)用于标识一些现代的 SCSI 和 SAS 硬盘;主设备号 252 或 253(或者 0xFC 或 0xFD)用于标识一些固态硬盘(SSD)和其他高速存储设备;主设备号 5 通常用于标识标准的串行端口;主设备号 11 通常用于标识声音卡;主设备号 81(或者 0x51)通常用于标识视频捕获设备。
- 次设备号:次设备号用于区分同一类型的不同设备实例。自定义一个唯一的设备号即可。
示例:
bash
# 创建100个loop块设备
#!/bin/bash
for i in $(seq 1 100)
do
mknod "/dev/loop$i" b 7 $i
done