因为现在基本都在Linux下活动了,工作中有需要用到编译服务器,每次进入linux之后再用mount命令手动挂载也挺麻烦的,而且手动挂载的话,每次都要重新将服务器目录的代码导入到source insight,麻烦极了,严重降低了生产效率。
那么问题就来了,如何能够开机自动挂载samba目录呢,google或者baidu一下你会发现各种各样的方法,大致可以分为两类:
- 将mount命令写入到脚本中,开机自动加载脚本
- 修改fstab
第一种方法我没有试过,我用的第二种方法,但是也遇到很多坑,写下来让需要的网友不用走那么多弯路
首先我们知道挂载samba目录的mount命令是:1
mount -t cifs //172.20.4.189/home /mnt/myshare -o username=caobin
-o代表后面可以跟很多参数,比如password啊,iocharset之类的,以,
分割,运行完该命令之后,如果有密码会提示让输入密码的,也可以直接将密码以password=xxx的形式放到-o后面
打开fstab,vim /etc/fstab 默认fstab是只读的,所以需要修改一下权限,在最后加入这么一句:1
//172.20.4.189/home /mnt/myspace cifs defaults,username=caobin,password=xxx 0 0
然后保存退出,重启机器你发现确实挂载上了,开心的不得了
而且还可以将服务器上的android源码导入source insight
了,但是你会发现普通用户你没办法修改,shit啊,怎么可能不修改代码呢,你们一看可能说我没加rw,那么我将上面那句改为这样1
//172.20.4.189/home /mnt/myspace cifs defaults,rw,username=caobin,password=xxx 0 0
然后你试试,一样是不可以写的,哪有那么简单啊,或者说把defaults去掉,一样没用的
那么如何解决呢,google了很多,有的说加umask=000
,有的说把服务器上的uid和gid加上去,几乎都是抄来抄去的,我就一次次试,最终发现我在挂载的时候将uid和gid指定为本机的就行了,打开terminal,输入id,就看到uid和gid了
最终我挂载成功,且可以正常读写的命令是这样的1
//172.20.4.189/home /mnt/myspace cifs defaults,rw,uid=1000,gid=1000,credentials=/etc/samba/credentials 0 0
那个/ect/samba/credentials
是保存密码用的,嫌麻烦可以直接用username=caobin,password=xxx
替换即可,如果中文乱码的话,可以加上iocharset=utf8
就酱,over