Couch Potato Pal
the pal who remembers what's going on
Quirk 6 min read

Your drive filled up and you didn't add anything

The most common silent disk-eater in an automated library is a setting most people never look at. It's usually storing everything twice.

You check your storage and a large chunk is gone. You haven't added much. You go looking for the culprit, add up your movies and shows, and the number doesn't come close to matching what the drive claims is used.

The usual answer is that your library is storing a lot of things twice, and it's doing it because of one setting that's easy to get wrong and produces no warning whatsoever.

Copy versus hardlink

Automated library tools work in two stages. Files arrive in a working directory, then get moved into your organized library with proper names. That second step can happen two ways.

CopyHardlink
Disk usedTwiceOnce
Time to importMinutes for a big fileInstant
Both locations usableYesYes
Deleting oneOther survivesOther survives

A hardlink is a second name for the same data on disk. Both paths are equally real, both work normally, and the space is only counted once. The data isn't freed until every name pointing at it is gone.

This sounds like a trick, and it's genuinely not — it's a standard filesystem feature that every automated media setup is designed around. Getting it working is the single biggest storage win available, and it costs nothing.

Why it silently falls back to copying

Here's the trap. Hardlinks only work within the same filesystem. If your working directory and your library live on different volumes — or, very commonly, are presented to the software as unrelated paths — a hardlink is impossible. The tool doesn't error. It just quietly copies instead, and every import costs double.

The usual cause is path layout. Software that sees this:

/downloads   →  working files
/tv          →  library
/movies      →  library

…has no way to know those live on one disk. Presented like this instead:

/data/downloads
/data/media/tv
/data/media/movies

…everything sits under one visible root, hardlinks work, and imports become instant. This single change is the most-repeated piece of advice in the whole hobby, and it's repeated because it's constantly gotten wrong. The NAS layout article covers how to set the mounts up so this is true from the start.

How to tell which one you're getting

Two quick checks:

$ ls -l "Show Name - S01E01.mkv"
-rw-rw-r-- 2 user group 1738232 ...
           ^ two names point at this data

Cleaning up after the fact

If you've been copying for a while, you have two full sets of a lot of files. Fixing the configuration stops the bleeding but doesn't reclaim anything already duplicated. Be careful here, because the working copies are not always disposable:

  1. Fix the paths first, so new imports stop duplicating.
  2. Audit before deleting. Compare what's in the working directory against what made it into the library. Anything that never imported is not a duplicate — it's the only copy.
  3. Beware differing path views. When software runs in a container, the paths it reports may not be the paths you see in a terminal. Deleting based on a mismatched path is how people remove the wrong thing. Confirm the mapping first.
  4. Delete through the application that manages the files where possible, rather than by hand.
Do this one before you're full

Sorting out hardlinks on a healthy drive is a config change and a cup of tea. Sorting it out at 100% full — when things have already started failing and you're deleting under pressure — is a genuinely bad evening. Check it while it's boring.

Other quiet space eaters

The short version

Written for people running a personal media server for content they're entitled to have: their own disc rips, home video, over-the-air DVR recordings, and public-domain material. Nothing here is about obtaining media, and we don't cover that.