在 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,以下是挂载共享文件夹的步骤:
使用 VirtualBox 主机的应用程序 VirtualBox Manager 指定要共享的主机文件夹。
确保 VirtualBox Guest Additions 已安装在 VirtualBox 客户机中。
在 Linux 客户机中,mount 命令应显示一行,表示共享已挂载。这由 表示
type vboxsf
。问题在于挂载点可能不在所需的位置,并且权限仅限于 root。默认挂载位置在/media/sf_
。1000
您可以通过将 的用户或组 ID 设为组 的成员来访问共享vboxsf
。这可以通过更改文件vboxsf
中的行来完成/etc/group
。可能需要重新启动。您可以使用 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
参考:
答案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