Scheduled backups failing on USB drive using Roon on Ubuntu MacMini (ref#O6SCPQ)

Hi! What’s not quite right with Roon?

· None of the above quite fits

None of the above quite fits

· None of these quite match

Tell us what's going on

· Setup a USB drive (FAT32) on MacMini running Ubuntu 26.04.1 LTS. Configured Roon Backup to use USB folder for backup location. "Backup Now" works without issue to the designated folder on USB drive. However, scheduled backs fail ever time:

Backup failed at 10:51:28 / Backup directory not available

If you attempt to Force backup now within the Schedule backup it will also fail.

Tell us about your home network

· Linksys Atlas 6 router Ethernet connected. Mac Mini (Ubuntu) with Roon Server, Ethernet connected

Hi @Michael_Long,

Thanks for the details on the scheduled backup behavior and the USB backup location. Does the scheduled backup only fail to the USB drive, or does it fail elsewhere too? We’re enabling diagnostics for your account to get more information about the specific backup failure.

Hi Noris,

I scheduled a backup at 10:00 AM this morning to the Download folder which resides on the internal disk drive. It ran successfully. I have formatted the USB drive as FAT32 and as an EXT4 drive. Both fail with a scheduled backup, and both work correctly with “Backup Now”. I also checked the permissions with the USB drive, but I assume Roon runs as Root. I have also noticed that Roon sometimes does not recognize the USB folder when configuring the Scheduled Backup. I have to remount the drive before it is recognized.

Regards,

Michael

Hi @Michael_Long,

Thanks for your patience, the diagnostics came through. Two things are going on, and neither is a permissions or format issue.

Every failed run ends the same way:

GetFSDir: volume was not available Roon PNY USB 3.0 FD : !volume.IsAvailable
failed sync prepare1 ... Result[Status=NotAvailable]

Roon Server never gets as far as writing, it can’t resolve the volume.

1. The drive is mounted by your desktop session, not by the system. It sits at /run/media/michael/Roon, a udisks2 mount that only exists once someone logs into GNOME. After the 08/21 restart there was no mount event for ten days, and all seven scheduled runs in that window failed. Not one scheduled backup failed while the drive was actually mounted, manual backups worked because you were at the machine with it freshly mounted.

2. The ext4 reformat orphaned the saved destination. On 09/01 the drive came back as /run/media/michael/ROON, but the schedule is still bound to the old Roon volume. Roon treats those as two different volumes, so the picker shows the drive and Backup Now succeeds while the schedule resolves something that no longer exists. Editing the entry only changes the time and keeps the old location.

Next steps to try:

Delete the scheduled backup entry (don’t edit it) and re-add it, browsing to the drive as it appears now.

That will break again on the next reboot, so we’d also give the drive a permanent mount:

sudo blkid /dev/sda1 # get the UUID

# /etc/fstab
UUID=xxxx-xxxx /mnt/roonbackup ext4 defaults,nofail,x-systemd.device-timeout=10 0 0

sudo mkdir -p /mnt/roonbackup && sudo mount -a

Then add the backup location by browsing through the root entry (/) to /mnt/roonbackup/RoonBackups instead of picking the removable drive. Your 09/03 10:00 scheduled backup to /home/michael/Downloads/RoonBackups ran cleanly, path-based destinations survive reboots and relabels, volume-based ones on a session mount don’t.

Let us know how the next scheduled window goes. :folded_hands:

I will give this a try and let you know. Could you not also make these changes via Mount Options with the Disk utility?

OK, having the USB drive mounted this way did work. Roon successfully did a scheduled backup to the directory in the permanently mounted USB drive. I’m just not sure why it won’t work with a normally mounted USB drive in Ubuntu.

Hey @Michael_Long,

Glad to hear the scheduled backup is now completing!

The short answer to why a “normally mounted” USB drive doesn’t work: that kind of mount isn’t really a system mount at all, it belongs to your desktop login session.

When you plug a drive in and it pops up in Files, it’s udisks2 mounting it on behalf of your logged-in user, at a path like /run/media/michael/ROON. Three things follow from that:

  • It only exists while you’re logged in. After a reboot with no one sitting at the machine, nothing mounts the drive, and the path Roon was told to back up to simply isn’t there.
  • It’s private to your user. Even when it is mounted, /run/media/michael is only traversable by michael. RoonServer runs as a background system service under its own account, started by systemd at boot, and never inherits your session’s mounts or permissions.
  • The path is derived from the volume label, so it shifts if the label changes (which is exactly what happened when the drive went from FAT32 to ext4, Roon became ROON), or if a second volume with the same label appears and gets mounted as ROON 1.

Roon’s scheduler doesn’t try to mount anything when a backup fires, it just writes to the path you selected. So a manual “Backup Now” while you’re sitting at the desktop succeeds, and the 3am scheduled run after a reboot finds nothing at that path and reports the directory as unavailable.

The /etc/fstab entry sidesteps all of that: the drive is mounted by the system at boot, before and independently of any login, at a fixed path, identified by UUID rather than by label. That’s why it’s now reliable.

Two things worth double-checking on the permanent mount:

  • Ownership, since the drive is ext4, make sure the backup folder is writable by the account RoonServer runs as, e.g. sudo chown -R roonserver:roonserver /mnt/roonbackup. (On FAT32/exFAT, which don’t store ownership, you’d instead add uid=/gid= or umask=0002 to the mount options.)
  • nofail in the options, which you already have, that keeps the machine booting normally if the drive is ever unplugged.

If you’d rather not hand-edit /etc/fstab in the future, GNOME Disks writes the same entry for you: select the drive, open the gear menu → Edit Mount Options, turn User Session Defaults off, tick Mount at system startup, and set the mount point (screenshot below). Same result, no terminal.

I really appreciate the comprehensive explanation, a real education for a novice Ubuntu user like me. Thanks so much for the assistance with this issue.

Hello @Michael_Long

Glad that sorted it, and thank you for coming back to confirm.

For anyone finding this later: scheduled backups to a USB drive on Linux fail when the drive is mounted by the desktop session rather than by the system. That kind of mount lives under /run/media/<user>/, only exists while someone is logged in, is private to that user, and its path changes with the volume label. RoonServer runs as a background service under its own account and cannot see it, so a manual “Backup Now” at the desk succeeds while the scheduled run reports the directory as unavailable. Giving the drive a permanent entry in /etc/fstab by UUID, or ticking “Mount at system startup” in GNOME Disks, fixes it for good.

Closing this one out. Please open a new thread if anything else comes up.