一位同事要求我使用VirtualBox帮助在Arch Linux来宾中安装共享的Windows 10文件夹。该系统是由另一个外出共进午餐的同事建立的。
要共享的文件夹为E:\virtual_shared\
。来宾添加已安装并启用。我可以看到共享文件夹,/media/sf_virtual_shared/
并且在处有一个挂载点/mnt/share/
。一个ls -al /mnt/share/
显示该目标目录是空的。该用户是该vboxsf
组的一部分。所有权限似乎都在主机和来宾上签出。一切似乎还好。但是,我仍然无法挂载它!
要安装它,我正在使用
# mount -t vboxsf /media/sf_virtual_shared/ /mnt/share/
并得到错误
"/sbin/mount.vboxsf: mounting failed with the error: Protocol error"
我尝试挂载到新文件夹(~/test/
),但收到相同的错误。
最终,建立系统的人从午餐回来了。他只是跑了
# mount /mnt/share
事实证明,其中fstab
包含以下内容:
#
# /etc/fstab :static file system information
#
# <file system> <dir> <type> <options> <dump> <pass>
# UUID=5392b506-dde2-4a21-9c7e-86a6f9f94907
/dev/sda2 / ext4 rw,relatime,data=ordered 0 1
# UUID=d6236258-9bea-446a-b38b-0244c048bb1
/dev/sda1 /boot ext2 rw,relatime 0 2
virtual_shared /mnt/share vboxsf defaults 0 0
我的问题是,为什么不mount
使用绝对路径的调用挂载目录?如何mount
使用fstab
?
我知道这mount
在启动时会被调用,并且会fstab
依次执行。即使/mnt/share/
被列为空,是否在此挂载了某些东西,从而阻止了绝对路径调用的挂载?为什么我仍然不能将共享文件夹挂载到~/test/
?
vboxsf文件系统不会在其他目录上挂载本地目录-其源参数既不是相对路径也不是绝对路径;这根本不是一条路。它是仅对vboxsf和VirtualBox应用有意义的字符串。(更具体地说,这是您在VirtualBox VM设置中配置的“共享名”。)
因此,fstab与此处无关。这两个mount调用指定的源在任何方面都不等效。
(如果有帮助,请想象vboxsf是一个远程文件系统,就像cifs / smbfs一样工作-因为它的确是这样。就像cifs需要一个远程“共享名”而不是本地路径一样,vboxsf也是如此。)
可见的共享文件夹又如何/media/sf_virtual_shared
呢?好吧,这条路径本身就是一个挂载点。如果您看一下findmnt
,您可能会看到一个vboxsf实例已经被挂载到该位置–大概是vbox来宾服务自动为您安装了它。因此,它不是您可以使用的资源。这是一个已经被使用的目标。
(如果您确实要在另一个目录上挂载本地目录,请不要使用任何文件系统类型,请使用mount --bind
。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句