和VMware相比,Virtual Box设置共享文件夹还是比较麻烦的。搜索一番,众说纷纭,经过试验,我把一种可行的方法总结如下。
首先说一下我的软件环境:
主机:win7 64位
虚拟机:Virtual Box 5.1.14(下文简称vbox)
客户机:Ubuntu 16.04
问题:假设我的主机上有一个文件夹D:\book,如何让客户机和主机共享这个文件夹?
1.为VBox安装增强功能
在菜单中,选择【设备】–>【安装增强功能】
点击【运行】。之后会弹出认证窗口,输入用户密码,点击【授权】。不出意外的话,会自动安装。
我们静等安装完毕,然后重启客户机。
2.在vbox上设置共享文件夹的路径和名称
点击【控制】–>【设置】–>【共享文件夹】,点击右边的“+”图标。
设置共享文件夹的路径和名称。
注意:
(1)名称可以任意起一个,不建议用中文。
(2)请勾选“固定分配”。
如下图,我设置了两个共享文件夹,一个共享名称叫“book”,一个共享名称叫“learn_asm”
3.在客户机上手动挂载
因为我设置了两个共享目录,想演示一下同时挂载两个的效果。所以首先要创建两个挂载点,例如挂载到/mnt/下面。
sudo mkdir /mnt/share1
sudo mkdir /mnt/share2
然后就可以挂载了。
sudo mount -t vboxsf learn_asm /mnt/share1
sudo mount -t vboxsf book /mnt/share2
注意:这样设置不能永久生效,重启后就会失效。
网上说,如果想永久生效,可以在/etc/fstab文件中添加:
learn_asm /mnt/share1 vboxsf defaults 0 0
【我尝试了,不行,我的ubuntu都无法启动了。】
怎么办呢?还有一种方法,在文件 /etc/rc.local 中(以root身份打开),添加如下命令.
mount -t vboxsf learn_asm /mnt/share1
经过试验,这个方法是可行的。
4.关于自动挂载
其实也可以勾选“自动挂载”。这样不用自己在客户机上mount,系统会自动在“/media”里建立以sf_为前缀并加上共享名的挂载点,比如你设置的共享名是“book”,那么这个挂载点就是“sf_book”,系统一启动就自动挂载好了。
不过因为这个挂载点默认的权限是给vbox创建的用户组“vboxsf”的,我们无法查看。要想查看的话,需要把自己的用户名加入到“vboxsf”组。
假设用户名是Tom,可以用以下的命令:
sudo usermod -G vboxsf Tom
运行命令后需要重新登录才能生效。
这样看来自动挂载也方便不了多少,还需要手动加入组。还有一个缺点就是只能自动挂载一个共享文件夹。