2cpu NAS 게시판에 올렸던 내용 복&붙…ㄷㄷㄷ (http://2cpu.co.kr/nas/13344)

 


 

이번에 MSI Cubi N 기기가 하나 남아서 SSD 128G 장착하여 헤놀로지 올리고 NAS로 잘 사용하고 있었습니다.

하지만 어쩔 수 없는 용량의 압박으로 곧 1TB USB 외장하드를 붙이게 되었고

웬만한 자료(다운로드, Photo Station, Video 등)들은 모두 이 외장하드에 저장하고 싶었습니다.

처음 도전한 mount –bind 방식은 리눅스의 ln -s 와 같이 간결하게 해결해 줄 수 있지만

약간 좀 꺼름칙한 느낌을 지울 수 없습니다. 게다가 중간에 연결이 끊기는 상황도 발생되더라구요. (ㄷㄷㄷㄷㄷㄷㄷ 아직까지 미스테리 입니다.)

안되겠다 싶어 USB 외장하드를 내장 볼륨으로 인식시키는 방법을 구글링하기 시작했습니다.

그러던 중 synoinfo.conf 파일을 약간 건드리면 인식된다는 글을 발견하고 수많은 삽질을 했습니다.
1. /etc/synoinfo.conf
2. /etc.defaults/synoinfo.conf
* 2가지 모두 수정

무한 삽질 끝에 성공하였고

혹시 저와 같이 외장하드를 내장으로 인식시키고 싶으신 분들이 계실지도 모른다는 생각에

좀 더 편리하게 삽질(..)을 하실 수 있도록 웹 페이지를 제작하였습니다.

http://zective.com/code/xpenology/

 

1) usbportcfg
2) esataportcfg
3) internalportcfg

synoinfo.conf 파일의 위 3가지 헥사 값을 편리하게 알아내어 수정할 수 있습니다.

 

[프롤로그]

이미 많은 분들이 아시겠지만

USB / eSATA / 내장장치의 인식이라고 해야하려나요..

이걸 헥사값으로 처리하고 있습니다.

저의 경우엔 다음과 같았습니다.

usbportcfg=”0x300000″

esataportcfg=”0xff000″

internalportcfg=”0xfff”

왜인지는 모르겠지만 MSI Cubi N 스펙에 eSATA 포트가 8개까지 사용할 수 있도록 설정되어 있었고

내장은 12개의 포트가 사용할 수 있었습니다. (아마도 기본이려나요..?)

USB 관련은 당시 제가 꽂아놨던 외장 2개가 바르게 인식되어 0x300000 값으로 되어있었습니다.

여기서 0x300000 헥사(16진법)값은 이진법(바이너리)으로 ’11 0000 0000 0000 0000 0000′(총 22자리) 으로 나타낼 수 있습니다.

일단 0은 모두 무시하시고 ‘1’이 2개인데 현재 구동중인 헤놀로지에서 인식/구동중인 USB 포트라고 생각되어집니다. ㄷㄷㄷㄷㄷ

일반적인 글은 왼쪽에서 오른쪽으로 읽혀지지만

헤놀로지의 이 설정(이진법) 값은 오른쪽에서 왼쪽으로 우선순위가 결정된다고 보여집니다.

1 1 0000 0000
2번째 1번째
USB USB

예를 들어 1번째 USB 외장하드를 내장으로 인식시키고 싶다면

먼저 USB로 인식되지 않도록 해당 포트의 값을 꺼야(0으로 수정)합니다.

그러므로 위 이진법 값을 다음과 같이 수정하시면 됩니다.

’10 0000 0000 0000 0000 0000′ = 11 -> 10 으로 수정

그 후 내장으로 인식될 수 있도록 해당 위치의 값을 1로 변경해 주셔야 합니다.

앞서 말씀드린대로 제 경우의 internalportcfg 값은 ‘0xfff’ 였습니다.

이 헥사값은 이진법으로 나타내면 ‘1111 1111 1111′ 인데.. 위 USB 헥사값은 총 22자리 였는데 이번엔 12자리입니다.

일단 눈으로 보기 편하도록 usbportcfg 이진법 기준으로 모두 22자리를 맞춰줍니다. (빈자리는 0으로 채우면 됩니다.)

따라서 최종적으로 internalportcfg 값은 다음과 같습니다.

’00 0000 0000 1111 1111 1111’

수정한 usbportcfg 이진법 값에서 좌측 2번째 값을 1에서 0으로 변경했었습니다.

이제 이것에 맞춰 internalportcfg 이진법 값의 좌측 2번 값을 0에서 1로 변경하시면 됩니다.

이제 마지막 단계입니다.

synoinfo.conf 파일(2개 – /etc/ && /etc.defaults/)의 각종 *portcfg 값은 헥사값이었습니다.

변경된 이진법 값을 헥사로 변경하시고 저장 후 재시동 하시면 됩니다.

제 경우, 다음과 같이 수정되었습니다. (esataportcfg 값은 변경사항 X)

1. usbportcfg
기존) 0x300000
수정) 0x200000

2. internalportcfg
기존) 0xfff
수정) 0x100fff

업무중에 눈치봐가며 작성한터라 내용이 뒤죽박죽 산으로 가는 거 같네요 ㄷㄷㄷㄷ

부디 편리하게 사용해주시길 바랍니다..ㄷㄷㄷ

인터넷 뱅킹 할 때 이체금액 등을 마우스로 버튼 클릭하여 입력(&추가)하는 방식이 종종 있다.

따로 웹페이지 제작하는건 귀찮아서 위대한(ㄷㄷ) jsfiddle.net 에 샘플을 만들었다.
https://jsfiddle.net/jo1dbf1h/

 

  • jQuery 사용

 

