vmfuse 共享目录不能写入文件的问题

最近 manjaro 更新之后, 发现 fuse.vmhgfs-fuse 共享文件不能写入文件了, 提示 Input/Output Error.
于是进行测试排查, 进一步排查发现 64KB 以下的文件还是可以的, 于是看 vmfuse 挂载的是否有问题.

cat /proc/mounts 或者 输入 mount 命令查看:

vmhgfs-fuse on /mnt/hgfs type fuse.vmhgfs-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0,allow_other)

没发现什么异常.

然后 google 看看网友有无类似的 error.

接着在 open-vm-tools 项目下发现一个 issue , 刚好我升级了 manjaro 所有包.
里边的 issue 提到这个确实是挂载时的问题, 最直接的解决方案就是挂载时加多一个 max_write 参数.

于是, 我先 umount 该分区:

sudo umount /mnt/hgfs

如果提示 target is busy 需要找到占用的 pid 并关闭. (sudo lsof /mnt/hgfs)

umount 成功后, 加上 max_write option 重新 mount.

sudo vmhgfs-fuse .host:/ /mnt/hgfs/ -o allow_other,max_write=61440,uid=1000,gid=1000

( id -u nikoid -g niko 可以获取 uid 和 gid ).

然后测试 64KB 以上文件写入, 搞定, 就是这个原因了. 还是希望这个 bug 尽快修复.

最后, 升级系统要谨慎, 最好有两台机器, 一台机器先升级, 另一台备用. 而且升级前做好备份.

参考:

vmhgfs-fuse • help
How do I mount shared folders in Ubuntu using VMware tools? - Ask Ubuntu