· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Docbook Sgml/CD Server-HOWTO

CD 서버 하우투

CD 서버 하우투

Randolph Tata

임은재

v1.00, 2000년 9월 23일

CD 서버 하우투는 자유롭게 이용 가능한 소프트웨어 패키지들과 리눅스로 자신만의 CD 서버를 구축하는 방법을 소개한다. CD 서버는 네트워크를 동해 다른 클라이언트들(윈도우 등)과 CD를 공유 할수 있다.

고친 과정
고침 v1.002000년 9월 23일고친이 rjt
linuxdoc sgml 에서 DocBook v3.1로 변환
고침 v0.102000년 9월 1일고친이 rjt
text/html 에서 linuxdoc sgml로 변환
고침 v0.012000년 8월 18일고친이 rjt
text/html 으로 첫버젼 발표. 커널 수정, 루프 디바이스 섹션의 추가 필요.

1. 소개

30G IBM 하드 디스크(2000년 8월 현재 160$)와 오픈 소스 기반의 CD 서버 솔루션은 $800-$4,000을 필요로 하는 소프트웨어, thin-server, CD Jukebox 솔루션을 대체할수 있다.

나는 64M 메모리를 가진 펜티엄 120 으로 CD 서버를 구축했다.


1.1. 의도하는 것

이 하우투 문서는 특히 시스템 관리자들을 위해 씌여지고, 리눅스에서의 예들을 사용했다. 이것은 루프 디바이스 또는 CD 이미지를 마운트 할수 있는 다른 Unix 에서도 작동할 것이다.


1.2. 필요한 것

CD 서버를 설정하기 위한 명령와 유틸리티들은 이미 대부분의 리눅스 배포본에 포함되어 있다.

  • 리눅스 배포본 (이 하우투 문서는 만드레이크 를 사용했다)

  • dd - 파일의 변환과 복사 (표준 유닉스 명령어)

  • mount - 파일 시스템의 마운트와 언마운트 (표준 유닉스 명령어)

  • Samba - 유닉스용 윈도우 SMB/CIFS 파일 서버

  • NFS (옵션) - 네트워크 파일 시스템 (일반적으로 리눅스 배포본에 포함되어 있음)

경고

나는 리눅스-맨드레이크 배포본 7.0을 사용했다. 이 배포본의 커널은 8개의 루프 디바이스를 지원한다. (참고 3절). 이 기본 설정으로 당신은 8개의 CD를 네트워크상에서 공유할수 있으며, 만약 8개 이상을 원한다면 약간의 일만 하면 된다.


1.3. 읽기를 권함

Using Samba : Robert Eckstein, David Collier-Brown, Peter Kelly 1st Edition November 1999, O'Reilly and Associates, Inc. ISBN 1-56592-449-5,


1.4. Copyright

CDServer-HOWTO, Copyright (c) 2000, Randolph Tata, All Rights Reserved

이 문서는 어떤 형태로든 자유롭게 복사/배포 될수 있다. 수정/의견은 저자인 Randolph Tata로 보내주기 바란다. 당신은 이 문서로 파생될수 있는 이차적 저작물을 만들고 배포할수 있다.

  • 이 문서에서 파생된 이차적인 문서는 (LDP)로 보내 (이 경우 sgml 포맷이 좋겠다) 거나 인터넷에 포스팅할수 있다. 만약 그것이 LDP가 아니라면 LDP에게 어디에 그것을 이용할 수 있는지 알리는 것이 좋겠다.

  • 이 문서에서 파생되는 어떠한 형태의 저작물은 이 문서와 같은 라이센스 또는 GPL 라이센스를 가지게 된다.

  • 원 저자와 원 배급 장소를 밝혀라.

이 문서의 번역 이외에 다른 변경,수정, 이차적 파생물은 원 저자와의 논의를 요한다.


1.5. Disclaimer

나는 이 문서로 인한 피해에 대해 책임을 지지 않는다. 이 문서의 내용을 사용하는 것은 전적으로 당신의 책임이다.

모든 저작권은 특별히 표시되어 있지 않는한 그들에게 소유되어 있다. 이 문서에서의 용어 사용은 그것들의 상표, 서비스 마크에 아무런 영향을 끼치지 않는다.

이 문서에서 거론된 상표는 그 물건에 대한 추천으로 받아 들여져 서는 않된다.

시스템의 백업/ 주기적인 백업을 권장한다.


