Virtualbox Linux虚机中设置共享文件夹错误解决

先说环境。我的宿主机是Ubuntu 22.04,客户机是CentOS 7,需要设置一个共享文件夹在宿主机和客户机间共享数据。

先选择了自动挂载,未成功。那就手动挂载:

sudo mount -t vboxsf  share /mnt/ubuntu

还是不行,错误信息是:

/sbin/mount.vboxsf: mounting failed with the error: Invalid argument

于是开始谷歌和百度,各种折腾,试过网上已有的各种方法,如升级virtualbox guest 工具箱,修改share名字确保与共享文件夹不同名,增加 -o 参数,加入到/etc/fstab等等,可惜都失败了。

期间,试了一下故意输错共享文件夹名字,发现错误信息就不同了。如把上面的share 改成不存在的share123,或者 /mnt/ubuntu 改成不存在的 /mnt/tmp 就会出现 shared folder ‘XXX’ was not found 的错误,说明这两个参数在系统中是真实存在的。但为啥会出现 Invalid argument?分析认为是这两个参数所代表的两个目录在什么属性上有问题。

突然想起来,我在宿主机上选择共享的文件夹是个软链接(这样目录名较短)。于是,在Virtualbox的配置中,将共享文件夹路径从软链接改成了实际路径(目录层级较深)。再手动挂载,成功了!

然后,改回自动挂载,也是立即生效。太好了。看来,软链接与真实路径在许多应用程序上表现不同,会导致一些莫名其妙的错误。

发表评论