CIFS 安装 Input/Output 错误 Windows 7 分享

CIFS Mount Input/Output Errors With Windows 7 Share

我花了几天时间试图解决这个问题,所以我要 post 把问题和答案都交给下一个人。

在CentOS 7中,使用以下命令挂载Windows 7共享的文件夹:

    mount -t cifs //MyWindowsPC/SharedFolder $MOUNTPOINT -o user=$USER,uid=$USER,gid="`id -g "$USER"`",cache=none

使用并行 make (make -j) 导致 Input/Output 错误,但使用顺序 make 则不会。 gcc/g++ 无法读取的文件每次尝试都会更改,偶尔 gcc/g++ 会注意到错误不可重现。由于系统日志显示非常一般的 CIFS/VFS 错误,这让我陷入了一场疯狂的追逐。

Windows 方面存在问题。我尝试了各种网站的建议组合。我没有花时间了解解决方案,但我将其缩小到只有两个 Windows 注册表更改。我已经测试过这可以解决 5 台以上不同的 Windows 7 台机器与几台不同的 CentOS 7 和 CentOS 6.2 机器共享的问题。 Input/output 错误消失并且访问共享很快。这是解决方案:

转到“开始”并搜索“regedit”。打开它并导航到 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/LanmanServer/Parameters/。在该文件夹中,通过右键单击它并 selecting“修改”将“大小”参数从 1 更改为 3。

在同一文件夹中,右键单击并select“新建->DWORD(32 位)”。将其命名为“SMB2”并确保将其设置为零(应为默认值)。

重新启动您的 windows 机器,这应该可以解决 windows 共享中的编译问题。

我不确定这两项更改是否必要,但我确信它们一起可以解决问题。