如何在 Windows 主机和 Ubuntu18.04 客户机之间创建 Virtualbox 共享文件夹

How to create Virtualbox shared folder between Windows host and Ubuntu18.04 guest machine

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

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

1) 在 VM 的菜单中,我找到 'devices' 子菜单并单击 'Insert Guest Additions CD image' 选项,之后状态栏中的 CD 图标亮起并显示 CD 已插入和 iso 的路径是 C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso(我检查过该文件确实存在)。

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

3) 我重新启动我的 Ubuntu 虚拟机并查看 /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 link 存在,我不确定这是否是个问题,我也尝试将我的用户添加到 'vboxsf' 组:

sudo usermod -a -G vboxsf myusername

但是群也没有创建。

我错过了什么,让它工作的方法是什么?

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

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

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

1) 从 VirtualBox 界面启动 Ubuntu VM

2) 在已启动的Ubuntu虚拟机window上层菜单的"devices"子菜单中打开"Shared Folder Settings",设置共享文件夹名称为"test" 路径为“/home/myusername/test”并填写复选框 "Make Permanent"

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 权限,因此使用它们没有问题,因为任何用户都可以随心所欲地使用它们。