10月27, 2017

vmware和主机共享

最近在虚拟机中安装了ArchLinux,想和Windows交换文件自然想到了VM自带的VMtools

vmtools是不支持内核大于>4.0的,默认ArchLinux内核都高于4.0。所以共享文件夹用vmtools是不能成功的。查阅了一些资料和wiki给出的办法是使用open-vm-tools。

记录下过程:

1、新建一个共享文件夹
编辑虚拟机设置--->选项--->共享文件夹--->总是启用--->添加一个共享文件夹.Eg: Shares

2、在ArchLinux中安装open-vm-tools


  # pacman -Syu
  # pacman -S linux-headers 
  # pacman -S open-vm-tools

想实现共享按照wiki应该安装open-vm-tools-dkms,这个不在pacman源中,要用yaourt安装。
  $ yaourt -S open-vm-tools-dkms

3、测试挂载
$ vmware-hgfsclient #如果成功,应该会回显共享的文件夹。这里是Shares

# mkdir -p /mnt/Shares #创建一个挂载点
# vmhgfs-fuse -o allow_other -o auto_unmount .host:/Shares /mn/Shares #挂载

PS:你可以查看/mnt/Shares能否访问并创建删除文件,我在测试的时候发现无法用普通用户操作只能用root账户,应该和权限有关

4、开机自动挂载
三种方法

fstab
# vim /etc/fstab #在fstab最后添加一行
.host:/Shares /mnt/Shares fuse.vmhgfs-fuse defaults 0 0

Systemd
写一个service文件,开机自动启动。
# vim /etc/systemd/system/share.service #添加如下内容,自行更改Shares文件夹

''' [Unit] Description=Load VMware shared folders Requires=vmware-vmblock-fuse.service After=vmware-vmblock-fuse.service ConditionPathExists=.host:Shares ConditionVirtualization=vmware

[Service] Type=oneshot RemainAfterExit=yes ExecStart= ExecStart=/usr/bin/vmhgfs-fuse -o allow_other -o auto_unmount .host:/Shares /mnt/Shares

[Install] WantedBy=multi-user.target '''

# systectml start share.service #启动share服务
# systemctl enable share.service #开机自启动

写一个sh脚本
share.sh /usr/bin/vmhgfs-fuse -o allow_other -o auto_unmount .host:/Shares /mnt/Shares
让他开机自启动

参考: ArchLinux Wiki
Github issues

本文链接:http://www.senlief.com/post/vmware.html

-- EOF --

Comments