我有一个configuration为NFS服务的Windows 2008存储服务器。 我正在使用FreeBSD客户端从存储服务器装载共享。 每一件事情都像复制,删除文件等工作正常。但是,当我在我的FreeBSD客户端上运行find命令对于挂载的文件系统内的某个目录,命令无法recursion列出文件。 它列出了直接的子文件和目录。 子目录内的文件没有列出。
有谁可以请帮忙,可能是什么问题?
IIUC Windows NFS服务器至less以前是更多的“checkboxfunction”,而不是用于实际工作的东西。 不过,不知道w2k8是否有任何改变。
假设FreeBSD有一个CIFS客户端,你可能通过CIFS安装好运气?
我在Linux中看到了很多相同的东西,并且在findutils的源代码中探索过。 看起来像Windows Server 2008中可能有一个错误,其中由NFS客户端上的readdir()返回的(struct dirent*)的d_type字段是8(DT_REG,不正确)而不是4(DT_DIR,预计)。 毫不奇怪,find不会recursion进入这种目录的子树。
如果你想自己testing一下,你可以下载findutils-4.4.2的源代码。 更改gnulib / lib / fts.c行1136
if (sp->fts_compar == NULL || ISSET(FTS_DEFER_STAT)) {
至
if (0 && sp->fts_compar == NULL || ISSET(FTS_DEFER_STAT)) {
并重build查找。 在这个改变之后,find所有预期的目录,至less在我尝试过的情况下。 我不知道这是否是一个完整的解决scheme,保证在所有情况下都能正常工作。
我不知道,如果微软知道它,并有一个修补程序,以及它是否已被修复在Windows Server 2008 R2中。