1.6. 뉴스

이것은 이 문서의 첫번째 sgml 버젼이다. SGML 소스 추가/변경은 이 sgml 소스를 바탕으로 이루어져야 한다.

이 문서의 홈 페이지는 Open CD Server Project 이며 마지막 버젼도 이곳에서 찾을수 있다.

용량이 허락한다면 이 문서를 여러 포맷과 언어로 만드는 것은 멋진 일일 것이다. :-)


1.7. Credits

다음 분들에게 감사드린다.

Mark F. Komarinski    markk (at) linuxdoc.org         LDP Author Guide
Jorge Godoy           godoy (at) metalab.unc.edu      LDP Author Guide
David C. Merrill      dcmerrill (at) mindspring.com   LDP Author Guide
Stein Gjoen           sgjoen (at) nyx.net             HOWTO-Template
Gregory Leblanc       gleblanc (at) cu-portland.edu   HOWTO-Template
Greg Ferguson         gferg (at) sgi.com              HOWTO-Template


1.8. 번역

http://kldp.org에 이 문서의 한글 번역본이 있다.

이 문서에 대한 제안/추가는 Talcon Information Systems의 내 이메일 주소인 로 보내기 바란다.


2. 과정

개요

  • CD 이미지 파일들을 저장하기 위한 큼지막한 파티션 만들기

  • "dd" 명령어로 CD 를 이미지 파일로 저장한다.

  • CD 이미지를 마운트 한다.

  • 삼바, NFS 등을 이용해서 마운트된 디렉토리를 네크워크상에서 공유한다.


2.1. ISO 이미지 만들기

하드 디스크에서 충분히 비어 있는 파일 시스템을 고르거나, 만든다. 보통 한장의 CD 롬은 640MB의 데이타를 저장하고 있다는 것을 고려해라. 만약, 8장의 CD를 공유하려 한다면, 5.1GB 정도의 공간을 필요로 한다.

루트로 로긴 하거나, su - 하여 루트 권한으로 작업한다.

bash# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/hda5             1.4G   82M  1.3G   6% /
/dev/hda1              15M  827k   14M   6% /boot
/dev/hda7             2.4G 1008M  1.3G  43% /usr
/dev/hda8            23.6G 11.7G 11.7G  50% /home

여기서 /home 파일 시스템이 가장 많은 빈 공간을 가지고 있으므로, CD 이미지를 덤프하기에 적당하다.

 
bash# cd /home
bash# mkdir image
bash# cd image

이제, CD를 iso 이미지 파일로 복사한다. 당신은 CD 롬 디바이스명을 알아야 한다 (보통 /dev/cdrom 이거나 SCSI CD 롬일 경우 /dev/scd0). 나는 예제로 만드레이크 배포본 CD 를 사용할 것이다.

bash# dd if=/dev/cdrom of=mndrk71.iso

"if=" 는 입력 파일(디바이스), "of="는 출력 파일이다. 이 명령의 수행시 화면에 출력되는 입/출력 레코드 메세지를 볼수 있다. (i/o 에러가 없길 바란다.)


2.2. ISO 이미지 마운트 하기

다음 단계는 iso 이미지 파일을 마운트 하는 것이다. 이미지 파일을 마운트 할수 있도록 /mnt 디렉토리안에 서브 디렉토리를 만들어 주자.

bash# cd /mnt
bash# mkdir iso
bash# cd iso
bash# mkdir mndrk71

이제 만들어 놓은 디렉토리에 ISO 파일을 마운트 하자.

bash# mount -o loop -t iso9660 -r /home/image/mndrk71.iso /mnt/iso/mndrk71

"-o loop" 옵션은 블럭 디바이스로의 파일 마운트를, "-t iso9660"는 CD 롬 파일 시스템의 포맷을 뜻한다. "-r" 은 읽기 전용을 의미한다.

이제 다음과 같이 할수 있다:

bash# cd mndrk71
bash# ls -al

위 명령의 결과는 마치 CD롬을 마운트해 ls 한것과 같은 결과를 보일 것이다.


2.3. 시스템 재시동시 마다 이미지 마운트 하기

수동으로의 이미지 파일 마운트가 성공적 이었다면, 시스템 재시동시 마다 자동으로 마운트 되도록 /etc/fstab 파일을 고쳐주어야 한다 (나는 vim 을 사용했지만, Emacs, Joe, Pico , Jed등을 사용해도 된다 :-)).

