I have installed the Plex appliance (https://ubuntu.com/appliance/plex) on a Raspberry Pi and am having trouble getting it to find an external drive that’s plugged into the unit. Does anyone have tips for getting it to see the drive?
I’ve not used that particular appliance but when Plex isn’t able to “see” media on a drive it’s usually due to permissions issues. Unless you’ve set up a manual mount, Ubuntu will mount your external drive under /media/your-user-name/drive-label/. By default, no user but you can access items on the drive when mounted this way. Plex runs as user “plex” so this is problematic.
The recommended way to resolve this is to configured a permanent, manual mount for the drive. This how-to describes the process:
There is another, simpler method which involves granting user “plex” access to the drive’s mount by changing the ACLs associated with your user’s mount directory. Try:
sudo setfacl -m u:plex:rx /media/your-user-name
Replace “your-user-name” with the the user by whom the drive is mounted. Do not run this command on any directories beneath it, just the base directory above. This works on Ubuntu using the native Plex package; I’ve never tested it with Plex’s Snap packaging, which is what your appliance uses.
I don’t see anything in the /media directory when browsing via the Plex interface. As I understand it this appliance is built on Ubuntu Core 18, but installed as one thing, as if Plex were it’s own OS. So I’m not sure if the underlying Ubuntu layer can see the drive either. I would think, given the tight integration between Plex and Ubuntu in this appliance, that permissions issues like the one you described wouldn’t be a problem, but I’m pretty out of my depth here and don’t know a whole lot about Linux.
Have a look at the link I included (if you haven’t already). It contains information about how to find out where the drive is currently mounted and how to create a manual mount for it. I’ve never used the setfacl method on anything other than Ubuntu (and derivatives) with native Plex packaging.
That does appear to be the case. Disconnect the drive and then reconnect it. Then run dmesg | grep sd[a-d] to see what the last few lines of output are, if any. Hopefully you’ll get something like this:
In this case, sdb is my drive, and sdb1 is the single partition on it. If you do see something similar, you can use that information to create the manual mount configuration. If you don’t, then the system isn’t seeing the drive at all for some reason.
I do see something similar. Can I use this with the process in the link you’ve already shared, or is the manual mounting process something else entirely?
Yes, this tells you what you need to know to get through the process. For example, you can run blkid /dev/sda1 (described in section B) to find the UUID of the partition for use in configure your /etc/fstab file.
It seems I should be editing the /etc/system-image/writable-paths to add the path to the fstab file, but I can’t seem to get around the writable-paths file being read-only.
Maybe there is a different way to go about this. It would seem that adding an external drive to a Pi unit would be an essential task for a Plex server. Any help appreciated.