2017/04/14 - [IT이야기/IT기기] - [마이클라우드] 1. 마이클라우드에 시놀로지 OS를 사용하는 방법


! 해당 포스팅을 읽기 전 반드시 위의 포스팅을 정독해주시기 바랍니다. 


  어떤 오류가 발생하나요?

지난 번 포스팅에서 말씀드렸다시피 마이클라우드에 포팅되는 시놀로지OS는 안정성 면에서 한 가지


큰 문제를 갖고있습니다. 바로 OS 포팅 이 후 약 12시간이 지나면 특정파일이 손상되면서 아예 먹통이 되는


현상입니다. 대쉬보드, SSH 모두 접속이 불가능해지며 텔넷만 접속이 가능해지는데 이는 안정성이 가장


중요한 NAS에서 치명적인 문제입니다. 그렇기 때문에 그대로 사용하기엔 큰 지장이 따르는데요.


이러한 문제에 대해서 개발자 Fox_exe 인지하고 있지만 아직까지 픽스된 펌웨어는 나오지 않았습니다.


따라서 이번 포스팅에서는 이러한 치명적 문제를 임시적으로 해결, 예방 하는 방법에 대해 다룰 예정입니다.


  손상 되는 파일은?

해당 문제에 대해서 Fox_exe는 다음의 4가지 파일이 손상되는 것이 문제라고 밝혔습니다.


!!! WARNING !!!


Its a "Beta" version of DSM, and "Alpha" of Firmware itself.

Its have some bugs.

But one "Bug" is really important:

Sometime few lib (.so files) was "damaged" and system cant run normally. (Random bugs).


I found one source of this problems:

/usr/lib/libfileindex.so

/usr/lib/libsynopkg.so

/usr/lib/libsynoshare.so

/usr/lib/libsynostoragemgmt.so


All this files have overwritten first 1600 byte of data, so these files can't be read / can't work. And almost all in DSM can't work too, because its "core lib's"


위의 4가지 so 파일은 핵심적인 파일로써 손상되면 시놀로지 OS의 정상작동이 불가한 파일입니다.


파일이 손상되는 원인은 정확히 밝혀진 것은 없으나 Fox_exe는 커널의 문제라고 추측했습니다.


또한 사용자들의 경험담에 의하면 파일이 손상되는 주기가 약 12시간 간격이라고 알려져있습니다.


  어떤 방법으로 해결이 가능할까?

사실 커널을 수정하는 등의 근본적인 해결방법이 가장 효과적이겠지만 저에겐 그런 큰 재주가 없기에


가장 원시적인 방법으로 손상된 파일을 새로운 파일로 교체하는 방법을 사용할 예정입니다.


방법이 어렵지 않고 간단하기 때문에 차근차근 따라한다면 매우 쉽게 이용이 가능합니다.


  준비물

준비물은 아주 간단합니다. 손상되지 않은 원본파일 4개를 준비하면 됩니다.


원본파일은 지난 번 포스팅에서 다운로드 받은 DSM-wdmc-gen2-8451.pat 안에 존재합니다.


이를 반디집, 알집 등의 압축프로그램으로 연결하여 압축을 해제합니다.




압축해제 후에 여러개의 파일이 보이는데 여기서 제가 사용할 파일은 hda1.tgz 파일입니다.


마찬가지로 hda1.tgz 파일을 압축프로그램으로 연결하여 압축해제합니다.

(압축해제시 발생하는 오류는 "예"를 눌러서 건너 뛰시면 됩니다.)



압축해제 후 hda1 / usr / lib 폴더로 이동하여 위에 보이는 4가지 파일을 복사하여 다른 폴더로 옮겨 놓습니다.


* 손상되는 파일과 복사해야 할 파일이 다릅니다! 손상되는 파일은 심볼릭링크 파일로써 바로가기와 같은 파일입니다.

따라서 아래의 표에서 오른쪽에 위치한 파일을 복사해야 합니다.


 손상되는 파일

 복사해야 할 파일

 libfileindex.so

 libfileindex.so.6.0

 libsynopkg.so

 libsynopkg.so.1

 libsynoshare.so

 libsynoshare.so.6

 libsynostoragemgmt.so

 libsynostoragemgmt.so


  1) 폴더만들기

준비물이 모두 준비되었다면 시놀로지 파일스테이션으로 이동하여 임의의 폴더를 하나 생성합니다.


저의 경우는 lib 이라는 공유폴더를 생성하였습니다.

이 후 위의 단계에서 준비했던 4가지의 원본 so파일을 lib 폴더로 업로드 합니다.




  2) 스크립트 작성

다음으로 파일을 복사, 덮어쓰기 하는 스크립트 구문을 만들어야 합니다. 패키지센터로 들어가서 "텍스트 편집기"를


설치하여 실행합니다.



텍스트편집기에서 새로만들기를 눌러 새로운 문서편집을 시작합니다.

새로운 문서에 아래와 같은 스크립트를 붙여넣기합니다.


#!/bin/sh

cp /volume1/lib/libsynopkg.so.1 /usr/lib/libsynopkg.so.1

cp /volume1/lib/libfileindex.so.6.0 /usr/lib/libfileindex.so.6.0

cp /volume1/lib/libsynoshare.so.6 /usr/lib/libsynoshare.so.6

cp /volume1/lib/libsynostoragemgmt.so /usr/lib/libsynostoragemgmt.so

reboot 



저장 버튼을 누른 후 파일 명을 "lib.sh" 파일유형을 "모든 파일"로 설정한 후 마찬가지로 lib폴더에 저장합니다.


lib.sh 파일을 마우스 오른쪽으로 클릭하여 속성으로 진입 합니다.


권한탭으로 이동하여 아래와 같이 실행권한을 부여합니다.


  3) 작업스케줄러 작성

위에서 작성한 스크립트를 자동으로 실행시킬 수 있게 시놀로지의 작업 스케줄러를 이용하여 작업합니다.


작업 스케줄러는 제어판에서 진입할 수 있습니다.


작업 스케줄러에서 생성->예약된 작업->사용자 정의 스크립트로 진입합니다.


일반 탭에서 사용자를 root로 선택합니다.


스케줄 탭에서 "매일" 실행, 주기는 매 12시간으로 설정하며 시간은 평소 본인이 잘 사용하지 않는 시간대로 설정합니다.

(스크립트에 재부팅이 포함되어 있으며 재부팅 시간이 약 4분이 걸리기 때문에 새벽이나 오전 시간대를 추천드립니다.)


작업 설정 탭에서 실행명령에 아래와 같이 입력 후 저장합니다.

/volume1/lib/lib.sh 



여기까지 진행되었다면 시놀로지 작업스케줄러는 사용자가 설정한 시간에 스크립트를 작동해 손상된 so 파일 위에


lib 폴더 내부에 존재하는 원본 so 파일을 덮어씌우게 됩니다.


또한 해당 스크립트의 정상 작동여부를 확인 하려면 로그로 이동하여 재부팅 내용을 확인하거나 winscp을 통해


4개의 so 파일 최근 수정 시간대를 확인하시면 스크립트 정상작동 유무를 알 수 있습니다.


  후기

이 방법을 통해 약 2주간 시놀로지 OS를 사용하고 있는데 여지껏 문제가 발생한 적은 전혀 없습니다.

하지만 재부팅이 진행될 때 4분 정도가 소요되기 때문에 하루에 약 8분은 NAS 사용이 불가능한 단점이 있습니다.

따라서 스크립트 작동 시간대를 본인이 잘 사용하지 않는 시간대에 지정하신다면 원활한 사용이 가능할 듯 합니다.