在启动时在Ubuntu VM中安装VirtualBox SharedFolder
我有一个在VirtualBox中运行的Ubuntu VM。
我有一个共享文件夹设置为myshare
我在我的主目录( ~/jamesw
)中创建了一个文件夹作为host
。 使用sudo mount -t vboxsf myshare host
来自终端中我的主目录的sudo mount -t vboxsf myshare host
正确安装驱动器,但如果我重新启动它不会再次安装。
这是一个用于运行简单Web服务器的VM,我希望每次启动时都会安装此Share。 有没有办法做到这一点? 特别是考虑到它需要sudo?
使用Virtual Box Manager自动安装共享文件夹
从Virtual Box> 4.0,我们可以在虚拟机中自动挂载共享文件夹 。 要为Ubuntu这样做我们
- 需要在来宾操作系统中安装Guest Additions
- 确保用户在组
vboxsf
- 从Virtual Box Manager定义共享文件夹
右键单击虚拟机,然后选择“设置” – >“共享文件夹” 。 这将列出现有共享,或者通过单击右上角带有绿色+标志的蓝色文件夹图标来定义新的共享文件夹:
从下拉菜单“ 文件夹路径”中选择文件夹,或者为列出主机文件系统的文件选择器选择“ 定义其他 ”。 选择共享的名称(例如, myshares )。 通过勾选自动挂载,此文件夹将始终挂载在Ubuntu来宾目录/media/sf_myshares
(将自动添加前缀sf_
)。
或者,要在正在运行的客户操作系统中定义共享文件夹,我们可以从Virtual Box Manager的窗口菜单中选择设备 – >共享文件夹 :
通过勾选Make Permanent,这些共享文件夹也将在下次启动时可用,并在添加自动挂载时安装 。
我不认为使用/ etc / fstab会起作用(它对我不起作用),因为该文件在加载SF模块之前处理并且无法挂载共享,请参阅HOWTO:使用共享文件夹1 。
这还不是一个完整的答案,但更像是有两种方法的指南:
1 – 你可以编辑/etc/fstab
并在那里添加这个mount。 您需要将mount参数转换为fstab语法。 一个疯狂的猜测就像/home/jamesw/host vboxsf myshare,umask=002,uid=
。 你需要sudo
来编辑你的fstab,但是,一旦完成,它将在启动时自动挂载。 由于这是在您登录之前完成的,因此您需要一个到挂载点的绝对路径(因此/ home / jamesw / host),您不能使用$HOME
或~
。 提示:“host”文件夹不需要存在。 如果它在fstab中,mount将为您创建它。
2 – 您可以使用fusermount
而不是mount。 语法类似(但不完全相同,因此您仍需要翻译mount参数)。 Fusermount要求您的挂载点位于$ HOME内的某个位置,但最大的优点是您不需要sudo
。 在Nautilus中可以使用挂载(就好像它是CD或USB密钥)。 获得正确的参数并对其进行测试后,可以将其添加到~/.profile
,每次登录时都会运行。
编辑:我假设Virtualbox不需要机器实际运行它来共享文件夹,或者它已启动并运行在您登录之前
Ubuntu 16.04来宾和共享文件夹自动挂载可由普通用户访问
为了以普通用户身份自动挂载和访问这些文件夹,需要执行特定步骤。
-
不要使用官方客人添加。 而是安装
virtualbox-guest-dkms
。sudo apt-get install -y virtualbox-guest-dkms sudo usermod -aG vboxsf $(whoami) sudo VBoxControl guestproperty set /VirtualBox/GuestAdd/SharedFolders/MountDir ~/vbshare
-
使用
Auto-mount
和Permanent
选中添加一些共享文件夹。 - 重启vm。
-
检查是否安装了任何vb文件夹:
mount | grep vboxsf
-
如果是这样,
~/vbshare
所有权更改为您自己。sudo chown $(whoami):$(whoami) ~/vbshare
添加新的共享文件夹而不重新启动VM
- 添加共享文件夹。
-
检查是否可以通过此命令找到它:
sudo VBoxControl sharedfolder list
-
如果是这样,请创建目录并安装
mkdir ~/vbshare/newfolder sudo mount -t vboxsf newfolder ~/vbshare/newfolder