在虚拟机中符号链接 /mnt 以将文件直接编译到虚拟机文件夹

在虚拟机中符号链接 /mnt 以将文件直接编译到虚拟机文件夹

我想做的是在我的 Mac 和 Ubuntu 虚拟机之间建立一个共享文件夹的符号链接。

VM 上的共享文件夹将进入/mnt/hgfs/.

在我的 Mac 上,我将目录(比方说macdirectory)符号链接到共享文件夹sharedfolder,因此当我编译文件并将文件放在那里时,它会跟随应用程序运行的 VM 目录。

我想在我的虚拟机中做的是这样的:

sudo ln -s ~/linuxdirectory /mnt/hgfs/sharedfolder

但随后我收到此错误消息:

ln: failed to create symbolic link '/mnt/hgfs/sharedfolder/linuxdirectory'

经过我多次尝试建立这个符号链接,我可能做了错误的链接。这是结果ls -la /mnt/hgfs/sharedfolder/

drwxr-xr-x 1  502 dialout  102 Jun 30 22:30 .
dr-xr-xr-x 1 root root    4192 Jun 30 23:01 ..
-????????? ? ?    ?          ?            ? linuxdirectory

我不能用作/mnt/链接吗?

答案1

HGFS 不允许这样做。无论你做什么,符号链接只允许从共享到共享中的其他位置。其他链接将像你创建的损坏文件一样。通常,客户机可以创建符号链接,但无法跟踪它们。如果你添加以下行

sharedFolder<n>.followSymlinks = "TRUE"

那么来宾将被允许遵循已经创建的符号链接,但随后它就失去了创建新符号链接的能力。

参考

答案2

就我而言,我使用的是 Oracle VMBox,并且必须允许虚拟机创建符号链接。在 Windows 中使用VBoxManage,使用以下命令:

VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARED_FOLDER 1

在哪里虚拟机名称是您的虚拟机的名称,以及共享文件夹(我相信没有路径)。如果命令成功,则不会返回任何内容。如果不是,则返回错误。

相关内容