coLinxu는 "coLinux 로컬 하드디스크를 마운트하여 사용하자" 글에서 말씀드렸듯이 로컬 드라이브를 쉽게 마운트할 수 있기 때문에 samba 서버를 설치할 필요가 없을 줄 알았습니다. 로컬 드라이브에서 소스를 작성하고 컴파일과 디버깅은 coLinux하면 되겠다 싶었죠. 그러나 제가 경험해서 큰 문제 두가지가 걸리네요.

  1. 타겟보드에서 마운트된 로컬 드라이브를 마운트할 수 없다.
  2. 한글 파일의 이름이 깨져 출력됩니다.

로컬 드라이브를 마운트에서 coLinux에서 컴파일하고 실행하고 디버깅하는 것 까지는 됩니다. 그런데 크로스 컴파일러로 컴파일 한 결과물을 타켓보드에서 마운트하여 실행할 수 없습니다. 물론 컴파일 결과물을 마운트가 아닐 coLinux의 네이티브 디렉토리로 복사해 넣으면 되지만, 컴파일 할 때마나 복사해서 실행하려면 너무 불편합니다.

그리고 결정적인 한글 문제. 이 문제를 해결하기 위해서도 삼바 서버를 설치하기로 결정했습니다.

삼바 서버 설치하기 전에 호스트 이름 변경

삼바 서버를 설치하기 전에 호스트 이름부터 변경하겠습니다. coLinux에 Fedora 이미지를 사용하면 컴퓨터 이름이 Localhost로 설정되어 있는데, 나중에 삼바 서버를 정상적으로 설치하고 실행해도 MS Windows에서 공유 디렉토리로 들어 가지 못합니다. 에러 내용을 가지고 유추하면 MS Windows는 네트워크에서 자기 자신을 가르킬 때 127.0.0.1 뿐만 아니라 Localhsot도 사용합니다.

이렇게 MS Windows 가 이미 Localhost를 사용하고 있는데 coLinux도 Localhost 이름을 사용한다면 네트워크에서 이름으로는 구별할 방법이 없습니다. 그러므로 coLinux에서 삼바를 올바르게 실행이 되도, MS 윈도우의 탐색기에서 삼바 공유 디렉토리로 들어가 지지를 않습니다. 이 문제를 해결하기 위해 coLinux에 설치한 리눅스에 정당한 이름으로 변경해 주는 것이 좋습니다. 저는 간단히 "coLinux" 라고 하겠습니다.

호스트 이름 변경

coLinux의 리눅스에서 두 개의 파일을 수정합니다. 첫번째는 /etc/sysconfig/network입니다.

]# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=localhost.localdomain
위의 내용을 아래와 같이 변경합니다. NETWORKING=yes HOSTNAME=coLinux

두번째는 /etc/hosts 입니다.

]# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1    localhost.localdomain     localhost
::1     localhost6.localdomain6 localhost6

위의 내용을 아래와 같이 coLinux 이름을 추가합니다.

127.0.0.1    coLinux     localhost.localdomain     localhost
::1     localhost6.localdomain6 localhost6

ping으로 변경된 이름으로 에코가 돌아오면 정상적으로 처리된 것입니다.

]# service network restart   --> 변경된 환경으로 네트워크 다시 시작
]# ping coLinux
PING coLinux (127.0.0.1) 56(84) bytes of data.
64 bytes from coLinux (127.0.0.1): icmp_seq=1 ttl=64 time=0.000 ms
64 bytes from coLinux (127.0.0.1): icmp_seq=2 ttl=64 time=0.000 ms
64 bytes from coLinux (127.0.0.1): icmp_seq=3 ttl=64 time=10.0 ms

--- coLinux ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2899ms
rtt min/avg/max/mdev = 0.000/3.333/10.000/4.714 ms
]# 

삼바 설치

역시 yum을 이용하여 간단하게 설치하겠습니다. 아우~ 너무 편합니다. yum 도 이렇게 편한데 젠투에서는 더 강력한 emerge 가 있다고 합니다. yum보다 더 강력하다면 얼마나 강력하다는 것인지 매우 호기심이 동합니다만 yum에게 항상 감사하고 있습니다.

  1. yum을 이용하여 samba 설치
]# yum -y install samba
  1. 삼바 환경 파일 수정

삼바 환경 설정에 대한 자세한 설명은 "삼바 환경 설정하기" 글 소개로 대신하겠습니다. 저는 저의 계정을 jwjw 아이디를 가지고 있는 사용자에게 공개하겠습니다. /etc/samba/smb.conf 를 아래의 내용에 맞추어 수정했습니다.

]# vi /etc/samba/smb.conf

