Plex媒体服务器:无法找到外接硬盘上的媒体文件。

我正在尝试将一台旧PC转变为一个使用Ubuntu 12.04和Plex Media Server的家庭媒体服务器。我有一台较新的WD 2TB外置USB硬盘,上面存放着我的所有媒体文件。
但是,我无论如何都无法弄清楚为什么Plex无法识别这个硬盘上的文件。它显示外置硬盘存在,Ubuntu也显示文件并允许我播放、查看等操作。Plex显示名称为"External"。
但是当我点击它时,它完全是空的,没有任何内容可添加。我可以通过文件共享正常访问外置硬盘上的文件,在我的Windows电脑上也可以。但我很想能够使用Plex来与我们的Roku进行流媒体播放。
我对Ubuntu还比较新手,之前在Windows上使用同样的硬盘时,Plex运行得很好。我已经阅读了多篇相关文章,但似乎没有什么方法能解决问题。
请问我该如何解决这个问题?

1你还在遇到这个问题吗? - Braiam
@Braiam 于2013年12月25日11:24看到 - janot
18个回答

你必须确保用户plex不仅可以访问驱动器,还可以访问驱动器所挂载的文件夹。经过一番摸索,我最终采取了以下方法:
编辑挂载选项(磁盘 -> "更多操作"(在"卷"地图下方的两个齿轮) -> 编辑挂载选项),使其满足以下条件:
nosuid,nodev,nofail

在 /etc/fstab 文件中的选项存储区域("符号图标名称" 下方的文本框)

并将挂载点设置为:

/media/<user>/<HDD Name>

重新安装您的硬盘驱动器,使其出现在指定位置。


接下来,打开终端并输入以下命令将自己添加到“plex”用户组中:
sudo adduser "$USER" plex

现在,您可以修改相关文件和目录的所有权,使其归属于${USER}:plex。您可以通过进入终端并输入以下命令,将读权限授予 plex:

sudo chgrp plex "/media/${USER}/"
sudo chmod g+rX "/media/${USER}/"

sudo chgrp plex "/media/${USER}"/<HDD Name>/
sudo chmod g+rX "/media/${USER}"/<HDD Name>/

可能还需要确保ACL权限已正确配置,因此可能还需要执行以下操作:
sudo setfacl -m g:plex:rx /media/<user>/

FYI:如果一个文件/目录显示一个“+”符号作为其权限的一部分(例如`drwxr-xr-x+`),这意味着该文件/目录处于活动状态的ACL控制下。
现在Plex已经可以访问驱动器了,你需要确保它能够访问相关目录中的所有文件。为此,你需要对所有媒体库文件夹重复执行以下步骤:
chmod -R g+rX /media/<user>/<HDD Name>/<Library Folder>

这解决了我在我的家庭影院电脑上添加的两个额外驱动器的问题。希望对你有所帮助。
附注:正如@douggro提到的,Plex在这个主题上有一篇很好的文章,但他们改变了网站的结构,所以我花了一些时间才从他的链接找到它,所以这是一个更新的链接到该页面:Plex Linux权限指南

2这是唯一有效的解决方案,目前只排在第三位。谢谢! - stallingOne
我不明白第二步“并将挂载点设置为”是什么意思。什么是挂载点? - Scorb
@ScottF 您想要为驱动器分配的挂载点。 - Sam
谢谢@SamWN,这也解决了我的问题。 - Fred
这是一个相当愚蠢的事情,而且有点危险。如果你执行chmod -R 777命令,它的意思就是“我不知道出了什么问题,但肯定与权限有关,所以为什么不让所有东西都可以操作呢”,这种做法非常危险。最好的办法是只需要执行sudo chmod 0755 /media/<user> /media/<user>/<HDD Name>命令。你的建议会修改整个磁盘上的每个文件,并将它们标记为(除其他外)可执行文件。毫不奇怪,在你提供的指南中没有任何地方建议这样大胆地做。编辑已提交审核。 - swalog
@swalog 真的没错。chmod -R go+rw 应该足够了。 - Sam
我仍然对递归-R标志有异议。结构内的文件应该保留下来。如果您有一个大容量的磁盘,这个操作将会花费很长时间,并覆盖任何现有的权限结构。这对于某些人来说可能没问题,但实际上并不需要这样做,因为Linux通常按原样挂载文件系统。只要磁盘内容对于$USER是可读的,那么对于plex用户来说也应该是可读的,只要磁盘路径正确即可。 - swalog
@swalog 这是基于一个假设完成的,即该驱动器专门用于Plex媒体内容。由于Plex使用自己独特的用户账户,必须确保所有相关文件都是可访问的。 - Sam
如果你不同意,那我就这样了,人们可以阅读评论,因为这不是一个讨论论坛。简洁地总结问题:不要改变不需要改变的东西。问题明确表达了这是不必要的,因为他可以作为自己的用户访问文件。尽管如此,即使是这样,你仍然希望先对磁盘路径进行简单的更改,如果不起作用,再从那里开始。chmod -R几乎总是错误的。挂载的磁盘已经具有其他用户的默认读取权限。 - swalog
@swalog 我可以从个人经验中说,plex 用户账户没有访问仅限用户访问的文件的权限。 - Sam
让我们在聊天中继续这个讨论。 - swalog
哇,这终于为我找到了关键问题,那就是我创建了一个文件夹来挂载我的额外内部驱动器,而该挂载点的权限仍然是 drwx------,也就是只有我的用户帐户可以看到它,其他人都不能。由于我的 fstab 设置已经正确,所以我只需要运行 sudo chmod go+rx /<mountpoint> 就可以了。 - Valdimar
这个选项对我来说很有效,我只是将这个驱动器用于Plex目的,所以一切都很好。 - marcogmonteiro
3你的第一句话解决了我的问题。我的设置是将可移动驱动器自动挂载在/media/vince目录下,该目录的权限为750。我对该文件夹执行了chmod a+rx命令,然后Plex可以愉快地扫描所有文件了。 - Vince
这在Raspbian上对我来说完美地运作了。 - Thomas Boxley
sudo setfacl -m g:plex:rwx /media/usuario/ 解决了这个问题。谢谢! - Federico Cristina

正如一些人所提到的,问题很可能是由于plex用户没有正确的权限所导致的。我曾经遇到过类似的问题,并且通过几个简单的步骤成功解决了它。
打开这个配置文件:
sudo nano /etc/default/plexmediaserver

找到这一行:
PLEX_MEDIA_SERVER_USER = plex

plex替换为您的用户名,并保存文件。重新启动电脑后,Plex能够访问外部驱动器上的文件夹。
您可以尝试运行sudo mount -a和/或sudo service plexmediaserver restart而不是重新启动。
来源:htpcguides.com

可以确认,在末尾添加的额外命令可以替代重新启动。 - Cora
6我不建议使用这种方法,因为它会让 Plex 访问所有文件,就像普通用户一样——如果可能的话,最好避免这种情况。SamWN 和 janot 的回答可以限制 Plex 用户仅访问相关媒体。 - Kevin Qi
1这个解决方案对我没有起作用。 - stallingOne
@KevinQi 我同意你的观点。我还能用什么方法呢?我无法对连接的外部硬盘进行chmod操作,因为它是由Windows拥有的。 - Kellen Stuart

我不知道发生了什么事,但是唯一帮助我解决ext4驱动器问题的方法是在“磁盘”应用程序中将“自动挂载选项”设置为“关闭”,并将“挂载点”从“/media/username/foobar”改为“/mnt/foobar”。

我的实际路径是在/mnt而不是media,当我将其更改为/media时,它就正常工作了。 - marcogmonteiro

你需要配置fstab来设置适当的权限。
在Plex网站上有一个完整的页面,详细介绍了如何进行此操作,请参考: https://support.plex.tv/hc/en-us/articles/200288606-Mounting-NTFS-Drives-on-Linux 简单来说:
找到您驱动器的UUID: sudo blkid | grep ntfs
创建一个目录,您将在其中挂载驱动器: sudo mkdir /media/ext_NTFS_USB_Drive 使用以下命令编辑文件/etc/fstab: gksu gedit /etc/fstab
在此文件中添加一行并保存。 UUID=485CBF485CBF3014 /media/ext_NTFS_USB_Drive ntfs-3g permissions,auto 0 0 其中UUID是您的驱动器的UUID,挂载点是您创建的文件夹。
现在挂载驱动器: sudo mount /media/ext_NTFS_USB_Drive (您可能会收到一个错误,说驱动器已经挂载,在Nautilus中,例如。只需卸载它-安全地移除驱动器,或者在Nautilus中点击弹出图标)
现在在Plex中,您需要更改要添加到的媒体文件夹的位置,将其更改为/media/ext_NTFS_USB_Drive内的某个位置。

太棒了!在Ubuntu 20.04、RaspberryPi 4 Model B上运行良好,使用xorg、xrdp和xfce。我能够在上面运行Plex服务器,非常感谢! - Meir Gabay
谢谢!在Linux Mint 20.3 (Una)上对我有效。 - Samir Aguiar

尝试将Plex添加到plugdev组中。

打开终端(按下 ControlAltT)然后输入

sudo gpasswd -a plex plugdev

通过输入以下命令验证plex是否已添加到plugdev组中:

groups plex

该命令应显示plex所属的组。接下来,重新启动计算机并启动plex以验证问题是否得到解决。


这是你外部硬盘的文件夹挂载点出了问题。
它没有正确的权限,最简单的方法是在不使用终端命令的情况下更改权限,只需按照以下步骤打开nautilus作为root:
用sudo打开nautilus:
sudo nautilus(或者使用其他以root身份打开的系统浏览器)
将鼠标箭头悬停在外部硬盘上,以查看完整路径,或者点击它,然后按Ctrl+l在地址栏中查看完整路径。
例如:/media/nick/extern_hdd1
extern_hdd1被挂载到nick文件夹,进入media更改nick文件夹的权限,按Ctrl+l粘贴/media/到地址栏中,或者手动浏览到media。
右键单击nick文件夹,选择属性并更改以下内容:
所有者:nick(在你自己的情况下是你自己的用户名) 文件夹访问:创建和删除文件 文件访问:---
组:plugdev 文件夹访问:访问文件 文件访问:---
其他人 文件夹访问:访问文件 文件访问:---
就是这样!

也许在发布时情况不同;使用Ubuntu 18.04 LTS;必须运行。
sudo systemctl edit plexmediaserver

在那里添加了2行

[Service]
User=user-that-can-access-media-mount
Group=group-of-user-above

然后执行以下命令:sudo chown -R 可访问媒体挂载的用户:上述用户所属的组 /var/lib/plexmediaserver 然后重新启动服务器。
sudo service plexmediaserver restart 


这很可能是Plex的权限问题。阅读此页面以获取有关Plex权限的信息。还可以考虑在外部设备上创建一个文件夹,专门用于存储媒体文件,然后在fstab条目中为其创建一个挂载点,并将其以用户plex的身份挂载。

我通过将代码行中的"user"删除来解决了我的问题。我在gedit中以root身份登录,在"etc/fstab"中。我注意到我可以在另一个驱动器上播放视频,它被挂载为"/media/HHD"。所以我只是删除了用户并重新启动,现在正在为我3岁的孩子播放电影《赛车总动员》。
UUID=528A041A7B1FE95D   /media/user/Movies_2TiB ntfs-3g

看起来好像
UUID=528A041A7B1FE95D   /media/Movies_2TiB  ntfs-3g

我已经读了两天并尝试了一些东西...但是这真的很简单。
希望这能帮助到某个人,并节省他们的时间。

这是唯一在2022年对我起作用的解决方案。 - FlyingZebra1

最后,我使用“菜单→首选项→磁盘”来比较这两个驱动器的属性。唯一的区别在于“编辑挂载选项…”下面。内部SSD设置为手动挂载选项,并勾选了“开机自动挂载”框。USB驱动器设置为自动挂载选项,并取消了勾选框。

1我应该说,我将设置更改为手动挂载选项,并在启动时进行挂载,最终成功了。 - MrExactlyWhat