Ubuntu 16.04 客户机和共享文件夹自动挂载,普通用户可以访问

Ubuntu 16.04 客户机和共享文件夹自动挂载,普通用户可以访问

我在 VirtualBox 中运行 Ubuntu VM。
我设置了一个共享文件夹,因为我在主目录 ( )myshare 中创建了一个文件夹。使用终端中主目录中的行可以正确安装驱动器,但如果我重新启动,它就不会再次安装。 ~/jameswhostsudo mount -t vboxsf myshare host

这是我用来运行简单 Web 服务器的虚拟机,我希望每次启动时都安装此共享。有什么办法吗?特别是考虑到它需要 sudo?

答案1

使用 Virtual Box Manager 自动挂载共享文件夹

从 Virtual Box > 4.0 开始,我们可以自动挂载共享文件夹在虚拟机中。对于 Ubuntu,我们

  • 需要安装新增嘉宾在客户操作系统中
  • 确保用户在组中vboxsf
  • 从 Virtual Box Manager 定义共享文件夹

右键单击您的虚拟机并选择设置->共享文件夹+。这将列出现有共享或让您通过单击右上角带有绿色“-”符号的蓝色文件夹图标来定义新的共享文件夹:

在此处输入图片描述

从下拉菜单中选择您的文件夹文件夹路径或选择定义其他列出主机文件系统的文件选择器。选择共享的名称(例如我的分享)通过勾选自动挂载该文件夹将始终挂载在 Ubuntu 客户机目录中/media/sf_myshares(前缀sf_将自动添加)。


或者,要在正在运行的客户操作系统中定义共享文件夹,我们可以选择设备 -> 共享文件夹从 Virtual Box Manager 的窗口菜单中:

在此处输入图片描述

通过勾选使永久生效这些共享文件夹也将在下次启动时可用,并将在以下情况下挂载:自动挂载已另外勾选。

答案2

我认为使用 /etc/fstab 不会起作用(对我来说不起作用),因为该文件在加载 SF 模块之前进行处理,并且无法挂载共享,请参阅操作方法:使用共享文件夹1

答案3

这还不是一个完整的答案,但更像是针对您所拥有的两种方法的指南:

1 - 您可以/etc/fstab在那里编辑并添加此挂载。您需要将挂载参数转换为 fstab 语法。大胆猜测应该是这样的/home/jamesw/host vboxsf myshare,umask=002,uid=<youruser>,gid=plugdev 0 0。您需要sudo编辑 fstab,但一旦完成,它将在启动时自动挂载。由于这是在您登录之前完成的,因此您需要挂载点的绝对路径(因此是 /home/jamesw/host),您不能使用$HOME~。提示:“host”文件夹不需要存在。如果它在 fstab 中,mount 将为您创建它。

2 - 您可以使用fusermount而不是 mount。语法类似(但不完全相同,因此您仍需要转换 mount 参数)。Fusermount 要求您的挂载点位于 $HOME 中的某个位置,但最大的优点是您不需要sudo。并且挂载将在 Nautilus 中可用(就像它是 CD 或 USB 密钥一样)。获得正确的参数并进行测试后,您可以将其添加到~/.profile,每次登录时都会运行。

编辑:我假设 Virtualbox 不需要机器实际运行来共享文件夹,或者它在您登录之前已经启动并运行

答案4

Ubuntu 16.04 客户机和共享文件夹自动挂载,普通用户可以访问

为了以普通用户身份自动挂载并访问这些文件夹,需要执行特定步骤。

  1. 不要使用官方的访客添加功能。而是安装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
    
  2. 添加一些共享文件夹Auto-mountPermanent进行检查。

  3. 重新启动虚拟机。
  4. 检查是否安装了任何 vb 文件夹:

    mount | grep vboxsf

  5. 如果是,则将所有权更改为~/vbshare您自己。

    sudo chown $(whoami):$(whoami) ~/vbshare
    

无需重启虚拟机即可添加新的共享文件夹

  1. 添加共享文件夹。
  2. 检查是否可以用以下命令找到它:

    sudo VBoxControl sharedfolder list

  3. 如果是,则创建目录并挂载

    mkdir ~/vbshare/newfolder
    sudo mount -t vboxsf newfolder ~/vbshare/newfolder
    

相关内容