裸设备绑定出现“Cannot open master raw device '/dev/rawctl' (No such file or directory)”

#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不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。

你可能感兴趣的:(Directory)