Buffalo LinkStation 주무르기
집에서 LinkStation Live를 쓰고 있었는데, 괜찮은 것 같아서 부서에서 사용하는 공용 스토리지로 사용하려고 LinkStation Pro Duo 2T를 구매했다.
지금까지는 Linux 서버에 samba 설치해서 사용하고 있었는데, scsi 하드 달린 좀 오래된 장비라 용량도 부족하고 해서 이번 기회에 좀 가볍게 바꿔보고 싶어서 입맛에 맞게 좀 건드려봤다.
개인별로 권한 설정이 좀 편하게 가능하고 소스 서버 등으로 사용할 수 있도록 하기 위해서 아래와 같은 일들을 저질렀다.
1. Open Stock Firmware
http://buffalo.nas-central.org/wiki/Open_Stock_Firmware 참고해서
하면 telnet 이 열린다. 들어가서 sshd 올려주자. /etc/init.d 에 sshd.sh 가 없으니 적당히 하나 만들어서 넣어주고, /etc/init.d/rcS 에 sshd.sh 추가해준다.
LinkStation Live 에서는 key 관련해서 더 해줄 것이 있었는데, 이 모델에서는 별 문제 없이 넘어간다.
일단 그 외에는 크게 할 일이 없으니 넘어가자.
2. install ipkg
여기까지 해 놓으면 일단 shell은 떨어지는데, busybox 기반에 설치된 패키지도 없어서 뭐 할만한게 없다. LS live에서 여기다 개발환경 설치하려고 애쓰다가 몇번 벽돌 만들고 포기했는데, LS Pro 에서는 의외로 쉽게 되더라.
http://buffalo.nas-central.org/wiki/Ipkg_on_the_Linkstation_(for_end-users)
하면 /mnt/array1/.optware 라는 디렉토리가 생기고 /opt 로 링크되는데, 이 아래에 ipkg를 이용해서 설치하는 바이너리들이 들어가게 되고, path에도 알아서 추가된다.
이렇게 하면 기존의 library들과 충돌을 일으키지 않고 패키지를 추가 설치할 수 있게 된다.
/opt/etc/ipkg.conf 에
추가해주고 ipkg update 하면 패키지 설치할 준비 완료!
3. 한글 처리
locale -a 해보면 C, POSIX 밖에 없다. locale 설치까지 할 필요는 없고, 일단 /etc/profile에
추가하고
/etc/inputrc 에
해주면 utf-8 사용하도록 설정한 터미널에서 한글을 보고 쓸 수 있다. (putty 로 테스트해봤음)
busybox 에 포함된 vi 나 ipkg 로 받은 vim 에서는 utf-8 로 저장된 한글이 깨져보이는데, multibyte 옵션이 빠져서 빌드되었기 때문이다.
자, 그럼 vim에서 한글 처리를 위해 vim을 직접 빌드한다.
4. vim 빌드
ipkg 로 필요한 gcc, automake, autoconf, libc-dev 등 빌드에 필요한 패키지들을 설치하고, vim 소스를 다운받아서 --enable-multibyte, --enable-hangulinput 옵션 추가해서 빌드하면 된다.(--enable-hangulinput 은 안 했는데 별 문제 없더라.)
vim 빌드해서 설치한 후에 /usr/local/share/vim/vim72/vimrc_example.vim 을 /usr/local/share/vim/vimrc 로 카피해놓고 set enc=utf8 추가해주면 완료.
5. samba 설정
입맛에 맞게 samba 설정하려고 아무리 /etc/samba/smb.conf 를 바꿔봐도 samba 재실행하면 웹어드민에서 설정한 값으로 돌아가버린다.
/etc/init.d/smb.sh 에서 samba 재실행될 때마다 /etc/melco 에 있는 내용을 기반으로 smb.conf를 다시 만들기 때문인데, 이것을 원하지 않으면 /etc/init.d/smb.sh 에서
/usr/local/sbin/nas_configgen -c samba
라인을 코멘트하면 된다. 단, 이렇게 하면 웹어드민 툴에서 shared folders 부분은 사용할 수 없다.
웹 어드민을 그냥 사용하려고 보면, 전혀 한글화가 안 되어서 디렉토리명이나 유저명, 그룹명 등에 한글을 쓸 수가 없다. 설정값 저장하는 부분에서 특수문자, 공백 등을 확인하기 때문인데, 사실 한글이나 공백, '.' 등이 들어가도 별 문제가 없다.
귀찮으니 확인하는 부분을 제거해버리자.
/www/cgi-bin/module/BufCommonDataCheck.pm 에서
를
로 바꿔버리면 공유디렉토리명에 한글, 공백 등도 쓸 수 있다. 단, 여기 쓰는 이름으로 디렉토리를 만드니 리눅스 디렉토리명으로 사용할 수 없는 문자열은 알아서 빼고 만들어야 한다. 적당히 조건을 만들어 놓을 수도 있지만 귀찮으니 난 패스.
비슷하게
check_1st_symbol2, check_comment, check_group, check_user 함수도 수정해주면 그룹, 유저 description 에 한글을 쓸 수 있게 된다.
대략 여기까지 해 놓은 상태고, 아직은 최상위 디렉토리만 웹에서 관리할 수 있어서 하위 디렉토리에 권한설정하고 관리하는 작업은 슬슬 스크립트를 고쳐봐야겠다.
좀 편하겠다고 일을 벌였는데 어째 점점 더 일이 커지는 듯. -_-;
집에서 LinkStation Live를 쓰고 있었는데, 괜찮은 것 같아서 부서에서 사용하는 공용 스토리지로 사용하려고 LinkStation Pro Duo 2T를 구매했다.
지금까지는 Linux 서버에 samba 설치해서 사용하고 있었는데, scsi 하드 달린 좀 오래된 장비라 용량도 부족하고 해서 이번 기회에 좀 가볍게 바꿔보고 싶어서 입맛에 맞게 좀 건드려봤다.
개인별로 권한 설정이 좀 편하게 가능하고 소스 서버 등으로 사용할 수 있도록 하기 위해서 아래와 같은 일들을 저질렀다.
1. Open Stock Firmware
http://buffalo.nas-central.org/wiki/Open_Stock_Firmware 참고해서
java -jar acp_commander.jar -t <IP ADDRESS> -o
하면 telnet 이 열린다. 들어가서 sshd 올려주자. /etc/init.d 에 sshd.sh 가 없으니 적당히 하나 만들어서 넣어주고, /etc/init.d/rcS 에 sshd.sh 추가해준다.
LinkStation Live 에서는 key 관련해서 더 해줄 것이 있었는데, 이 모델에서는 별 문제 없이 넘어간다.
일단 그 외에는 크게 할 일이 없으니 넘어가자.
2. install ipkg
여기까지 해 놓으면 일단 shell은 떨어지는데, busybox 기반에 설치된 패키지도 없어서 뭐 할만한게 없다. LS live에서 여기다 개발환경 설치하려고 애쓰다가 몇번 벽돌 만들고 포기했는데, LS Pro 에서는 의외로 쉽게 되더라.
http://buffalo.nas-central.org/wiki/Ipkg_on_the_Linkstation_(for_end-users)
mkdir /mnt/array1/tmp
cd /mnt/array1/tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/teraprov2-bootstrap_1.2-7_arm.xsh
sh teraprov2-bootstrap_1.2-7_arm.xsh
cd /mnt/array1/tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/cs05q3armel/cross/stable/teraprov2-bootstrap_1.2-7_arm.xsh
sh teraprov2-bootstrap_1.2-7_arm.xsh
하면 /mnt/array1/.optware 라는 디렉토리가 생기고 /opt 로 링크되는데, 이 아래에 ipkg를 이용해서 설치하는 바이너리들이 들어가게 되고, path에도 알아서 추가된다.
이렇게 하면 기존의 library들과 충돌을 일으키지 않고 패키지를 추가 설치할 수 있게 된다.
/opt/etc/ipkg.conf 에
src stable http://ipkg.nas-central.org/stable/all
추가해주고 ipkg update 하면 패키지 설치할 준비 완료!
3. 한글 처리
locale -a 해보면 C, POSIX 밖에 없다. locale 설치까지 할 필요는 없고, 일단 /etc/profile에
export LANG=en_US.UTF-8
export LC_ALL="C"
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
export LC_ALL="C"
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
추가하고
/etc/inputrc 에
set meta-flag on
set convert-meta off
set output-meta on
set convert-meta off
set output-meta on
해주면 utf-8 사용하도록 설정한 터미널에서 한글을 보고 쓸 수 있다. (putty 로 테스트해봤음)
busybox 에 포함된 vi 나 ipkg 로 받은 vim 에서는 utf-8 로 저장된 한글이 깨져보이는데, multibyte 옵션이 빠져서 빌드되었기 때문이다.
자, 그럼 vim에서 한글 처리를 위해 vim을 직접 빌드한다.
4. vim 빌드
ipkg 로 필요한 gcc, automake, autoconf, libc-dev 등 빌드에 필요한 패키지들을 설치하고, vim 소스를 다운받아서 --enable-multibyte, --enable-hangulinput 옵션 추가해서 빌드하면 된다.(--enable-hangulinput 은 안 했는데 별 문제 없더라.)
vim 빌드해서 설치한 후에 /usr/local/share/vim/vim72/vimrc_example.vim 을 /usr/local/share/vim/vimrc 로 카피해놓고 set enc=utf8 추가해주면 완료.
5. samba 설정
입맛에 맞게 samba 설정하려고 아무리 /etc/samba/smb.conf 를 바꿔봐도 samba 재실행하면 웹어드민에서 설정한 값으로 돌아가버린다.
/etc/init.d/smb.sh 에서 samba 재실행될 때마다 /etc/melco 에 있는 내용을 기반으로 smb.conf를 다시 만들기 때문인데, 이것을 원하지 않으면 /etc/init.d/smb.sh 에서
/usr/local/sbin/nas_configgen -c samba
라인을 코멘트하면 된다. 단, 이렇게 하면 웹어드민 툴에서 shared folders 부분은 사용할 수 없다.
웹 어드민을 그냥 사용하려고 보면, 전혀 한글화가 안 되어서 디렉토리명이나 유저명, 그룹명 등에 한글을 쓸 수가 없다. 설정값 저장하는 부분에서 특수문자, 공백 등을 확인하기 때문인데, 사실 한글이나 공백, '.' 등이 들어가도 별 문제가 없다.
귀찮으니 확인하는 부분을 제거해버리자.
/www/cgi-bin/module/BufCommonDataCheck.pm 에서
sub check_share {
my $self = shift;
if ($self->{data} =~ m/\!|\#|\&|\{|\}|\@|\<|\>|\\|\~|\$|\/|\:|\,|\'|\;|\*|\?|\"|\<|\>|\||\`|\[|\]|\=|\+|\.|\^|\(|\)|\%|\s/) {
$self->{status} = "share";
return 0;
}
if (!$self->check_1byte_jp) { $self->{status} = "share"; return 0; }
return 1;
}
my $self = shift;
if ($self->{data} =~ m/\!|\#|\&|\{|\}|\@|\<|\>|\\|\~|\$|\/|\:|\,|\'|\;|\*|\?|\"|\<|\>|\||\`|\[|\]|\=|\+|\.|\^|\(|\)|\%|\s/) {
$self->{status} = "share";
return 0;
}
if (!$self->check_1byte_jp) { $self->{status} = "share"; return 0; }
return 1;
}
를
sub check_share {
return 1;
}
return 1;
}
로 바꿔버리면 공유디렉토리명에 한글, 공백 등도 쓸 수 있다. 단, 여기 쓰는 이름으로 디렉토리를 만드니 리눅스 디렉토리명으로 사용할 수 없는 문자열은 알아서 빼고 만들어야 한다. 적당히 조건을 만들어 놓을 수도 있지만 귀찮으니 난 패스.
비슷하게
check_1st_symbol2, check_comment, check_group, check_user 함수도 수정해주면 그룹, 유저 description 에 한글을 쓸 수 있게 된다.
대략 여기까지 해 놓은 상태고, 아직은 최상위 디렉토리만 웹에서 관리할 수 있어서 하위 디렉토리에 권한설정하고 관리하는 작업은 슬슬 스크립트를 고쳐봐야겠다.
좀 편하겠다고 일을 벌였는데 어째 점점 더 일이 커지는 듯. -_-;
_ mine
09년 12월 1일 11시 25분
AppStore(1) buffalo(1) casting은필수(1) linkstation(1) OSX(1) P7120(1) SNSD(2) ㅅㅂㅅㅂㅅㄴㅅㄷ(1) 간사이(1) 갤러리(1) 게임(2) 겨울(1) 곰탕(1) 과자(1) 광고(1) 구글(2) 구두신었더니또축축해(1) 노트북(1) 니가나한테이러면안되지(1) 덕수궁(1) 도서(11) 메모(1) 모기(1) 모리셔스(1) 무협(1) 별곱창(1) 분해(1) 불끈(1) 스위치백(1) 스쿠버(4) 아침(1) 애국기동단(1) 여름(1) 역시좃선(1) 오늘부터구글빠(1) 온다리쿠(1) 와플(1) 윤중로엔사람만발(1) 이찬진(1) 인도네시아(1) 정치블로그아님(3) 좌백(1) 주례축가꼭시켜주기(1) 집나가면개고생(1) 철도(1) 출장(9) 친북좌익빨갱이방송(1) 친북좌익빨갱이블로그?(1) 캐나다(9) 컴투스(1)