由手动创建LVM设备文件说开

Category : 工作学习 / Tags : , , / Date : 2010.02.26 / 252 views /

  B、创建一个名为console且权限为600的一个面向字符类设备的特殊文件,且主设备号为5,次设备号为1,为第一个子设备。当你要给两个同样的设备上一个驱动的时候就要分了,从0开始,1就是第二个了

1
mknod -m 600 /dev/console c 5 1

  C、创建一个名为null且权限为666的一个面向字符类设备的特殊文件,且主设备号为1,次设备号为3

1
mknod -m 666 /dev/null c 1 3

  D、创建一个名为doc的面向块设备的特殊文件,0指的是整个DOC。如果把0换为1,则1指的是DOC的第一个分区。2是第2个,依次类推。

1
mknod doc b 62 0

  E、创建虚拟设备(dev),日志记录的时候有的选项可能用到它们。在默认情况下,是使用/dev目录下的文件,但是由于我们需要把DNS限制到一个目录,所以必须完全把/dev下用到的文件(或者说设备)模拟过来才可以。

1
ls -lL /dev/zero /dev/null /dev/random

  看到类似

1
2
3
crw-rw-rw-  1 root   root    1,  3 2003-09-15 /dev/null
crw-r--r--  1 root   root    1,  8 2003-09-15 /dev/random
crw-rw-rw-  1 root   root    1,  5 2003-09-15 /dev/zero

  这样的,将其中的1,3这样的数字记录下来,这表示主设备号和次设备号(),在redhat下,ls加不加-L参数都无所谓,但是在Solaris下则一定要加上才可以显示。

1
2
3
mknod dev/null c 1 3
mknod dev/zero c 1 5
mknod dev/random c 1 8

  五、其它知识点

  由于上面提到设备文件这个知识点,下面简单说下什么是设备文件和它的作用。

  设备文件

  对于每种硬件设备,系统内核有相应的设备驱动程序负责对它的处理。而在Unix-like中,使用设备文件的方式来表示硬件设备,每种设备驱动程序都被抽象为设备文件的形式,这样就给应用程序一个一致的文件界面,方便应用程序和操作系统之间的通信。

  习惯上,所有的设备文件都放置在/dev目录下。

1
2
3
4
5
6
7
8
9
$ ls -l /dev/rfd0 /dev/fd0
 
brw-r-----  9 root  operator    2,   0 Nov 12 13:32 /dev/fd0
 
//系统使用b(block)标识块设备文件。
 
crw-r-----  9 root  operator    9,   0 Nov 12 13:32 /dev/rfd0
 
//系统使用c(character)标识一个字符设备文件

  在上面的列表中可以看到原来显示文件大小的地方,现在改为显示两个用逗号分隔的数字。这是系统用来表示设备的两个重要的序号,第一个为主设备号(major number),用来表示设备使用的硬件驱动程序在系统中的序号;第二个为从设备号(minor number),硬件驱动程序使用它来区分不同的设备和判断如何进行处理。事实上设备文件的名字并不重要,重要的是这两个设备号,操作系统使用它确定硬件驱动程序,并与硬件驱动程序进行通信。

  1)磁盘和块设备文件

  在Unix-like下将设备分为两种,块设备和字符设备,其中块设备主要用于随机存取的目的,磁盘为这一类设备的代表,而字符设备用于顺序存取的目的,例如磁带或终端设备就属于这个类别。

  2)设备文件的创建

  通常情况下,安装系统时已经创建了常用的设备文件,可以直接访问这些设备文件来访问设备。但在用户重新定制内核,并添加了新硬件驱动程序之后,新驱动程序对应的设备文件就可能不存在。最常见的例子就是在内核中增加声卡的驱动程序时,就需要创建相应设备文件。

  创建设备文件的基本方式是使用mknod,但是必须知道该设备的正确设备号才可以。另一种简单的方式是使用/dev目录下的shell程序makedev来完成,makedev实质上就是记录了很多设备的名字与其设备号之间的关系的程序,因此它能使用正确的设备号来创建设备。

  首先进入/dev目录,然后再执行makedev。

1
2
3
# cd /dev
 
# sh makedev snd0

  makedev将使用mknod和对应设备的正确参数,包括字符或块设备、主设备号和从设备号来建立相应的设备文件。管理员也可以直接使用mknod创建设备文件,但这就必须将这些设备参数统统指定正确才行。因此除非对系统中的硬件驱动程序特别熟悉,一般不直接使用mknod来创建设备文件。

  更多详细使用可参考:

  MAKEDEV(8)-Linux man page 
  Creating devices  

无觅相关文章插件,快速提升流量

Pages: 1 2

Comments

4 Responses to “由手动创建LVM设备文件说开”

  • 楼主写的很详细

    [回复]

    easylife Firefox 3.6 Firefox 3.6 Windows XP Windows XP回复:

    @christian louboutin, 谢谢,有空常来看下!

    [回复]

    回复
  • 您的博客真不错,如有兴趣,咱们可以链接一下。请链接好后,到我博客上留个言即可!
    我是泡泡茶(www.puttea.com)的,泡泡茶是专注于茶叶的博客,我们团队通过不断努力,正朝正规化迈进。泡泡茶希望为大家的精彩生活奉献自己的微小力量。

    [回复]

    回复
  • 域名不错。

    [回复]

    回复

Leave a Reply

传奇 似水流年 绽放 风筝 八月照相馆