bash# vim /etc/fstab

다음과 같은 라인 다음에 (당신의 CD 이미지가 마운트된 파일 시스템이 먼저 마운트 되어야 하므로)

/dev/hda8 /home ext2 defaults 1 2

다음과 같은 줄을 넣어준다:

/home/image/mndrk71.iso /mnt/iso/mndrk71 iso9660 ro,loop,auto 0 0


2.4. 삼바를 이용한 윈도우 네트워크 상의 공유

이것을 위해 당신은 삼바를 설치할 필요가 있다. 삼바 패키지는 대부분의 배포본에 포함되어 있므며, 만약 직접 컴파일해 설치하기를 원한다면 http://www.samba.org 를 방문하라.

마운트 된 CD 이미지들을 윈도우 네크워크에서 공유하기 위해 다음을 삼바 설정 파일인 /etc/smb.conf 파일에 첨가해준다.

[cdimages]
  comment = All Shared CD Images
  path = /mnt/iso
  public = yes
  writable = no

이것은 /mnt/iso 디렉토리하의 모든 서브 디렉토리들을 공유하게 될것이다. 이것을 윈도우상에서 로컬 드라이브(여기서는 I:)로 마운트 하기 위해서는, MS-DOS 프롬프트에서 다음과 같이 한다:

C:\> net use I: \\리눅스cd서버\cd이미지

이제 각각의 CD 이미지들은 윈도우상의 I: 드라이브의 서브 디렉토리로 보여질 것이다.

만드레이크 cd 이미지만을 공유하기 위해서 다음과 같이 /etc/smb.conf 를 수정한다.

[mndrk71]
  comment = Mandrake Linux 7.1
  path = /mnt/iso/mndrk71
  public = yes
  writable = no

도스 프롬프트 상에서, 다음과 같이 마운트 한다:

C:\> net use m: \\yourlinuxmachine\mndrk71

노트:

사실 smb.conf 파일은 이외에도 매우 많은 옵션을 가지고 있다. 예를 들어 암호 인증, 공유 유무등 더 안전한 설정을 할수 있다.


2.5. NFS 를 이용한 유닉스 네크워크 상의 공유

리눅스 서버에서 NFS 가 제대로 설정되어 운영되고 있다면, 다음 줄을 /etc/exports 에 추가한다:

# sample /etc/exports file
       /mnt/iso            (ro,insecure,all_squash)

이제 "showmount -e 리눅스cd서버" 명령은 /mnt/iso 를 포함하는 결과를 보여주어야 한다.


3. 루프 디바이스 추가하기

리눅스 만드레이크 배포본(7.0)은 8개의 루프 디바이스를 사용할수 있도록 커널이 컴파일 되어 있다. 만약 8개 이상의 CD 이미지를 마운트 하려면 이번장을 읽어 봐라.


3.1. 커널 고치기

커널이 지원하는 루프 디바이스의 숫자를 늘리려면 /usr/src/linux/drivers/block/loop.c 파일을 수정해야 한다.

만약, 당신이 커널 소스를 당신의 머신에서 찾을수 없다면, 배포본에 있는 커널 소스를 설치해라.

usr/src/linux/drivers/block/loop.c 파일에서 다음 라인을 찾아 필요한 만큼의 루프 디바이스 적어준다.

#define MAX_LOOP 16

커널과 모듈들을 새로이 컴파일/설치 한다. 도움이 필요하다면 /usr/src/linux/README를 읽어라.


3.2. /dev 에 루프 디바이스 만들기

mknod 명령은 /dev 에 디바이스를 만들어 준다. 루프 디바이스의 major 번호는 "7" 이고 minor 번호는 "0"으로 시작한다. 만약 당신이 /usr/src/linux/drivers/block/loop.c 에 MAX_LOOP 를 8로 설정했다면, /dev 에 loop0 에서 loop7 까지가 존재해야 한다. /dev/loop8 디바이스를 만들기 위해서는 다음과 같이 한다.

mknod -m660 /dev/loop8 b 7 8

새로운 파일의 소유권, 퍼미션을 확인하자. 다음과 같은 명령으로 바꿀수 있다.

chown root.disk /dev/loop8

다음 명령으로 퍼미션을 바꿀수 있다:

chmod 666 /dev/loop8




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2012-12-30 05:32:17
Processing time 0.0281 sec