[global]
# 윈도우 네트워크 환경의 작업 그룹 이름을 입력했습니다.
;       workgroup = workgroup
        dos charset = CP949
        unix charset = CP949
;       load printers = yes
        printing = lpmg

# 윈도우 탐색기에 출력할 컴퓨터 이름입니다.
        server string = coLinuxSambaServer
        printcap name = /etc/printcap
        cups options = raw
        log file = /var/log/samba/%m.log
        max log size = 50

# 사용자 계정으로 설정합니다.
        security = USER
        socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
        dns proxy = no
        idmap uid = 16777216-33554431
        idmap gid = 16777216-33554431
;       template shell = /bin/false
        password server = None
        guest ok = no
;       winbind use default domain = no
        username map = /etc/samba/smbusers

# jwjw 유저에 대한 삼바 공유 폴더 설정입니다.
[jwjw]
        comment = jwjw samba
        path = /home/jwjw
        writeable = yes
        guest ok = no
        create mask = 0644
        directory mask = 0755

[tmp]
        comment = tmp samba
        path = /tmp
        valid users = jwjw jwmx
        writeable = yes
        guest ok = no
        create mask = 0644
        directory mask = 0755

위의 내용 중에 저의 삼바 계정인 "jwjw" 를 사용하시는 계정 이름으로 변경해 주시면 되겠습니다.

참고삼바 사용자 아이디와 암호를 MS Windows의 사용자의 아이디와 암호를 사용하시면 삼바 공유 디렉토리를 열 때 마다 로그인할 필요가 없어 편합니다.

켁~ 이 많은 것을 어떻게 다 타이핑해! 하시는 분은 "coLinux 로컬 하드디스크를 마운트하여 사용하자" 글을 참고하셔서 MS Windows의 파일을 이용하시거나, 요즘 텔넷 프로그램은 vi 에디터에서 클립보드를 지원하므로, 윈도우에서 환경 파일을 작성하신 후, vi 에디터에서 클립보드로 한번에 붙여 넣기를 이용하시면 큰 불편없이 변경하실 수 있습니다.

  1. 삼바 서버 실행

삼바 서버를 실행하기 위해서는 smb와 nmb를 실행해야 합니다. yum으로 설치한 것이 뭐가 잘못 되었는지 다른 시스템에서는 smb만 실행하면 알아서 nmb가 자동으로 실행되는 여기서는 따로 실행 주어야 하네요. ^^; 그러나 부팅할 때 자동으로 실행하게 하면 되므로 큰 문제는 안 됩니다.

]# /etc/init.d/smb start
SMB서비스를 시작하고 있습니다:                             [  OK  ]
]# /etc/init.d/nmb start
NMB서비스를 시작하고 있습니다:                             [  OK  ]
]#
  1. 삼바 유저 등록

삼바 서버의 공유 디렉토리를 사용할 유저를 등록합니다. 유저를 등록한 후에는 samba를 다시 실행하여 줍니다.

]# smbpasswd -a jwjw
New SMB password:
Retype new SMB password:
Added user jwjw.
]# /etc/init.d/smb restart
SMB 서비스를 종료함:                                       [  OK  ]
SMB서비스를 시작하고 있습니다:                             [  OK  ]
]# /etc/init.d/nmb restart
NMB 서비스를 종료함:                                       [  OK  ]
NMB서비스를 시작하고 있습니다:                             [  OK  ]
]#
  1. 삼바 공유 디렉토리 열기

이제 탐색기로 삼바의 공유 디렉토리에 접근하면 모든 설정이 끝입니다. 그런데 삼바 공유 디렉토리가 열리지 않습니다. 이럴 때 목록에 등록된 이름을 확인해 보십시오. 혹, 괄호 안의 호스트 이름이 Localhost 라면 "내 네트워크 환경"에서 컴퓨터 찾기로 새로 변경한 호스트 이름인 "coLinux"로 검색합니다. 윈도우 탐색기에서 변경된 컴퓨터 정보로 갱신하지 못했기 때문에 발생한 문제로 F5키로 갱신이 안 될 수 있습니다.

아래의 이미지는 컴퓨터 찾기로 올바른 컴퓨터를 찾은 모습입니다. coLinux의 coLinuxSambaServer를 더블클릭하여 열기를 합니다.

자, 삼바의 공유 디렉토리가 보이시나요? 보인다면 성공!

  1. 부팅 시 자동으로 실행되도록

이제 마무리하겠습니다. 삼바 서버는 부팅할 때 자동으로 실행하는 것이 편하기 때문에 ntsysv를 이용하여 자동 실행에 등록하겠습니다.

]# ntsysv

ntsysv가 실행되면 nmb와 smb에 체크해 줍니다.

재부팅하시고 삼바가 제대로 실행되는지 확인해 보세요.