PLEX /var/lib/plexmediaserver 폴더 이동 후 생기는 문제.. 해결

category 서버/리눅스 서버 2019. 12. 7. 18:22

안녕하세요? 전에 두목님께서 아래의 글을 올려주신 적이 있죠..


https://cafe.naver.com/mk802/25352


라이브러리 이동 후, 트랜스코딩 자체가 죽어버린다는 문제입니다.


저도 용량이 부족하다보니 옮겨야하는데.. 



음.. 로그를 찍어보니 아래와 같습니다.





1. 로그


13 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libmpe     g4_decoder.so: failed to map segment from shared object

  14 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libwma     v2_decoder.so: failed to map segment from shared object

  15 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libmsm     peg4v3_decoder.so: failed to map segment from shared object

  16 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libh26     4_decoder.so: failed to map segment from shared object

  17 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libwmv     1_decoder.so: failed to map segment from shared object

  18 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libmpe     g2video_decoder.so: failed to map segment from shared object

  19 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libaac     _encoder.so: failed to map segment from shared object

  20 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label     -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libac3     _encoder.so: failed to map segment from shared object


ffmpeg 라이브러리를 로딩하지 못한다고 합니다. 도대체 왜 그럴까요..


경로도 똑같이 있는데..


확인해 보니.. noexec 옵션이 omv 디스크 마운트 기본 옵션입니다. 해당 옵션을 빼주셔야합니다.





2. noexec 옵션 빼기


/dev/md0 on /srv/dev-disk-by-label-2tb type xfs (rw,noexec,relatime,attr2,inode64,sunit=1024,swidth=2048,usrquota,grpquota)


일단 OMV 웹 UI에서는 어떻게 빼는지 잘 모르겠습니다. 그래서 fstab 을 직접 수정합니다.


root@openmediavault:~# cat /etc/fstab

# /etc/fstab: static file system information.

#

# Use 'blkid' to print the universally unique identifier for a

# device; this may be used with UUID= as a more robust way to name devices

# that works even if disks are added and removed. See fstab(5).

#

# <file system> <mount point>   <type>  <options>       <dump>  <pass>

# / was on /dev/sdb2 during installation

UUID=59571589-3680-470c-88f1-8d8b1a780d6c / ext4 noatime,nodiratime,discard,errors=remount-r0 1

# /boot/efi was on /dev/sdb1 during installation

UUID=C3F3-148F  /boot/efi       vfat    umask=0077      0       1

# swap was on /dev/sdb3 during installation

UUID=4fd290dd-ef9e-40ee-939b-2b3aaea6c20f none            swap    sw              0       0

# >>> [openmediavault]

/dev/disk/by-label/2tb /srv/dev-disk-by-label-2tb xfs defaults,nofail,usrquota,grpquota,inode64  0 2

/dev/disk/by-label/500gb /srv/dev-disk-by-label-500gb xfs defaults,nofail,usrquota,grpquota,inode64 0 2

# <<< [openmediavault]


재부팅 후 마운트를 보면 noexec 가 빠진것을 보실 수 있습니다.


/dev/md0 on /srv/dev-disk-by-label-2tb type xfs (rw,relatime,attr2,inode64,sunit=1024,swidth=2048,usrquota,grpquota)


이후 트랜스코딩이 정상 작동합니다. ㄷㄷㄷ





3. 라이브러리 이동 방법


1. 심링크 방법

/var/lib/plexmediaserver 폴더를 그대로 다른곳으로 옮깁니다.


mkdir 을 통해 /var/lib/plexmediaserver 폴더를 생성합니다.


ln -s /path/to/move/plexmediaserver /var/lib/plexmediaserver 로 지정합니다.


2. systemd script 직접 수정


root@openmediavault:~# cat /lib/systemd/system/plexmediaserver.service 

[Unit]

Description=Plex Media Server

After=network.target network-online.target


[Service]

Environment="PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=/srv/dev-disk-by-label-2tb/plex/plexmediaserver/Library/Application Support"

Environment=PLEX_MEDIA_SERVER_HOME=/usr/lib/plexmediaserver

Environment=PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS=64

Environment=PLEX_MEDIA_SERVER_TMPDIR=/tmp

ExecStartPre=/bin/sh -c '/usr/bin/test -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" || /bin/mkdir -p "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}"'

ExecStart=/bin/sh -c '\

PLEX_MEDIA_SERVER_INFO_VENDOR="$(grep ^NAME= /etc/os-release | awk -F= "{print \\$2}" | tr -d \\" )" \

PLEX_MEDIA_SERVER_INFO_DEVICE="PC" \

PLEX_MEDIA_SERVER_INFO_MODEL="$(uname -m)" \

PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION="$(grep ^VERSION= /etc/os-release | awk -F= "{print \\$2}" | tr -d \\" )" \

LD_LIBRARY_PATH=/usr/lib/plexmediaserver/lib \

"/usr/lib/plexmediaserver/Plex Media Server"'

Type=simple

User=plex

Group=plex

Restart=on-failure

RestartSec=5

StartLimitInterval=60s

StartLimitBurst=3


[Install]

WantedBy=multi-user.target


꼭 경로를 Application Support 까지 써주셔야 합니다!!!!





4. 추가적인 문제 해결


1. 죽어도 HW 트랜스코딩이 안될경우..

최근 Plex 서버에서 IHD_drv.so 를 사용하는 경우가 있습니다. 이는 intel media driver 를 쓰는 것으로 j3455 j4105 등의 셀레론 시스템에서는 지원이 되지 않습니다.


root@openmediavault:/usr/lib/plexmediaserver/lib/dri# ls

i965_drv_video.so  iHD_drv_video.so


i965_drv_video.so 파일을 iHD_drv_video.so 로 덮어 쓰시길 바랍니다.


2. 죽어도 HW 트랜스코딩이 또 안될경우..

plex 계정이 video 그룹에 추가가 되지 않은 경우입니다. adduser plex video 를 통해 해결하세요.


3. 파일 복사간 이것저것 하다가 퍼미션이 꼬인경우..


root@openmediavault:~# chown plex:plex /srv/dev-disk-by-label-2tb/plex/plexmediaserver/ -R


plex:plex 로 맞춰주시길 바랍니다.


감사합니다.


댓글을 달아 주세요

  1. 김동민 2020.01.16 10:51

    안녕하세요. 하드웨어 트랜스코딩 문제로 질문하나 드립니다.
    본문 하단에 j4105 사용 시 i965_drv_video.so 를 iHD_drv_video.so로 덮어쓰라고 하셨는데,
    제가 NAS 초보라서 어떻게 해야 하는건지 잘 모르겠어서요.
    혹시 설명 좀 부탁드려도 될까요?