Linux-mknod命令

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