I recently upgraded my Linux RAID server, from which I export several
volumes to my Mac OS X clients via AFP using netatalk. I was running
SuSE Linux 9.2, and everything worked find for over a year, but
immediately after upgrading to open SuSE 10.2, I could no longer mount
any of the AFP volumes on my clients, all attempts to do so resulted in
"Error Code -5014".
I searched the web, and found a few reports of this problem, including
one on this mailing list, but no solutions. This server is home to
several large files that I need to access from my Mac clients, and for a
variety of reasons NFS and Samba are not good alternatives. I had no
choice but to investigate myself, found the problem and am writing in
hopes of saving someone else an afternoon of detective work.
The root cause of the problem is that the netatalk developers redesigned
an internal database stored on the server side with netatalk version
2.X, but they did not provide any sort of automated conversion with the
upgrade. One must read the netatalk 2.X installation instructions
carefully to understand the problem.
The confusion is compounded by netatalk using the same error code
(#define AFPERR_MISC -5014) in at least a dozen different locations in
the code, indicating a variety of different error conditions ranging
from malloc() failures to difficulties reading the internal AFP
database. Suboptimal coding practice, at best.
OK, irrelevant whining aside, the fix for this was very simple. After
being clued in to the existence of this database by looking at the
netatalk code on sourceforge, I searched the netatalk installation
documentation and found a section on upgrading the database. The
database is a Berkeley database stored in a directory called ".AppleDB"
in the top level of the volume being exported by netatalk. The
documentation discusses ways to convert the database to the new format,
but also mentions that it can simply be removed (with some caveats that
they allude to but don't really explain) and it will be rebuilt. I
chose to try this approach, and stopped the netatalk daemons,
(/etc/init.d/atalk stop) renamed the .AppleDB directory to AppleDB.orig,
and restarted the daemons.
I can now mount the Linux volumes via AFP on my Mac clients!
Al
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Macosx-interop mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden