October 15, 2026 · Beginner · Ubuntu 24.04

Jellyfin on Ubuntu 24.04 with a USB Hard Drive: Bind Mount Setup That Works

Mount an NTFS USB drive by UUID, bind-mount your movies folder so Jellyfin still finds it after reboot, and optionally use ext4 on an empty Linux-only disk — without wiping family photos.

Tested on
Lenovo ThinkCentre M720q · Ubuntu 24.04 LTS · Jellyfin (official package) · ~4TB USB HDD (NTFS) · tested Oct 2026

If a guide only says “plug in the drive and point Jellyfin at it,” that often breaks after a reboot. This walkthrough is the setup that survives a reboot: mount the USB drive by UUID with nofail, create a stable path with a bind mount, then point Jellyfin at that path.

Companion video: watch the full walkthrough below, or on YouTube.

Chapters

Why NTFS?

I already had this USB drive with family photos on it. It was formatted for Windows (NTFS), so I reused it instead of wiping it.

We kept it this way on purpose, because a lot of people starting out only have a Windows drive too.

Linux can read and write NTFS fine with ntfs-3g. The photos stay safe — we only add a new Media folder on the drive.

What you’ll build

Path the files take:

USB drive (NTFS) → /mnt/hdd → bind mount → /mnt/media/movies → Jellyfin

Same files. Two paths. Jellyfin only needs to know about /mnt/media/movies.

Prerequisites

Find and mount the USB drive

Plug in the drive, then list disks:

lsblk -f

Look for a large NTFS partition. In this example it is sdb2. Note the UUID — you’ll use it in fstab so the mount survives a reboot. Write it down or copy-paste; don’t guess.

Install NTFS support if needed:

sudo apt update
sudo apt install -y ntfs-3g

Create a mount point and mount once by hand to confirm:

sudo mkdir -p /mnt/hdd
sudo mount -t ntfs-3g /dev/sdb2 /mnt/hdd
ls /mnt/hdd

Make it permanent (fstab)

Edit /etc/fstab with care. Add one line using your UUID (example):

UUID=5C1A2B3C4D5E6F70 /mnt/hdd ntfs-3g defaults,nofail 0 0
sudo mount -a
findmnt /mnt/hdd

Folder layout

sudo mkdir -p /mnt/hdd/Media/movies
sudo mkdir -p /mnt/media/movies

Keep Media with a capital M if that matches your drive layout. The bind mount only needs both paths to exist.

The bind mount

This is the key command:

sudo mount --bind /mnt/hdd/Media/movies /mnt/media/movies

Confirm:

findmnt /mnt/media/movies

Add a second fstab line so the bind returns after reboot. Mount the drive first, then the bind (order matters):

/mnt/hdd/Media/movies /mnt/media/movies none bind,nofail 0 0
sudo mount -a

If Jellyfin saw an empty library after a reboot, this was usually the missing piece.

Option: drive just for Linux? Use ext4

Warning
Formatting erases everything. Never do this on a drive with photos. Only use an empty drive you confirmed with lsblk.

If the drive is empty and only for Linux, prefer ext4 — Linux’s native filesystem, with better permissions and reliability for a Linux-only server.

Confirm the right empty drive (example sdc1 — yours will differ):

lsblk -f

Then format, label, and check the UUID:

sudo mkfs.ext4 -L media /dev/sdc1
sudo blkid /dev/sdc1

Example fstab line:

UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/hdd ext4 defaults,nofail 0 2

After mounting, create folders and own them for Jellyfin as needed:

sudo mkdir -p /mnt/hdd/Media/movies
sudo chown -R jellyfin:jellyfin /mnt/hdd/Media

(On the NTFS path in this guide we own /mnt/media after the bind instead — see below.)

Install Jellyfin and permissions

Install Jellyfin from the official docs for Ubuntu 24.04 (apt lines change over time — check the current page):
https://jellyfin.org/docs/general/installation/linux/

After install, the service runs as the jellyfin user. That user must be able to read your movies folder.

id jellyfin
sudo chown -R jellyfin:jellyfin /mnt/media
ls -ld /mnt/media /mnt/media/movies

Or add jellyfin to a shared group if you prefer that model. Either way, Jellyfin needs read access through the bind mount.

Permissions are where most people get stuck. If the library is empty, check this first.

Add the library

  1. Open the Jellyfin dashboard in your browser.
  2. Add a media library.
  3. Point it at /mnt/media/movies.
  4. Scan the library.
  5. Play one file end to end.

If it plays, the bind mount and permissions are working.

Troubleshooting

SymptomWhat to check
Empty library after rebootfstab lines + findmnt on both paths
mount -a failsTypo in the UUID
Permission deniedOwnership for the jellyfin user on /mnt/media
NTFS won’t mountntfs-3g installed?

Most empty-library problems are fstab or permissions. Fix those before you reinstall anything.

Recap

  1. Mount the USB drive by UUID with nofail.
  2. Create both folder paths.
  3. Bind-mount the movies folder.
  4. Give the jellyfin user access.
  5. Point Jellyfin at /mnt/media/movies.

Gear used in this guide

Parts (affiliate placeholders — As an Amazon Associate I earn from qualifying purchases)
  • Lenovo ThinkCentre M720q Tiny (used) — [AFFILIATE LINK]
  • Seagate Expansion / WD Elements ~4TB USB HDD — [AFFILIATE LINK]
  • Optional empty Linux-only SSD (Samsung T7 / Crucial X9) — [AFFILIATE LINK]
  • USB 3.0 cable/hub — [AFFILIATE LINK]
  • Logitech MK270 / K400 Plus / Keychron — [AFFILIATE LINK]
  • Ubuntu 24.04 LTS — free: ubuntu.com/download/desktop

Scripted with AI help, tested on my own gear.

Some links may be affiliate links. As an Amazon Associate I earn from qualifying purchases. See the Affiliate Disclosure.