This holidays I'm migrating my server from W2k3 R2 32-Bit to 64-Bit. I did it the usual way: I've a secondary DC as a VM on my workstation, and I assigned all the master roles to it. Then demoted my server and did a fresh install for the 64-Bit OS. I promoted it to become a DC again, took back all the roles and started to install services like NIS, NFS etc. The server has multiple disks, and by the reinstall of course only drive C: got reformatted, the other drives where then just mounted back. I brought up all my VMs again running in Virtual Server (VMs for MOSS, Exchange, TFS, Linux etc.) and overall all my services where running again, except: NFS.
The situation was this: on my various server drives I've NFS shares that my virtual Linux machine is mounting (for Backup and other things). This no longer worked and I got errors in the system event log from nfssvc with Event ID 1066, which normally means two things: your drive isn't NTFS, or you have some unspecified low level error. My drives are of course NTFS, so it must be low level errors, but which? There where no further details in the event logs, and searching the Web for a few hours didn't help:-(
So, last resort was to look into the registry. Under HKLM in the CurrentControlSet for nfssvr I realized that for any drive having a NFS share there was an entry, and some key pointed to a hidden "._nfs" directory on that drive. Just out of curiosity I looked into these directories and realized, that some of the files where the original ones created when I shared the directories on that drive for NFS running in 32-Bit mode. The purpose of these files seems to be to manage locks and to simulate inodes. My guess is, that the 64-Bit processes have problems to handle some of these files created in 32-Bit mode. So I did the following:
I'm happy to say, that was the trick!