解决虚拟机下Ubuntu与Windows的文件共享问题

因为 Windows下nginx+fastcgi+php的并发阻塞问题 的关系,我准备使用Ubuntu虚拟机来进行开发

lnmp部署完、phpStorm装好,只差代码文件了。虽然可以用FTP的方式传递文件,但每改下代码就要上传一次还是很不爽的。如何共享代码呢?

使用Vmware的共享功能

作为VM的自带功能,当然是最先想到它啦,首先要装上Vmware Tools,教程网上一大堆不再赘述。这玩意儿好处不少,例如支持剪贴板共享之类,用VM虚拟机最好还是装一个

安装后,在虚拟机设置中选择选项-共享文件夹,按照提示设定,重启Ubuntu后,在/mnt/hgfs目录下可以看到刚才设定的共享文件夹

……

你是不是以为就大功告成了?错!

仔细看你会发现hgfs目录图标上有个小锁头,表示只读,你不能修改或添加文件到共享文件夹

你是不是以为我设置共享文件夹时不慎勾选了“只读”才导致这样?又错!

我明明没有勾选“只读”,确认了N次、重启了N次,问题依旧

苦苦谷歌一番原因依旧不明,虚拟机下跑Windows的话共享文件夹是可以写入的,不知为何Ubuntu不行

只读显然不符合我们的需求,只好另想办法

(如果广大读者有明白这个问题的,还望不吝赐教,谢谢)

使用局域网共享

因为要进行开发调试,我将虚拟机的网络设为“桥接模式”,此模式下虚拟机会跟宿主主机处在同局域网下

这就好办了,我Windows开个共享不就完了?

开完共享并给予“完全控制”权限后,来到Ubuntu,打开FilesBrowse Network,找到宿主Windows的计算机名,双击,输入用户名密码,顺利看到刚才开的共享文件夹,且可读可写

……

你是不是以为就大功告成了?还是错了!

该死的Ubuntu资源管理器看不到路径,用PhpStorm等软件根本找不到这个局域网中的共享文件夹

怎么办呢?首先想到的自然是做个链接放本地,能直接通过路径访问才能被PhpStorm等软件打开

右键点击目录,选择Make Link,喜闻乐见地又报错了

The target doesn't support symbolic links.

看来局域网中的共享文件夹不支持直接链接啊,那要怎么办呢?

这时就该用mount命令了

首先在Ubuntu中创建一个目录,将被用于挂载

mount //192.168.0.1/lxf /home/abc/ -o username=abc,password=abc,dir_mode=0777,file_mode=0777

其中,//192.168.0.1/lxf为Windows共享文件夹路径
/home/abc/为刚创建的Ubuntu本地路径
usernamepassword为Windows用户名密码

回车之后你就会惊喜地发现/home/abc/已经与//192.168.0.1/lxf同步了,且可读可写,Ubuntu内的软件也能访问到这个目录了

如果你是Ubuntu的话,还可以打开 Startup Applications 图形化程序;或 sudu vi /etc/rc.local 来实现开机自动挂载

可喜可贺、可喜可贺

2 条评论

点击这里取消回复。

昵称
  1. 江泉

    [害羞]博主好厉害,我最近都懒得写博文了,也不知道写什么

    1. mokeyjay

      工作学习中都会遇到很多问题,把解决办法或者思路写下来,利人利己[嘻嘻]