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분
여기도 뭘 좀 넣어야...