Plex в Docker на Ubuntu не может увидеть диск NTFS.

Вопрос или проблема

Я установил Plex с использованием Docker на сервере Linux. У меня подключен внешний SSD-диск, отформатированный в NTFS. Я смонтировал его в /mnt/ssd, и мой сервер Plex не может увидеть, что смонтировано в каталоге ssd. Я пробовал добавлять пользователя Plex, чтобы убедиться, что у него есть разрешения, но это не помогло. Я могу перемещаться по диску в командной строке и видеть все файлы, но Plex их не видит.
Вот мой .yml

version: "2.1"
services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Chicago
      - VERSION=docker
    volumes:
      - ./config:/config
      - /mnt/ssd
      - /dev/sdb1
      - /plex:/mnt/ssd:ro
    restart: unless-stopped

Ответ или решение

Когда работаешь с Plex в Docker на Ubuntu и пытаешься предоставить ему доступ к NTFS-диску, может возникнуть ряд проблем, связанных с разрешениями, монтированием и настройками контейнера Docker. Постараемся разобраться в этих вопросах и предложить возможные решения.

Теория

NTFS — файловая система, характерная для ОС Windows и, в отличие от ext4, базовой файловой системы в Linux, обладает особенностями в плане монтирования и управления правами доступа. В Linux поддержка NTFS реализована через драйверы, такие как ntfs-3g, которые обеспечивают полный доступ к файлам на диске. Однако, поскольку Linux и NTFS изначально используют разные модели управления правами доступа, могут возникать сложности при попытке предоставления доступа программам, работающим в контейнерах Docker.

Когда возникает проблема с тем, что Plex не видит файлы на NTFS-диске, это может быть связано как с неправильным монтированием, так и с неверной конфигурацией Docker-контейнера, особенно в плане параметров volume. Правильные права доступа и корректное указание volume — критические факторы успеха.

Пример

Давайте подробнее разберем предоставленный файл конфигурации docker-compose.yml:

version: "2.1"
services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Chicago
      - VERSION=docker
    volumes:
      - ./config:/config
      - /mnt/ssd
      - /dev/sdb1
      - /plex:/mnt/ssd:ro
    restart: unless-stopped

Первое, на что стоит обратить внимание, это на корректность монтирования томов. Обратите внимание, что монтирование /mnt/ssd повторяется дважды, но с разными опциями. Конкретно /plex:/mnt/ssd:ro говорит о том, что директория /mnt/ssd снаружи контейнера монтируется в /plex внутри него, но при этом опции указываются как read-only, что ограничивает доступ.

Важно помнить, что если файловая система монтируется с ошибкими флагами или неправильными правами, Plex, работающий в Docker, может и вовсе не увидеть или не иметь доступа к файловой системе.

Применение

  1. Убедитесь, что NTFS-диск корректно монтирован.
    Проверьте использование ntfs-3g для корректного монтирования:

    sudo mount -t ntfs-3g /dev/sdb1 /mnt/ssd

    Проверьте, что права на папку /mnt/ssd позволяют Docker-контейнеру доступ. Если Plex работает под PUID=1000 и PGID=1000, удостоверьтесь, что эти идентификаторы соответствуют владельцу, которому предоставлен доступ к папке /mnt/ssd.

    sudo chown -R 1000:1000 /mnt/ssd
  2. Проверьте корректность маппинга volume в Docker.
    Исправьте или просмотрите конфигурацию на предмет повторений и конфликтующих прав. Попробуйте следующую структуру в docker-compose.yml:

    volumes:
     - ./config:/config
     - /mnt/ssd:/plex

    Это упростит структуру и станет очевиднее, что вся директория /mnt/ssd будет доступна внутри Docker-контейнера по адресу /plex.

  3. Перезагрузите контейнер.
    После внесения изменений в docker-compose.yml выполните перезагрузку контейнера для применения изменений:

    docker-compose down
    docker-compose up -d
  4. Проверьте работу Plex.
    После всех настроек проверьте, видит ли теперь Plex ваши файлы на NTFS-диске. В Plex Web UI выполните повторное сканирование доступных медиа для удостоверения в успехе предпринятых действий.

Подводя итог, важно правильно монтировать диск с NTFS в Linux, обеспечивая надлежащие права доступа и корректную настройку Docker-контейнера, чтобы Plex мог обнаруживать и транслировать медиафайлы.

Оцените материал
Добавить комментарий

Капча загружается...