What is Netatalk for? What can I do with it?

Netatalk is an Open Source software package, that can be used to turn an inexpensive *NIX machine into an extremely performant and reliable file and print server for Macintosh computers.

Using Netatalk’s AFP 3 compliant file-server leads to significantly higher transmissions speeds for older Macs compared with accessing a server via Samba/NFS while providing clients with the best user experience (full support for Macintosh metadata, flawlessly supporting mixed environments of classic Mac OS and Mac OS X / macOS clients).

What changed between Netatalk 2.x and 3.x?

Netatalk v3 has the best support for Mac OS X / macOS, and seamless interoperability with Samba. It is AFP 3.4 (the final version of the spec) compliant, and supports Spotlight and macOS style EA metadata. However, it is less useful for Classic Mac OS or Apple II clients.

Netatalk v2 on the other hand speaks AppleTalk, the legacy Apple network stack. File sharing works out of the box with older clients, while providing capabilities to print to AppleTalk-only printers. Netatalk seamlessly interacts with CUPS via the papd daemon, enabling older Macs or Apple IIGS clients to print to modern printers. Via the atalkd daemon, it can act as an AppleTalk router, providing both segmentation and zone names in Macintosh networks. In addition, time server (timelord daemon) and Apple II netboot (a2boot daemon) services are available.

What changed between Netatalk 1.x and 2.x?

Let’s have a look at what has changed compared to 1.6.4:

  1. Netatalk’s file server, afpd, now speaking AFP 3.1 allows long filenames, UTF-8 names, large file support and full Mac OS X compatibility
  2. The print server task, papd, can directly interact with CUPS, automagically sharing all CUPS queues
  3. Kerberos V support, allowing true “Single Sign On”
  4. Whole rework of the CNID subsystem, providing reliable and persistent storage of file and directory IDs
  5. Huge improvements regarding product documentation making Netatalk’s features accessible more easily
  6. Tons of bugs fixed compared to all previous versions

To make a long story short, everyone not using symlinks inside Netatalk shares (this violation of AFP specs is not supported any longer) and willing to complete the sometimes extensive upgrade process should switch to 2.0. But be sure to read carefully the chapter about upgrading in the docs first.

I think I found a bug in Netatalk. Where should I report it?

First of all, try to isolate the problem and see whether it’s not a feature instead (some of the underlying Mac-related basics like file/folder IDs and the like, look irritating for people newly entering the world of cross-platform networking)

Then have a look in the Netatalk issue tracker whether it’s a known bug that is already being worked on.

If that doesn’t help, consider asking at the Netatalk mailing lists or an online forum whether others might have an idea what’s going on.

Before asking, try to understand and accept the basic principles for reporting bugs and asking for help. If you’re finally sure you found a bug, then please report it at the issue tracker.

In case, the developers want you to provide more details about crashing processes, have a look at Using GDB to Analyze a Crash.

Which CNID scheme should I choose for my volumes?

“dbd”. The “last” backend is only suitable for sharing HFS CD-ROMs directly with Netatalk. Avoid if at all possible as this backend can lead to duplicate IDs which can cause data loss!

The “mysql” backend is useful for very large deployments with hundreds of thousands or millions of files shared, where performance and reliability is at the utmost importance. The drawback is that you have to configure and operate a separate MySQL database instance by yourself.

I want to create a new volume to share via Netatalk. How should I start?

Always follow these steps unless you know exactly what you do:

How does Netatalk integrate with Samba?

It depends. There are a couple of problems:

veto files = /:2eFBCLockFolder/.FBCLockFolder/:2eFBCIndex/.FBCIndex/TheVolumeSettingsFolder/TheFindByContentFolder/Temporary Items/\
             Network Trash Folder/.AppleDB/:2eVolumeIcon.icns/.VolumeIcon.icns/Icon/.AppleDouble/.AppleDesktop/desktop.ini/RECYCLER/
delete veto files = Yes

What are the .AppleDouble and .AppleDB? directories and .Parent files which are created in the Netatalk Shares?

These are described at the Special Files and Folders page.

Why can’t I mount more than one server?

When trying to mount multiple independent servers running Netatalk, you might run into a problem where the workstation thinks that the second server is the same as the first one that was mounted. This problem is often due to what the /etc/hosts file looks like.

“Out of the box” /etc/hosts often looks like: localhost.localdomain localhost
<some ip addr> hostname.domainname hostname

Netatalk will look at the first line to find out what server it’s running on. If both servers you’re trying to mount have identical first lines in /etc/hosts, Netatalk will think it’s trying to access the first server you mounted.

The solution, in my hands and as suggested by several members of the Netatalk mailing list, is to change the order of entries in /etc/hosts. In the example given above, this could be done simply by changing it to:

<some ip addr> hostname.domainname hostname localhost.localdomain localhost

That is, reversing the order.

How can I check the consistency of the CNID databases?

Starting with Netatalk 2.1 there’s a dedicated and versatile utility exactly for this purpose: dbd.

How do I pronouce netatalk?

Ah, good question! The unenlightened often mispronounce this word 'net-‘a-to.k. The correct pronunciation is 'ned-*-to.k\ (the ‘t’ is soft, like d, and the first ‘a’ is a schwa).

Netatalk pronunciation guide

This is a mirror of the Netatalk GitHub Wiki. Please visit the original page if you want to correct an error or contribute new contents.

Last updated 2024-04-13