suse 裸设备

suse linux 10 raw裸设备 2011-07-28 17:57:15
标签: raw linux 裸设备 suse linux10
版权声明:原创作品,谢绝转载!否则将追究法律责任。

概念解析:
裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。

系统环境:SUSE LINUX ENTERPRISE SERVER 64BIT

实验过程:

1、创建裸设备
linux-250:~ # fdisk /dev/sda13(查看分区信息)
he number of cylinders for this disk is set to 26108.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sda13: 214.7 GB, 214753803264 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

      Device Boot      Start         End      Blocks   Id  System
/dev/sda13p1               1          13      104391   83  Linux
/dev/sda13p2              14          26      104422+  83  Linux
/dev/sda13p3              27          39      104422+  83  Linux
/dev/sda13p4              40       26108   209399242+   5  Extended
/dev/sda13p5              40          76      297171   83  Linux
/dev/sda13p6              77         138      497983+  83  Linux
/dev/sda13p7             139         145       56196   83  Linux
/dev/sda13p8             146         152       56196   83  Linux
/dev/sda13p9             153         159       56196   83  Linux
/dev/sda13p10            160         161       16033+  83  Linux
/dev/sda13p11            162         163       16033+  83  Linux
/dev/sda13p12            164         165       16033+  83  Linux
/dev/sda13p13            166         167       16033+  83  Linux
/dev/sda13p14            168         229      497983+  83  Linux
/dev/sda13p15            230         291      497983+  83  Linux
2、绑定裸设备
发现在/dev/下没有raw,自己创建raw目录
#mkdir raw
#cd raw
#mknod raw1 c 162 1
#mknod raw2 c 162 2
#mknod raw3 c 162 3
#mknod raw5 c 162 5
#mknod raw6 c 162 6
#mknod raw7 c 162 7
#mknod raw8 c 162 8
#mknod raw9 c 162 9

#raw /dev/raw/raw1 /dev/sda13p1

-------错误
Cannot open master raw device
裸设备配置时raw命令报错
现象描述:SLES10 SP3系统下,利用命令
# raw /dev/raw/raw1 /dev/sda13p1挂接裸设备失败。    


3、原因分析:
一、可能的原因有:
1、内核编译错误。
2、相关module未安装。
3、相关module未加载。
二、module查询方法:
# zgrep -i raw /proc/config.gz
若返回类似:
CONFIG_IEEE1394_RAWIO=m
CONFIG_IP_NF_RAW=y
CONFIG_IP6_NF_RAW=y
CONFIG_RAW_DRIVER is not set
则是原因1或原因2导致裸设备挂接失败
建议重新部署操作系统。
若返回类似:
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_ARCNET_RAW=m
CONFIG_HDLC_RAW=y
CONFIG_HDLC_RAW_ETH=y
CONFIG_SERIO_RAW=m
CONFIG_RAW_DRIVER=m
CONFIG_MAX_RAW_DEVS=4096
CONFIG_SND_RAWMIDI=m
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
则是原因3导致裸设备挂接失败。
                         
4、处理过程:
一、利用命令# raw –qa查询裸设备,返回报错:
Cannot open master raw device '/dev/rawctl' (No such file or directory);
二、利用命令# zgrep -i raw /proc/config.gz查询模组
返回以下结果:
CONFIG_IP_NF_RAW=m
CONFIG_IP6_NF_RAW=m
CONFIG_IEEE1394_RAWIO=m
CONFIG_ARCNET_RAW=m
CONFIG_HDLC_RAW=y
CONFIG_HDLC_RAW_ETH=y
CONFIG_SERIO_RAW=m
CONFIG_RAW_DRIVER=m
CONFIG_MAX_RAW_DEVS=4096
CONFIG_SND_RAWMIDI=m
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
确定是原因3导致裸设备挂接失败。
3、加载module即可挂接:
# modprobe raw
4、重启之后又会报同样错误,因此需彻底解决。
5、运行Yast配置工具。
# yast2
选择System,选择System Services (Runlevel)。
选择Expert mode,选择raw,勾选B,2,3,5。
配置完成点击Finish保存。
    
6、总结:建议操作系统部署过程中若有报错,应重新部署。
并且部署好系统后检查必要的module是否加载。
 

补充:
1. 启动raw方式
/etc/init.d/raw start
2. 设置raw开机自动激活
chkconfig --level  235  raw on
3. 检查raw开机是否自动激活
chkconfig --list | grep raw

复习chkconfig命令:
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。

chkconfig --list        #列出系统所有的服务启动情况
chkconfig --add httpd        #增加httpd服务
chkconfig --del httpd        #删除httpd服务
chkconfig --level httpd 2345 on        #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig --list mysqld        #列出mysqld服务设置情况
chkconfig --level 35 mysqld on        #设定mysqld在等级3和5为开机运行服务,--level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on        #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级

 --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。
      等级0表示:表示关机
      等级1表示:单用户模式
      等级2表示:无网络连接的多用户命令行模式
      等级3表示:有网络连接的多用户命令行模式
      等级4表示:不可用
      等级5表示:带图形界面的多用户模式
      等级6表示:重新启动
      需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

你可能感兴趣的:(linux,Module,脚本,command,System,SuSE)