在进行程序开发的过程中, 我们经常要在主机与虚拟机之间传递文件, 比如说, 源代码位于虚拟机, 而在主机下阅读或修改源代码, 这里就需要使用到 「共享文件」 这个机制了. 本文介绍了两种共享文件夹的实现机制: VMware 自带功能及 samba 服务器.
1 VMware 自带共享文件夹功能
这种方法很明显只能在 VMware 下使用, 换成其它虚拟机软件, 比如 VirtualBox, 就不适用了. 当然 VirtualBox 也有其共享文件夹的功能, 原理类似.
要使用此功能, 一定要先安装 VMware tools(详细请参见: 手把手教你配置 Linux 虚拟机), 安装完毕一定要重启虚拟机.
(adsbygoogle = Windows.adsbygoogle || []).push({});
1.1 打开 虚拟机 --> 设置
1.2 在 「虚拟机设置」 中, 选择 「选项」 标签, 再点击 「共享文件夹」, 然后点击右侧的 「总是启用」 , 之后再点击 「添加...」 , 添加主机上的共享目录. 后面就跟着提示一步步操作即可.
1.3 现在主机的共享文件夹位于 E:\share, 那在虚拟机下哪里可以找到? 答案是 / mnt/hgfs/share/. 可做个测试: 在虚拟机下 / mnt/hgfs/share / 下创建一个 test.txt, 在 E:\share 里可见到并可打开此文件.
2 samba 服务器的搭建
SMB 是一种在局域网上共享文件和打印机的一种通信协议, 它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务. 它不受虚拟机平台的限制, 不管是 VMware 还是 VirtualBox, 都可以用. 实际上, samba 并不依赖虚拟机, 两者毫无关系.
2.1 首先安装 samba 及 smbclient:
- sudo apt-get install samba
- sudo apt-get install smbclient
2.2 创建共享目录:
- mkdir ~/share
- chmod 777 ~/share
2.3 修改配置文件:
sudo VIM /etc/samba/smb.conf
在其后添加:
- path = /home/liangxu/share
- available = yes
- browseable = yes
- (adsbygoogle = Windows.adsbygoogle || []).push({
- });
- public = yes
- writable = yes
2.4 创建 samba 用户
- sudo touch /etc/samba/smbpasswd
- sudo smbpasswd -a liangxu
根据提示输入密码.
2.5 重启 samba 服务器
sudo /etc/init.d/smbd restart
2.6 将共享目录添加到主机中
先在我的电脑里任意位置右击, 选择 「添加网络位置」 , 然后再点击下一步
选择 「选择自定义网络位置」 , 点击下一步
在下一步里, 填入共享目录地址:\192.168.0.131\share
虚拟机 IP 地址使用 ifconfig 查看.
至此, samba 服务器全部搭建完毕. 以后在此文件夹下创建或修改文件, 从主机或虚拟机上查看到的效果都是一样的.
来源: https://juejin.im/post/5c0286db5188257c5237c81f