由于本人思维固化,对新事物接受不足,所以在学习Fedora Core 4 总是用老思维;对于对移动存储,比如U盘;移动硬盘;数码相机,现在大多能在Linux即插即用;只有少数不行;比如笔记本集成的6合1读卡器(好多都不支持,也有支持的); 我对Fedora Core 4 用的极少,感觉Fedora 是实验室,新的特性都会在Fedora Core 4 中出现,这增强Linux桌面版的易用性;其实这也是好事;
对即插即用的USB存储的原理,bbbush兄弟已经在linux.chinaitlab.com/driver/40018.html">《设置 fc3 HAL 的 storage-policy 自动挂载优盘上的 vfat 分区》中已经谈过。大家可以去看一下,看过后思路就清晰多了;看过后此文后,功力也会大长;:)HAL - Hardware Abstraction Layer (硬件提取层),这是我直译的,不知道怎么译才好,以我的理解和Windows的硬件管理类似;而我写的这篇其实一文不值,为什么这样说呢?因为没有技术含量,只是为了解决问题而写,没有原理,只是改几行或者加几行的字;可能对新手还有点用;
USB移动存储;
数码相机;MMC 卡, SD卡;USB MINI 盘;USB移动硬盘(有个USB接口的盒子,里面装的是笔记本硬盘、大电脑硬盘),1394接口的移动存值储;录音笔;DV等,大多都是用的移动存储;fat 、ntfs、fat32、reiserfs 、ext3及hfs文件系统的支持;
Fedora Core 4 几乎支持所有文件系统,所以没有必要编内核,如果您和我一样有一个移动硬盘是NTFS分区的,请安装内核NTFS模块的支持;内核已经支持了fat格式的,无论是 fat16 fat32都已经支持;对于NTFS格式的文件系统的支持,要安装NTFS的kernel-moduls ;我感觉NTFS移动磁盘分区,没有太大的意义(但我有一个移动硬盘,有一个分区就是ntfs的),因为NTFS是不可写的;所以还是用fat或者fat32吧;如果您的机器有1394接口,如果想购买容量比较大的存储设备,建议还是买1394接口的盒子,USB对大文件的写入支持并不好,无论是什么文件系统(以事实说话,我试过);另外1394接口的硬盘,能在系统启动的过程中稳定的加载;
即插即用,系统自动mount 移动存储设备;
1、首先确保 以下的几个服务是打开的;
[root@localhost beinan]# chkconfig --list |grep haldaemon
haldaemon 0:启用 1:启用 2:启用 3:启用 4:启用 5:启用 6:启用
[root@localhost beinan]# chkconfig --list |grep messagebus
messagebus 0:启用 1:启用 2:启用 3:启用 4:启用 5:启用 6:关闭
如果在3和5模式并未启用,则需要打开;
[root@localhost beinan]# chkconfig --level 0123456 haldaemon on
[root@localhost beinan]# chkconfig --level 0123456 messagebus on
在所有模式化全部打开;查看我们所提及的服务是否在所有模式运行;请用前面所说的 chkconfig --list |grep 服务器名;
如果这样做后,我们提到的这些服务,开机自动在所有模式下运行;不用我们人为去干涉了;不过有时为了调试,还得我们自己来打开和关闭;看下一部分;
2、以standalone模式运行的服务,大多是在 /etc/init.d目录中;
用法: /etc/initrd 服务器 start|stop|status|restart|condrestart
举例:比如我们要开启 haldaemon 服务器则是:
[root@localhost beinan]# /etc/init.d/haldaemon start
启动 HAL 守护进程: [ 确定 ]
[root@localhost beinan]# /etc/init.d/haldaemon restart
正在关闭 HAL 守护进程: [ 确定 ]
启动 HAL 守护进程: [ 确定 ]
[root@localhost beinan]# /etc/init.d/haldaemon stop
正在关闭 HAL 守护进程: [ 确定 ]
[root@localhost beinan]# /etc/init.d/haldaemon status
hald 已停
这个初学的弟兄都懂;start 启动; restart 重启; stop 停止;status 状态;我们在本文提到的三个服务器,都在 /etc/init.d目录中;
3、其实如果能把上面的几步弄好了,其实移动存储设备大多都是即插即用的,同时也是自动挂载的;虽然系统即插即用了,但对权限可能不太符合我们的需要;另外如果在fat和ntfs文件系统中存放了文本,对文件名的中文支持不太友好;所以......解决.....
解决vfat和ntfs文件系统正常显示中文文件名和文件权限的解决;
1、确认系统的locale ;
[beinan@localhost ~]$ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
[beinan@localhost ~]$
如果您的系统编码是gb2312、gbk、gb18030的;就不要改locale;我们只是改hal服务器的一个文件就行;
2、改hal的配置文件;
在Fedora Core 4 中,hal服务器关于移动存储配置文件
/usr/share/hal/fdi/policy/10osvendor/10-storage-policy.fdi ;
在更改之前,请备份;
[root@localhost 10osvendor]# cp 10-storage-policy.fdi 10-storage-policy.fdiBAK
我们打开 10-storage-policy.fdi 文件;然后可以加下面的两段;
注:如果您的系统的编码是 gb2312、gbk、gb18030或者其它的,请改我们加的那两段中的 utf8的,改为cp936或者 gb2312 ;一步一步的实验,总会行的通的;
3、重启 hal守护程序;
[root@localhost beinan]# /etc/init.d/haldaemon restart
正在关闭 HAL 守护进程: [ 确定 ]
启动 HAL 守护进程: [ 确定 ]
4、插上USB或1394设备;点桌面的计算机就能看到磁盘的图标;
有时可能慢一点出来,是不是挂载了,挂载到哪去了,我们可以用 df -lh 来查看;
[root@localhost beinan]# df -lh
Filesystem 容量 已用 可用 已用% 挂载点
/dev/hda8 11G 5.9G 4.5G 58% /
/dev/shm 236M 0 236M 0% /dev/shm
/dev/sdc5 5.2G 63M 4.9G 2% /media/usbdisk2
/dev/sdc1 4.2G 1.4G 2.8G 34% /media/usbdisk1
/dev/sdb1 988M 3.7M 984M 1% /media/usbdisk
/dev/sda1 56G 22G 35G 39% /media/ieee1394disk
5、是不是权限能让普通用户可写的测试;
如果是fat 或者 fat32的文件格式,我们在 10-storage-policy.fdi 中这个文件中已经定义了mount的option ,比如 user 和rw,用户可读可写;如果是ntfs的分区,我们设置了mount 的option 的umask=000 ,这样所有的用户都有所有的权限,但ntfs分区只能在 Linux 下可读;没有太大的意义;如果是ext3、reiserfs、ext2文件系统,如果能让普通用户拥有可读写的能力,查看挂载点到哪里了,执行一下 chmod -R 777 目录名 ;这样所有的用户就可读可写可执行;而且每个用户的文件相互独立,相互之间保密;中文支持不存在问题,如果出现乱码,可以用export LANG= 来临时设置一下编码;比如export LANG=zh_CN
如果是其它文件格式,一是要支持内核才行;大多Fedora Core 4 已经支持了,比如hfs文件系统;
【编辑推荐】