mknod
命令参数到底是什么?
我想在 chroot 中创建一个监狱。所以我需要做:
mknod /var/chroot/bind/dev/null c 1 3
mknod /var/chroot/bind/dev/random c 1 8
c
、1
、3
和 是什么8
?
答案1
mknod
正在创建一个设备文件,通常位于 /dev 分支中,但不一定像您的示例所示。
第一个参数告诉我们要创建哪种设备,这里c
是字符设备。其他选择可能是b
块设备、p
fifo(管道)。
第二个参数是主设备号,它标识内核使用的驱动程序。
第三个参数是次设备号,它被传递给驱动程序供其内部使用。
在 Linux 上,主要/次要编号记录如下:设备.txt
所以 1 用于所谓的存储设备由一个司机处理。
3
表示null
读取时返回 EOF 并丢弃写入的任何内容的设备。
8
代表random
返回随机数的设备。
要获取更多信息,您可以查看设备手册页,例如
man -s 4 null
man -s 4 random
答案2
MAKEDEV
是创建不存在的设备文件的首选方法。然而,有时MAKEDEV
脚本不知道您想要创建的设备文件。这就是mknod
命令的用武之地。为了使用,mknod
您需要知道要创建的设备的主节点号和次节点号。
mknod /dev/ttyS0 c 4 64
答案3
很高兴知道:
要获取已连接设备的主要/次要编号,您可以获取设备数据:
cat /sys/class/tty/ttyUSB0/uevent
结果:
MAJOR=188
MINOR=0
DEVNAME=ttyUSB0
有了这些信息,您就可以致电:
mknod /dev/ttyUSB0 c 188 0