내가 선택한 USB 외장하드 경로 = /volumeUSB9

 

1. 외장하드에 homes, photo 디렉토리를 생성한다. (이왕이면 최상위에 생성)

 

2. 기존 homes 디렉토리의 구조 및 소유자 권한을 그대로 새로운 homes 디렉토리로 복사한다.

 

3. 기존 photo 디렉토리 자체를 구조 및 소유자 권한 그대로 외장하드에 복사한다.

 

4. 새로운 homes 디렉토리와 photo 디렉토리를 기존의 경로에 연결한다.

 

5. /usr/syno/etc/rc.sysv/ 디렉토리에 S00mountcustom.sh 파일을 생성하고 다음과 같이 입력한다.

* 4번 내용을 쉘 파일로 실행한다는 뜻

 

6. 인덱싱을 활성화 해 준다.

Django 프로젝트를 Nginx 웹서버에 올리기 위해 uWSGI를 연동해야 한다.

구글에 검색되는 수많은 연동 관련 글을 보고 그에 맞게 웹서버를 설정했지만

404, 500, 502 3가지 에러가 마구 튀어나오며 실패했다.

원인을 알고 싶었지만 도무지 해결책이 나오지 않았다.

난 분명 스택오버플로우나 Django, Nginx, uWSGI 관련 문서들을 참고하며

그대로 적용했지만 그래도 결과는 똑같았다.
결국 수많은 삽질을 해가며 해결책을 찾았다.

이에 잊지 않기 위해 글로 남긴다.
* 설정에 필요한 파일 목록

1. 프로젝트 설정 파일
– /{Project Directory}/{Main}/settings.py

2. 프로젝트 Nginx 설정 파일
– /{Project Directory}/{Project Name}_nginx.conf

3. 프로젝트 uWSGI 설정 파일
– /{Project Directory}/{Project Name}_uwsgi.ini
* 예제

– /{Project Directory}/{Main}/settings.py
(…)
STATIC_URL = ‘/static/’   – A
STATICFILES_DIRS = [os.path.join(BASE_DIR, ‘devel_static‘)]   – B
STATIC_ROOT = os.path.join(BASE_DIR, ‘service_static‘)   – C
(…)

– /{Project Directory}/{Project Name}_nginx.conf
(…)
upstream django {
# /tmp 디렉토리에 소켓 파일을 지정할 경우 – 502 에러 발생
server unix:///run/{Project Name}.sock;   – D
}

server {
(…)
location /static {   – E
alias /{Project Directory}/service_static;   – F
}
(…)
}
(…)

– /{Project Directory}/{Project Name}_uwsgi.ini
(…)
socket = /run/{Project Name}.sock – G
(…)
* 디렉토리명 설명

static -> 정적파일을 불러올 URL 상의 경로명 (http://example.com/static)
devel_static -> 디버깅 모드일 때 정적파일 가져오는 디렉토리
service_static -> 실제 서비스시 정적파일 가져오는 디렉토리
* 핵심 (볼드&컬러 단어)

A, E 동일 – A 뒤에 슬래시(/) 붙어있는거 주의
C, F 동일
D, G 동일 – /tmp 하위에 생성하지 말 것

dragonborn_1920x1200 skyrim_environment_1920x1200 skyrim_dragon_shout_1920x1200

 

출처 : 엘더스크롤 5 OST – Dovahkiin (Dragonborn) 가사 및 한글 번역 (영어, 라틴어 번안 추가수록)

 

오…

대단하신 분이다..

 

[가사 발음]

* h는 거의 발음되지 않고 그 부분을 장음처리한다. wah->waa 이런 느낌.

** ei는 [아이]로, w는 영어의 [v] 소리로 발음난다. z는 영어의 [z]보다 조금 세게 발음한다.

게르만-노르딕 언어 쪽의 발음 전통을 따른 것이다. (ㅈ로 표기했다.)

*** 철자로 보면 ii가 장음이어야 맞지만 이 Dovahzul에서는 이게 딱히 장음처리되는 것 같지 않다.

**** ae를 살리는 것 같기는 하나 ([아에]) 어절이 대체로 빨리 발음되니 [에]로 읽어도 무방하다.

***** f는 세게(ㅎ에 가깝게), ng는 영어처럼 [응] 소리로 내도 괜찮다.

****** 대부분의 언어와 마찬가지로 자모 뒤에 모음이 충돌하는 부분에서 연쇄가 있으니 주의.

도바킨, 도바킨,

나알 옼 진 로스 바린

바 다인 보쿨 마파에랔 아스트 발

아르크 핀 노롴 팔 그란

폳 누스트 혼 진드로 잔

도바킨, 파 힌 코간 무 드랄

후즈라 누, 쿨 도 오드, 바 안 봌 린그라 보드

아르크 핀 테이, 보지크 푼, 도 핀 가인

보 로스트 프론 바 네이 도브

아르크 핀 레이맄 도 줄

보뜨 안 술레잌 바 로니트 팔 크라인

아르크 핀 켈 로슽 프로다

도 벧 비잉(그) 코 핀 크라

톨 포드 제이마 빈 카인 메이즈 푼다인

알두인 페인 도 준

크루짘 보쿤 스탇나우

보뜨 안 발롴 바 디본 핀 라인

누즈 안 술, 펜트 알록

폳 핀 불 도바 놐

펜 코스 나롵 마파에랔 아르크 루즈

파즈 카이잘 펜 코스 스틴 놀 바인 알두인 조트

도바킨, 도바킨,

나알 옼 진 로스 바린

바 다인 보쿨 마파에랔 아스트 발

아르크 핀 노롴 팔 그란

폳 누스트 혼 진드로 잔

도바킨, 파 힌 코간 무 드랄