下午群里有网友问到如何恢复被误删掉的LVM设备文件,顺便重新总结了下mknod的相关资料,整理过程中发现lvm设备文件的缺省主设备号为109,发现群里@斌的系统/dev/下是有这个设备文件的,但我始终无法在找到/dev/lvm设备文件(有做LVM的,系统是RHEL4,LVM2)。网上找到的对于/dev/lvm设备文件的资料中,都是手动创建的类似这样:
1 2 3 4 5 6 | # LVM device nodes mknod -m 600 $INITRDDIR/dev/lvm c 109 0 mkdir $INITRDDIR/dev/vg00 mknod -m 640 $INITRDDIR/dev/vg00/group c 109 0 mknod -m 660 $INITRDDIR/dev/vg00/lv00 b 58 0 chown root:disk $INITRDDIR/dev/vg00/* |
研究了一晚上,最后发现其实@斌的也是手动添加的这个设备文件,难道Linux(Kernel 2.6)用UDEV管理设备后,不在/dev下生成对应的设备文件?望高手指点,谢谢!
下面是总结的mknod相关资料,发出来分享一下。
一、用途
创建特殊文件。
二、语法
1 | mknod [Option]... Name Type [Major Minor] |
只能由root用户或系统组成员运行
1 | mknod Name {b|c} Major Minor |
创建FIFO(已命名的管道)
1 | mknod Name {p} |
GNU选项(缩写):
1 | [-m mode] [--help] [--version] [--] |
三、描述
mknod用指定名称产生一个FIFO(命名管道),字符专用或块专用文件。
文件系统中的一个专用文件存贮着三种信息(布尔型、整型、整型)。布尔型在字符文件与块文件之间作出选择,两个整型是主、次设备号。
通常,一个专用文件并不在磁盘上占用空间,仅仅是为操作系统提供交流,而不是为数据存贮服务。一般地,专用文件会指向一个硬件设备(如:磁盘、磁带、打印机、虚拟控制台)或者操作系统提供的服务(如:/dev/null, /dev/random)。
块文件通常类似于磁盘设备(在数据可以被访问的地方赋予一个块号,意味着同时设定了一个块缓存)。所有其他设备都是字符文件。(以前,两种文件类型间是有差别的。比如:字符文件I/O没有缓存,而块文件则有。)
mknod命令就是用来产生这种类型文件的。
mknod命令第一个参数是Name项设备的名称。选择一个描述性的设备名称。mknod命令有两种形式,它们有不同的标志。
mknod命令的第一种形式只能由root用户或系统组成员执行。在第一种形式中,使用了b或c标志。b标志表示这个特殊文件是面向块的设备(磁盘、软盘或磁带)。c标志表示这个特殊文件是面向字符的设备(其他设备)。
第一种形式的最后两个参数是Major和Minor分别是主设备号和次设备号(它们可以是十进制或八进制的,GNU版本还允许使用以0x开头的十六进制)。一般来说主设备号用来区分设备的种类;次设备号则是为了作唯一性区分,标明不同属性或理解为主设备号被系统用来确定驱动程序,次设备号被驱动程序用来确定具体的设备。而主次设备号是预先分配好的,具体可以查询设备号分配清单(主设备号定义可详见Kernel源码中/usr/src/linux/Documentation/device.txt文件)。以确保整个系统设备定义的一致性,这是很重要的。
在mknod命令的第二种形式中,使用了p标志来创建 FIFO(已命名的管道)。
以下参数指定了所产生文件的类型:
b 表示特殊文件是面向块的设备(磁盘、软盘或磁带)。
c 表示特殊文件是面向字符的设备(其他设备)。
p 创建 FIFO(已命名的管道)。此类型后不可跟主次设备数目。
GNU版本还允许使用u(‘unbufferd’非缓冲化),以保持与C语言的一致。
当创建一个块文件或字符文件时,主、次设备号必须在文件类型参数后给出。(十进制或八进制以0开头;GNU版本还允许使用以0x开头的十六进制)缺省地,所产生的文件模式为0666(‘a+rw’)。
选项
-m mode, –mode=mode 为新建立的文件设定模式,就象应用命令chmod一样,以后仍然使用缺省模式建立新目录。
GNU 标准选项
–help 在标准输出上显示使用信息并顺利退出。
–version 在标准输出上显示版本信息并顺利退出
– 终端选项列表。
四、示例
A、要创建一个新软盘驱动器的特殊文件,输入:
1 | mknod /dev/fd2 b 1 2 |
这创建了 /dev/fd2 特殊文件,它是一个特殊块文件,主设备号为 1,次设备号为 2。
Pages: 1 2
楼主写的很详细
[回复]
easylife
Firefox 3.6
Windows XP回复:
三月 12th, 2010 at 18:07
@christian louboutin, 谢谢,有空常来看下!
[回复]
您的博客真不错,如有兴趣,咱们可以链接一下。请链接好后,到我博客上留个言即可!
我是泡泡茶(www.puttea.com)的,泡泡茶是专注于茶叶的博客,我们团队通过不断努力,正朝正规化迈进。泡泡茶希望为大家的精彩生活奉献自己的微小力量。
[回复]
域名不错。
[回复]