[size=large]配置LinuX USB设备热拔插[/size][align=center][/align]
一、 工作环境
LinuX Centos 5.3 平台、FAT32 U盘和NTFS移动硬盘各一个。

二、 工作任务目的
公司要求在linux平台上实现USB设备自动热拔插,如:
1. USB设备自动挂载;
2. 挂载后通过SMB服务共享出来,客户端访问权限;
3. USB设备驱动在Linux上自动加载;
注:最好找到相对应功能服务的linux版本。

三、 工作流程
1. 安装HAL、dbus、kernel-module-ntfs
测试采用CentOS5.3系统,默认安装了HAL和DBUS,只需要安装与CentOS 5.3内核相匹配的KERNEL-MODULE-NTFS版本。在这里我以经下载打包放在文件夹内,安装即可。

2. 配置
CentOS5.3对FAT32 U盘是支持热拔插,对于NFTS格式USB设备,只需要新建和修改以下文件即可,操作如下:
1) 创建访问权限755的可执行脚本/usr/lib/hal/hal-unmount.sh ,内容如下:

File: /usr/lib/hal/hal-unmount.sh 

 #!/bin/sh 

 # sanity check. DEVNAME should start with a / 

 [ "$DEVNAME" != "${DEVNAME#/}" ] || exit 0 

 # Lazily unmount drives which are removed, but still mounted 

 if [ "$ACTION" = remove ] ; then 

 if [ -x /usr/bin/pumount ] ; then 

 /usr/bin/pumount -l "$DEVNAME"; 

 else 

 /bin/umount -l "$DEVNAME"; 

 rm –rf "$DEVNAME"; 

 fi 

 fi 

 exit 0 


2) 然后你得告诉HAL当你移除你的U盘时运行这个脚本。在/etc/udev/rules.d/90-hal.rules 中加入以下内容: 

File: /etc/udev/rules.d/90-hal.rules 

 SUBSYSTEM=="block", ACTION=="remove", RUN+="/usr/lib/hal/hal-unmount.sh" 


3. SAMBA配置 

添加如下配置文件: 

#Vi /etc/samba/smb.conf 

[usbfile] 

Path=/media 

Writable=yes 

Public=yes 

Only guest=yes 

添加完成后,重新启动服务: 

Service smb restart 


4. GUSET用户自动登录 

首先创建一个GUEST用户,然后对GUEST用户授权例如: 

# useradd sam 

创建sam用户 

下面设置sam密码 

# passwd sam 

Changing password for user sam. 

New UNIX password: 

BAD PASSWORD: it is too simplistic/systematic 

Retype new UNIX password: 

passwd: all authentication tokens updated successfully. 

将sam用户加入到root组 

# usermod -G root sam 

修改配置文件,并加入以下内容: 

File:/etc/gdm/custom.conf 

[daemon] 

AutomaticLogin=ylm 


GtkModulesList=gail:atk-bridge:/usr/lib/gtk-2.0/modules/libkeymouselistener:/usr/lib/gtk-2.0/modules/libdwellmouselistener 


AddGtkModules=true 


RemoteGreeter=/usr/libexec/gdmgreeter 


AutomaticLoginEnable=true 


TimedLoginEnable=true 


TimedLogin=ylm 


TimedLoginDelay=1



注意:开始登录时为出现输入用户名,默认5秒将自动登录GUESTE用户。

5. 测试问题
在安装与配置过程中遇到的问题如下:
1. 安装KERNEL-MODULE-NTFS时,先确定安装GCC,否则会出错;
四、 总结及注意事项
在配置LINUX热拔插时,用了很多办法,遇到很的困惑与不解。刚开始用FreeNAS系统做USB设备热拔插,原因很简单,Thecus Y.E.S.box内置装的是FreeNAS系统,它具有这样的功能,也符合公司的要求;等我摸透Thecus Y.E.S.box后,它是通过硬件的支持才实现USB热拔插的功能,放弃采用FreeNAS系统做USB设备热拔插;为了降低成本,尝试在文本字符界面实现这样的功能,最后没办法先在linux图形界面实现USB设备热拔插;
注意事项:
在配置文件时,注意先备份再修改;安装所有需要的插件;自动开启samba服务;自动关闭防火墙;

以上是我安公司要求写的报告文件,只配置了可读,可写自己去网上去找找!
在这里求大家给个Centos 5.4的kernel-module-ntfs包,一直还没找到它!