Xpenology eSATA/USB 포트 사용

기본적으로 Synology경우 기본 제공되는 eSATA가 대부분 1포트입니다
그래서인지 eSATA 2개를 연결하고 부트하니 접속이 안 되는 증세가 발생했습니다 (ping이 되고, 나중에 로그에 작동 에러 남아있었지만, DSM접속 불가)
확인해보니 설정파일을 수정하면 된다고 해서 수정해봤습니다
먼저 수정해야하는 파일은
/etc/synoinfo.conf
/etc.defaults/synoinfo.conf
2개입니다
수정해야할곳은 각각 두곳입니다
먼저 telnet/ssh로 접속후 sudo -i를 통해 root권한을 얻은후 vi로 해당 파일을 엽니다
수정해야하는 값은
esataportcfg
internalportcfg
2개입니다 (만일 현제 장착된 디스크의 개수가 maxdisks값으로 지정된걸 다 쓰고 있어서 그걸 초과해야 하는 경우 해당 값을 포함하여 3군데 수정하셔야 합니다)
먼저 기본값을 메모해둡니다 (DS918+ 기준으로 internal이 0xffff이고, esata가 0x0입니다)
hex를 수동으로 계산해도 되지만, 간단하게 계산하게 해주는 http://zective.com/code/xpenology를 이용하시길 추천합니다 (만일 해당 사이트가 죽을껄 대비해서 html 소스를 다운받아서 첨부해두니 접속이 안 되거나, 인터넷이 안 되는 환경이라면 첨부파일을 써주세요)
먼저 기본값을 해당 페이지에 넣어서 현제 디스크 현황을 확인해봅니다
다음 값을 수정해야 합니다
먼저 esata가 0이 아닌 경우 0으로 고치셔야 합니다 (3615는 기본값이 0이 아니라 작동 문제 일으킨 상태입니다)
다음 internal을 수정해서 esata가 차지하고 있던 디스크 번호까지 다 지정하셔야 합니다 (자리수 추가후 값을 수정해서 디스크 번호 지정되는 범위를 확인후 기존의 esata가 차지하고 있던 번호를 전부 다 덮을 수 있는 값을 입력해주세요)
제대로 되었다라면 maxdisks값에 지정된 디스크 개수만큼을 지정하여
다음과 같이 되어야 합니다 (maxdisks가 16인 918+의 기본값 기준으로 다음과 같이 됩니다)
만일 부트로더용 usb의 grub.cfg의 SataPortMap값이 maxdisks보다 작다면 해당 부분도 수정해주세요
모든 작업이 완료되었다면 시스템을 종료시켜서 전원을 끈후 eSATA에 디스크를 연결합니다 (pnp지원하는 포트지만, 온라인 상태에서 연결하면 정상 작동하지 않았습니다)
다음 bios로 가셔서 정상 인식 여하를 확인하셨다면 기존대로 부트합니다
이제 eSATA에 연결된 디스크가 내장 디스크처럼 인식되는걸 보실 수 있습니다
이어서 동일한 방법으로 usbportcfg의 값(918기준 기본값 30000)을 수정하여 USB로 연결된 디스크를 내장으로 잡을 수 있습니다 (작동중 빠져버릴 가능성 고려하면 그다지 추천은 안 하지만, NUC등의 미니타입이라 디스크 포트가 불가피한 경우는 이 방법을 써주세요)
이 작업을 하기 위해서는 먼저 synoinfo.conf의 maxdisks를 확인하셔야 합니다
제경우 918이미지를 사용한 상태라 16으로 설정된 상태인걸 확인 가능합니다
이 상태에서 usb하드를 연결후 fdisk -l을 입력해보시면 /dev/sdq로 할당된걸 확인가능합니다 (위의 스샷을 보시면 usb가 17번부터 할당되게 되고, 17번째 영문자가 할당된걸 확인할 수 있습니다)
이제 우리가 해야할일은 maxdisks의 밖의 17번째 디스크를 내장으로 잡아줘야 합니다
이를 위해서는 또 다시 hex를 계산해야 합니다
먼저 https://www.binaryhexconverter.com/hex-to-binary-converter등을 써서 지금 현제의 usb값을 2진수로 변환합니다
다음 해당 2진수값을 다시 https://www.binaryhexconverter.com/binary-to-hex-converter에 붙여넣고 변환해서 hex로 바꿉니다
우측에서부터 1번 포트부터 시작해서 순서대로 세어서 할당되므로 우측에서 17번쨰 자리를 1 -> 0으로 바꾸면 됩니다 (이경우 20000라는 hex값을 얻을 수 있습니다)
여기에서 생성한 hex값을 usb항목에 입력합니다 (만일 usb하드가 복수 존재하는 경우 그만큼 많은 자리수를 수정해주세요)
이어서 같은 방법으로 internal의 값도 구해서 수정합니다 (젤 앞에 1자리 추가하셔야 합니다) (이경우 60000이 나옵니다)
이제 얻어진 각각의 값을 다시 위의 계산용 페이지에 넣어봅니다
수정된 값이 원하는대로 되었다라면 synoinfo.conf를 저장하시고, 재부팅하면
이런식으로 USB가 내장 디스크로 인식되는걸 확인 가능합니다
단 USB를 통해 SSD를 물리는경우 정상적으로 인식이 안 됩니다 (UASP까지 제대로 지원되는 모델을 시험해도 위 스샷처럼 HDD로 잡혀서 cache로 사용할 수 없습니다)
이외에 온도를 제외한 SMART정보가 뜨지 않는다는 치명적 문제와 USB로 연결된 HDD를 RAID로 잡아두면 부트할때마다 System Partition에 문제가 있다고 Repair하라고 뜹니다 (한마디로 추천하지 않습니다)
추신 : usb값을 0으로 입력하는건 작동 문제를 일으킬 가능성이 있으므로 추천하지 않습니다 (마지막 1포트 남은건 Xpenology 부트로더가 들어있는 usb를 위한것인듯 합니다)

“Xpenology eSATA/USB 포트 사용”의 한가지 생각

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다