如何挂载 VirtualBox 共享文件夹?

如何挂载 VirtualBox 共享文件夹?

在 Linux 中安装 VirtualBox 共享文件夹的流程是什么?

我尝试了以下安装命令的变体但仍然收到protocol error其他安装错误。

sudo mount -t vboxsf share /home/toto

答案1

好吧,这对我来说有点令人困惑,但我终于意识到发生了什么。所以我决定给出我的看法,希望其他人能更清楚,如果我将来忘记了的话 : )。

我没有使用在虚拟机中创建的共享名称,而是使用了分享或者vb_共享当我的股份名称是西部数据这让我一时困惑。

首先在 VM Box 中添加您的共享目录: 在此处输入图片描述

无论您在此处为您的共享命名什么,都将是您在虚拟机客户操作系统中安装时需要使用的名称。例如,我将我的命名为“wd”用于我的西部数据护照驱动器。

接下来,在 guset OS 上创建一个目录,用于挂载,最好是在您的主目录中。

mkdir share

接下来打开终端并复制并粘贴以下内容或输入。您可以在下方启用共享剪贴板设备->共享剪贴板->双向

sudo mount -t vboxsf wd ~/share/

您现在应该能够使用该文件夹在操作系统之间复制文件“分享”在你的主目录中。

希望这可以帮助!

答案2

对于带有 Linux 客户机的 VirtualBox,以下是挂载共享文件夹的步骤:

  1. 使用 VirtualBox 主机的应用程序 VirtualBox Manager 指定要共享的主机文件夹。

  2. 确保 VirtualBox Guest Additions 已安装在 VirtualBox 客户机中。

  3. 在 Linux 客户机中,mount 命令应显示一行,表示共享已挂载。这由 表示type vboxsf。问题在于挂载点可能不在所需的位置,并且权限仅限于 root。默认挂载位置在/media/sf_

  4. 1000您可以通过将 的用户或组 ID 设为组 的成员来访问共享vboxsf。这可以通过更改文件vboxsf中的行来完成/etc/group。可能需要重新启动。

  5. 您可以使用 VBoxControl 命令更改文件夹的挂载位置。安装 Guest Additions 时会安装此命令。可能需要重新启动。例如,要将挂载点从更改为/media/sf_...使用/home/toto/sf_...以下命令设置 VirtualBox 共享文件夹 guestproperty:

sudo VBoxControl guestproperty 设置 /VirtualBox/GuestAdd/SharedFolders/MountDir /home/toto/

要确认更改,请使用 get:

sudo VBoxControl guestproperty get /VirtualBox/GuestAdd/SharedFolders/MountDir

参考:

VirtualBox 的共享文件夹信息

VirtualBox 的客户属性信息

答案3

当遇到:

mount: Protocol error

尝试在 VirtualBox 中共享文件夹后,例如:

$ sudo mount -o uid=1000,gid=1000 -t vboxsf D_DRIVE ~/host

这最终对我有用:

$ sudo apt-get install virtualbox-guest-dkms

(我的设置:Windows 7 主机,客户机:Ubuntu 12.04、13.10、14.04;当前运行 VBox 4.3.10 r93012)

答案4

在 Linux 或 Mac OS X VirtualBox 客户机中,安装了 VirtualBox Guest Additions 后,您可以使用以下命令发现可用的 VirtualBox 共享文件夹:

sudo  VBoxControl  sharedfolder  list

如果您的客户机中的主文件夹包含与 VirtualBox 共享文件夹同名的文件夹,则可以使用以下 shell 脚本自动挂载它们:

#!/bin/sh
#-----------------------------------------------------------------------------
# Discover VirtualBox shared folders and mount them if it makes sense
#-----------------------------------------------------------------------------

if  !  type  VBoxControl  > /dev/null;  then
  echo  'VirtualBox Guest Additions NOT found'  > /dev/stderr
  exit 1
fi

MY_UID="$(id -u)"
MY_GID="$(id -g)"

( set -x;  sudo  VBoxControl  sharedfolder  list; )  |  \
grep      '^ *[0-9][0-9]* *- *'                      |  \
sed  -e 's/^ *[0-9][0-9]* *- *//'                    |  \
while  read  SHARED_FOLDER
do
  MOUNT_POINT="$HOME/$SHARED_FOLDER"
  if  [ -d "$MOUNT_POINT" ];  then
    MOUNTED="$(mount  |  grep  "$MOUNT_POINT")"
    if  [ "$MOUNTED" ];  then
      echo  "Already mounted :  $MOUNTED"
    else
      (
        set -x
        sudo  mount  -t vboxsf  -o "nosuid,uid=$MY_UID,gid=$MY_GID"  "$SHARED_FOLDER"  "$MOUNT_POINT"
      )
    fi
  fi
done

相关内容