DBD(1)

✨ NAME ✨

dbd β€” CNID database maintenance utility πŸ’…

okay so bestie, welcome to the dbd(1) page from the Netatalk AFP Fileserver Manual 🌸 this is the little maintenance queen that keeps your CNID database from spiraling, and she is literally here to help you fix it. periodt.


πŸ“– SYNOPSIS πŸ“–

dbd [-cfFistuv] [volumepath]
dbd [-V]

🌸 DESCRIPTION 🌸

so what does she actually do? dbd scans every single file and directory of an AFP volume and updates the CNID database whenever it catches discrepancies between the database and the filesystem πŸ‘€ like, she's the friend who notices your receipts don't match your bank statement and fixes it before anyone else clocks it.

🚨 bestie listen. She must be run with appropriate permissions, i.e. as root. No negotiating, no "but I thought". Root. πŸ‘‘

when you run her with the -f parameter, she will completely wipe the existing volume table in the database and create a new one from scratch 😭 it's giving fresh start, it's giving clean slate β€” and yes, you can use that, for example, to convert a volume from one CNID scheme to another. iconic use case, honestly.

and here's the fun lil plot twist: despite sharing a name with the dbd (Database Daemon) CNID backend module, this tool can be used with any CNID backend πŸ’– she's not exclusive, she's for everybody. we love a versatile icon. πŸ¦‹


πŸŽ€ OPTIONS πŸŽ€

  • -c β€” convert from AppleDouble v2 to Extended Attributes filesystem metadata ✨
  • -f β€” delete and recreate CNID database πŸ’€ (yes, delete. we said what we said.)
  • -F β€” location of the afp.conf config file πŸ“
  • -i β€” invalidate CNID hints stored in AppleDouble files, so existing database entries are used instead of stale AD hints; combine with -f to assign fresh CNIDs to all files and directories πŸ”„
  • -s β€” scan volume: treat the volume as read only and don't perform any filesystem modifications πŸ›‘ (the safe, soft-launch girlie option)
  • -t β€” show statistics while running πŸ“Š
  • -u β€” username for use with AFP volumes using user variable $u πŸ™‹β€β™€οΈ
  • -v β€” verbose πŸ—£οΈ
  • -V β€” display version info 🌈

🧚 CNID USAGE 🧚

okay so here's the tea β˜• the CNID backends maintains filename to ID mappings. and if you change a filename outside of afpd(8) β€” like in the shell, or in samba β€” the CNID database will not reflect that change πŸ™ˆ Netatalk tries to recover from such inconsistencies as gracefully as possible, but like… she's doing her best, okay?

so for when you want to operate on a Netatalk volume outside of an AFP client without sacrificing the integrity of the CNID database, you can use the nad(1) tool, which updates the CNID records while modifying files 🫢 that's the bestie you want for that job. no cap.


πŸ”₯ SEE ALSO πŸ”₯

nad(1), afpd(8), cnid_dbd(8)


πŸ‘‘ AUTHOR πŸ‘‘

Contributors to the Netatalk Project πŸ’œ


and that's the whole page, bestie!! πŸŽ€ this beauty ships with Netatalk 4.5.1 β€” go forth, run her as root, and may your CNID database stay immaculate forever βœ¨πŸ¦‹πŸ’–

πŸ“¦ where this page comes from
  • fedora 44: netatalk 5:4.5.1-1.fc44 Β· GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND LicenseRef-Callaway-LGPLv2+ AND LicenseRef-Callaway-BSD AND FSFUL AND LicenseRef-Callaway-MIT
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms