Win10与Ubuntu双系统下,如何让Plex Server访问NTFS驱动器且不影响Win10
我之前在双系统环境下折腾Plex的时候,完全碰到过和你一样的糟心问题——Windows分区挂载了但Plex访问不了,外置NTFS盘能识别却看不到内容。别慌,咱们一步步来解决,绝对不会影响Windows系统的正常使用:
Windows 10的快速启动功能会把NTFS分区置于“半休眠”锁定状态,Ubuntu就算挂载了也没法正常读写,这是绝大多数人踩的第一个坑。必须先关掉它:
- 启动到Windows 10,打开「控制面板」→「电源选项」→「选择电源按钮的功能」
- 点击「更改当前不可用的设置」,取消勾选「启用快速启动」,然后保存修改
- 正常关机Windows(别休眠),再重启回到Ubuntu
你之前用cat /proc/mounts获取的参数可能没考虑Plex的权限,因为Plex是用plex用户运行的,必须让这个用户有访问分区的权限:
获取Windows分区的UUID
打开终端运行:blkid | grep NTFS会输出类似这样的内容,记下你要挂载的C/D盘的UUID(比如
UUID="1234ABCD-5678-90EF-GHIJ-KLMNOPQRSTUV"):/dev/sda2: UUID="1234ABCD-5678-90EF-GHIJ-KLMNOPQRSTUV" TYPE="ntfs" PARTUUID="abcdef12-3456-7890-abcd-ef1234567890"创建挂载点
比如给C盘创建挂载目录:sudo mkdir -p /mnt/windows_cD盘同理:
sudo mkdir -p /mnt/windows_d编辑fstab配置文件
运行命令打开fstab:sudo nano /etc/fstab在文件末尾添加对应分区的挂载行,这里分两种更稳妥的配置:
- 如果你想让自己的用户和Plex都能访问,用你的用户UID/GID(一般第一个用户是1000),同时把plex加入你的用户组:
UUID=你的C盘UUID /mnt/windows_c ntfs-3g defaults,uid=1000,gid=1000,dmask=002,fmask=113,utf8 0 0 UUID=你的D盘UUID /mnt/windows_d ntfs-3g defaults,uid=1000,gid=1000,dmask=002,fmask=113,utf8 0 0 - 如果你想直接让Plex拥有权限,先查plex的UID/GID:
id plex,输出类似uid=118(plex) gid=127(plex),然后替换成:UUID=你的C盘UUID /mnt/windows_c ntfs-3g defaults,uid=118,gid=127,dmask=002,fmask=113,utf8 0 0
- 如果你想让自己的用户和Plex都能访问,用你的用户UID/GID(一般第一个用户是1000),同时把plex加入你的用户组:
测试挂载
运行命令让fstab生效,没有报错就说明配置正确:sudo mount -a
外置驱动器默认会挂载在/media/你的用户名/驱动器名称,这个目录的权限只有你的用户能访问,Plex的plex用户没权限,所以看不到目录:
方法一:把plex加入你的用户组
运行命令(替换成你的用户名,比如vj):sudo usermod -aG vj plex然后重启Plex服务:
sudo systemctl restart plexmediaserver方法二:手动挂载到/mnt目录
参照第二步的fstab配置,把外置驱动器的UUID加入fstab,挂载到/mnt/external_drive,指定uid/gid为plex的,这样Plex直接有权限访问。
- 打开Plex Media Manager,添加媒体库时选择挂载的目录(比如
/mnt/windows_c/Users/VJ/Movies),看看能不能列出文件 - 如果还是不行,测试plex用户能不能访问目录:
如果能列出文件,说明权限没问题,可能是Plex缓存的问题,重启Plex服务就行;如果不能,检查fstab的权限参数有没有写错sudo -u plex ls /mnt/windows_c - 如果碰到分区只读的情况,说明Windows分区可能有休眠文件,运行命令修复:
sudo ntfsfix /dev/sda2 # 替换成你的分区设备名,比如sda2是C盘
内容的提问来源于stack exchange,提问作者VJ Ranga

