环境说明:
macOS 10.14 下VMWare Fusion Pro 11和客户机CentOS7
—2019年更新,virtualbox发布6.x版性能及界面都令我很满意,wmware没太大优势,没必要用wmware了(mech当初用了一周就不用了)
个人觉得mac下的virtualbox性能没有wmware好. 但是又想使用vagrant控制虚拟机. 于是就有了这篇文章.
vagrant结合virtualbox使用是免费的, 但是vagrant结合wmware要收费, 并且要使用插件, 这个插件要收费$79美元.
可以使用mech替代, mech是用python写的, 直接用pip就能安装, mech可以用在linux, windows, macos上.
mech使用的命令类似vagrant, 可以直接使用vagrant格式的wmware box镜像
参考文章: Mech: Vagrant with VMWare Integration for free
安装mech
pip3 install mech
mech版本下载box:
mech init centos/7
mech up
mech ssh
镜像可以用vagrant的, 各种linux发行版镜像列表可以找这里box list, 把关键字vagrant
换为mech
即可使用该镜像
上述初始化可以改为以下, 但我尝试加了--name
参数报错
mech init centos/7 --name=虚拟机名
BUG1–不能共享
启动后报错不能共享文件夹(默认已安装vmware tools)
ERROR: Error: There was an error mounting the Shared Folders file system inside the guest operating system
此处参考文章:
解决vmware 里centos7与windows共享目录报 mount: unknown filesystem type ‘vmhgfs’
在客户机里查看当前设置的共享目录:
vmware-hgfsclient
先创建要共享的目录并修改归属用户(这句看当前用户名 echo ${USER}
)
sudo mkdir /mnt/hgfs
sudo chown vagrant.vagrant /mnt/hgfs
在vmware客户机(centos)里执行挂载文件夹命令:
/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
报错:
fusermount: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf
修改/etc/fuse.conf文件取消注释再试, sudo vi /etc/fuse.conf
取消或者新增一行user_allow_other
在vmware客户机里挂载文件夹命令设置开机执行
sudo vi /etc/rc.d/rc.local
/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
保存, 增加执行权限
sudo chmod +x /etc/rc.d/rc.local
再开mech, 启动后还是报错, 说不能共享文件夹, 但是这时已经可以在客户机看到共享的文件了, 修改文件会实时双向同步
我这里是把上面的/mnt/hgfs
目录设置为/www
, 默认会把虚拟机项目所在的文件夹
共享到共享目录下的mech
文件夹, 例如我这里客户机里的共享文件夹是/www/mech
提示: mech启动后, 可以通过mech ssh-config
查看私钥文件的位置, 然后就可以用其他工具远程连接了
BUG2–启动mech报错
如果启动mech时报错, 尝试关闭vmware的窗口再试
long@longdeMacBook-Pro ~/vbox_projects/vm mech up
Bringing machine up...
ERROR: Error: A file access error occurred on the host or guest operating system
VM not started
注: mech相对vagrant多bug, 目前发现不能mech box remove box名
命令移除已添加的box镜像, 但是我通过find命令找到了对应文件的目录,
删除~/.mech/boxes
目录下的对应文件夹即可移除box镜像, mech box list
命令可以看到目前存在的box
其它的共享方案
使用sshfs挂载远程服务器的文件, 映射到本地磁盘
windows下sshfs解决方案:
Dokan+SSHFS 文件系统共享心得,代替 Samba 的理想之选
如果在windows下用vagrant配合virtualbox虚拟linux, 共享的目录不能修改权限, 都是777. 建议使用sshfs方法替代默认的共享文件夹方法
linux下sshfs解决方案:
linux版SSHFS安装使用方法
mac下sshfs解决方案:
Mac 安装 sshfs