升级到Fedora 9之后,发现无法像以前那样mount samba共享文件系统了。
当我使用如下命令:
$mount -t cifs //192.168.1.2/samba /mnt/samba -o username=test,password=test
mount samba共享文件时,会出现如下错误:
mount error 20 = Not a directory
Refer to the mount.cifs(8) manual page (e.g.man mount.cifs)
Google了一下,发现这种问题可能是由于cifs文件系统与较老版本的samba共享服务器不兼容所致,所以要解决这个问题,要么升级samba服务器程序,要么需要对cifs做些限制。根据网上的建议,可以使用:
$echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled
修改cifs选项,禁止cifs的扩展功能,然后在mount就没有什么问题了。
但每次重启后都要执行一次这样的操作,未免有些麻烦,所以我改了一下系统的启动脚本,这样就可以把这些mount放到fstab里,让系统每次启动时自动mount了。方法如下:
修改/etc/init.d/netfs,按如下方式在start里添加+号所示的一行:
case "$1" in start)
+ /sbin/modprobe cifs && echo 0 > /proc/fs/cifs/LinuxExtensionsEnabled
...
首先执行"/sbin/modprobecifs"是要加载cifs模块,否则我们所要修改的文件LinuxExtensionsEnabled可能还不存在,修改就会失败。由于不同启动Level的rc*.d/S**netfs都是链接到/etc/init.d/netfs的,所以此修改对所有启动Level都会生效。当然,如果你的系统不是这种链接,修改相应的文件也是一样的。
重启后再安装samba共享文件系统就没有问题了。