首页 > 解决方案 > 如何在 Windows 主机和 Ubuntu18.04 客户机之间创建 Virtualbox 共享文件夹

问题描述

我已经阅读了有关从主机共享文件夹到 Virtualbox 来宾机器的文档和所有问题,但仍然无法正常工作。在我的情况下,主机是 Windows 机器,来宾是 Ubuntu18.04 服务器机器。

建议的内容和我已经尝试过的内容:

1) 在 VM 的菜单中,我找到了“设备”子菜单并单击“插入访客添加 CD 映像”选项,然后状态栏中的 CD 图标亮起,显示 CD 已插入,iso 的路径为 C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso (我检查了该文件确实存在于那里)。

2) 在同一个“设备”VM 的设置子菜单中,我打开了“共享文件夹设置”并添加了名为“test”和路径“D:\test”的共享文件夹,该文件夹指向我的 D: 磁盘上包含测试文件的文件夹。

3)我重新启动我的 Ubuntu VM 并查看 /media 目录,期望找到 /media/cdrom 目录或类似的目录,其中包含文件 VBoxLinuxAdditions.run,应该根据文档运行。但是 /media 目录是空的,所以我与它无关。我在其他目录中查找此文件但没有成功。

之后,我尝试按照 ubuntu 论坛的建议从存储库安装 Virtualbox-guest-additions:

sudo apt-get update
sudo apt-get install virtualbox-guest-dkms

并检查该软件包是否已使用以下命令安装:

lsmod | grep -io vboxguest

但是当我重新启动并尝试使用以下方式安装共享文件夹时:

mkdir -p /home/myusername/test
sudo mount -t vboxsf test /home/myusername/test

我有错误:

mount: /home/myusername/test: wrong fs type, bad option, bad superblock on /home/myusername/test, missing codepage or helper program or other error.

我看到没有 /sbin/mount.vboxsf 链接,我不确定这是否是一个问题,我也尝试将我的用户添加到“vboxsf”组:

sudo usermod -a -G vboxsf myusername

但该组也没有创建。

我错过了什么,让它发挥作用的方法是什么?

标签: windowsvirtualboxubuntu-18.04shared-directory

解决方案


经过一整天尝试不同的解决方案后,我终于找到了缺失的成分。但是我将部分重复我的主题内容,并为像我这样在这项任务中苦苦挣扎的人提供分步说明。

我们假设我们已经安装了 Ubuntu 18.04 VM,并且在这台机器上具有 sudo 权限的 linux 用户“myusername”。

因此,要将 Windows 主机上的文件夹 D:\test(仅作为示例)共享到 Ubuntu 18.04 Virtualbox 的客户机(它的内容应该在 /home/myusername/test 目录中可用),我们执行以下步骤:

1) 从 VirtualBox 界面启动 Ubuntu VM

2)在启动的Ubuntu VM窗口上方菜单的“设备”子菜单中打开“共享文件夹设置”,将共享文件夹名称设置为“test”,路径设置为“/home/myusername/test”,并勾选“Make永恒的”

3) 使用包管理器将 virtualbox-guest-dkms 和 virtualbox-guest-utils 包安装到 Ubuntu VM。

sudo apt-get update
sudo apt-get install virtualbox-guest-dkms
sudo apt-get install virtualbox-guest-utils

4) 在你的 Ubuntu VM 上创建一个目录 /home/myusername/test

mkdir /home/myusername/test

5) 重启 Ubuntu 虚拟机

reboot

6) 使用命令在 Ubuntu VM 中重新启动挂载共享文件夹后

mount -t vboxsf test /home/myusername/test

7) 检查 /home/myusername/test 目录中的文件,它们应该与位于 Windows D:\test 文件夹中的文件相同

ls /home/myusername/test

8)此外,您可以在重新启动后自动安装此共享文件夹,为此您需要将下一行添加到您的 ubuntu 用户的 /home/myusername/.profile 文件中:

echo "sudo mount -t vboxsf test /home/myusername/test" >> /home/myusername/.profile

并通过打开“sudo visudo”命令(用于更改 /etc/sudoers 文件)授予您的用户无需输入密码即可挂载的权限,并添加下一行:

myusername ALL = (ALL) NOPASSWD: /bin/mount

就是这样,在这些步骤之后,我设法将文件从 Windows 主机共享到 Ubuntu 客户机。我想提一下,共享目录本身和其中的所有文件都属于 root,但具有 777 权限,因此使用它们没有问题,因为任何用户都可以对它们做任何他想做的事情。


推荐阅读