公 告

欢迎各位网友添加友情链接,在您添加本博客:http://linux0818.blogspot.com/ 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。

2008年10月23日星期四

FC3中插入U盘时无法打开的解决方法

 在FC3中插入U盘的时候会出现桌面假死,或都打不开的情况的解决方法:
解决的办法是在挂载时,根据语言环境 locale 的值,使用挂载参数。如果是 UTF-8 那么就用
mount -o utf8,如果是 GB* 那么就用 mount -o iocharset=cp936。但是这样繁琐地手动挂载
就失掉了 FC3 的好处。正确的解决办法,是添加自己的配置文件:

vi /usr/share/hal/fdi/95userpolicy/storage-policy.fdi 文件加入下面的内容;
#*************************开始*************************
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">
<device>
<match key="@block.storage_device:storage.removable" bool="true">
<merge key="volume.policy.mount_option.fmask=111" type="bool">true</merge>
<merge key="volume.policy.mount_option.dmask=0" type="bool">true</merge>
<merge key="volume.policy.mount_option.users" type="bool">true</merge>
<merge key="volume.policy.mount_option.utf8" type="bool">true</merge>
</match>
<match key="@block.storage_device:storage.hotpluggable" bool="true">
<merge key="volume.policy.mount_option.fmask=111" type="bool">true</merge>
<merge key="volume.policy.mount_option.dmask=0" type="bool">true</merge>
<merge key="volume.policy.mount_option.users" type="bool">true</merge>
<merge key="volume.policy.mount_option.utf8" type="bool">true</merge>
</match>
</device>
</deviceinfo>
#*************************结束*************************

原理正如上面所说,hal 在收到优盘插入的通知时,将读取这些 storage policy 配置文件。
在改写 /etc/fstab 时,将用到配置文件中的数据,将这些 mount_option 全部加入 fstab 中去。


如何测试效果
测试效果的办法简单得很,但是不要急着插入优盘,而是应当先运行
代码:
service haldaemon restart

然后插入优盘。几秒钟之后,桌面上会出现优盘图标。看看你的 fstab,如果多了这样一行
代码:
/dev/sda1 /media/YUAN vfat pamconsole,utf8,users,dmask=0,fmask=111,noatime,sync,fscontext=system_u:object_r
                                            :removable_t,exec,noauto,managed 0 0
那么说明没什么问题。也许你的系统中 selinux 已经被关闭了,所以参数没有这么长。访问优盘,应该不会再出错了。

可能的问题
如果你的语言环境是 gb2312,那么要把上面的配置文件稍微修改一下,把两次出现的 utf8 修改为 iocharset=cp936
小心配置文件中的拼写错误
如果仍然会挂起或死机,那么可能 haldaemon 没有重启动,甚至可能被关闭了。运行
代码:
chkconfig haldaemon on
chkconfig messagebus on
service messagebus restart
service haldaemon restart



--
/**************************************/
Name: Xiong Feng
E-mail:linux0818@gmail.com
MSN:linux0818@hotmail.com
QQ:23562033
Address: GuangZhou.China
/**************************************/

没有评论:

发表评论