· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/DebianCD-TRANS

Pseudo-Image 한글 도움말

Pseudo-Image 한글 도움말

Pseudo-Image 사용법

J.A. Bezemer, costar@panic.et.tudelft.nl

v2.0, 23 September 1999 박양배, godyang@kldp.org v1.0, 2000년 12월 19일
Pseudo-Image Kit는 패키지들로부터 데비안 CD 이미지를 생성할 때 사용하는 프로그램이다. 이 글은 그 속에 포함된 사용법을 번역한 것이다. 오역이 있다면 역자로 메일을 보내시면 수정하도록 하겠다. (주의 : 이 문서는 데비안 구버전(Potato)을 위한 문서입니다. 최신 버전은 Jigdo에 관련된 문서를 참조하시기 바랍니다)

1. 배경

슈더-이미지 킷에 대한 이해를 위해서 약간의 배경 정보를 살펴보기로 한다.

1.1 파일과 미러

데비안 그누/리눅스를 설치하기 위해서는 기본적으로 2종류의 파일들이 필요하다.

설치 파일

이 파일들에는 설치 시스템, 데비안의 기본 시스템이 들어가 있다.

데비안 패키지(.deb 파일)

데비안 시스템에 설치할 패키지화된 프로그램이다. zip과 같은 파일들에 비해서 설치, 삭제가 용이하다.

이러한 파일들은 패키지 미러(Package Mirror)라 불리는 데비안 FTP 사이트를 통해서 받을 수 있다. 패키지 미러에서는 다양한 `.deb'파일을 받을 수 있다.

하지만, 이러한 패키지 미러에 접근할 수 없는 사람들도 있다. 이러한 사람은 데비안을 CD로 구할 수 있다. 이러한 CD에는 설치 파일, 데비안 패키지마 모두 포함되어 있으며, 디렉토리 구조도 패키지 미러의 FTP 사이트와 매우 흡사하다.

무작정 CD이미지가 만들어져서 배포된다면 CD배포자에게 혼란을 야기할 수 있는데, 그것을 방지하기 위해 공식 CD 이미지(Official CD images)를 제공한다. 이 이미지는 전세계적으로 규격화되어 있다. 공식 CD 이미지는 여러 데비안 CD 이미지 미러에서 받을 수 있다. 주의해야 할 것은 이러한 데비안 CD 이미지 미러는 패키지 미러와는 다르다는 것이다. 대부분의 패키지 미러에서는 CD 이미지를 제공하지 않는다.

CD 이미지를 받기 위해서 알아보면, 패키지 미러와 CD 이미지 미러 둘 다 필요하다. 패키지 미러는 아래의 사이트에서 찾을 수 있다.

http://www.debian.org/distrib/ftplist

CD 이미지 미러는 아래의 사이트에서 찾을 수 있다.

http://cdimage.debian.org/rsync-mirrors.html

이 두 개의 리스트에서 당신과 가장 빠른 곳을 찾아야 한다. 보통 가장 가까운 곳이 빠르다. 그리고 그 주소는 잠시 후에 다시 사용하므로 어디다가 적어두는 것이 좋다. FTP 사이트를 선택하는 것을 추천하지만 속도가 빠른 HTTP사이트를 선택하는 것도 좋다. 만약 자신이 패키지 미러를 직접 운영하고 있다면, 하드디스크에서 직접 읽어들이는 것도 가능하다.

1.2 슈더-이미지(Pseudo-Image)

CDROM의 내용은 매우 길고 일련된 바이트들로 되어 있다. 이러한 일련된 바이트들은 파일들, 그리고 파일들이 어디 있다는 것을 알려주는 디텍토리 구조로 구성되어 있다. `CD 이미지'는 이러한 일련된 바이트를 파일로 구현해서, 복사, 다운로드 등을 가능하게 만든 것이다. CD를 굽는 프로그램(CD Burning Program)은 단순히 일련된 바이트를 기록가능한 CD(Recordable CD)에 집어 넣는 역할을 한다.

슈더-이미지 생성 프로그램은 CD 이미지에 있는 파일들을 모두 패키지 미러(또는 로컬 하드디스크)에서 받고 이러한 파일들을 연결하는 역할을 한다. 이 방법으로 간단하게 CD 이미지를 생성한다. 여기서 패키지 미러에 없는 파일들과 디렉토리 구조는 빠진다.

1.3 RSYNC

슈더-이미지를 공식 이미지로 변환하기 위해서는, rsync라는 프로그램을 사용한다. 이 프로그램은 다른 컴퓨터의 두 파일을 비교해서 다른 부분만 전송하는 복잡한 기능을 한다.

그러나 작동하는 방법은 간단하다. 우선 로컬 파일(예 : 슈더-이미지)을 매번 8192바이트 블럭마다 체크섬을 계산한다. 그래서 외부 rsync 서버에 계산된 체크섬들을 전송한다. 서버에서는 자신의 복사본(예 : 공식 이미지)를 보고, 체크섬을 맞춰본다. 만약 체크섬이 맞다면 블럭 숫자가 전송되고, 그렇지 않다면 블럭 내용이 전송된다. 이런 식으로 로컬의 슈더-이미지와 외부 rsync 서버로부터 완벽한 이미지가 만들어진다. 네트워크 전송량은 6MB 이하로, CD전체를 전송할 때보다 부하가 매우 줄어든다. (이미지 파일의 1%)

2. 슈더-이미지 만들기

2.1 슈더 이미지 만들기

이 부분에서는 공식 CD 이미지와 유사한 슈더 이미지를 생성하는 것에 대해서 본다. 다음 부분에서는 `rsync' 프로그램을 사용해서 슈더 이미지를 공식 이미지로 변환하는 것에 대해 보게 된다.

생성된 슈더-이미지는 약 650MB 정도다. 또한 나중에 사용할 `rsync' 프로그램은 650 MB정도의 추가 여유 공간이 필요로 한다. 여유 공간이 있다면 다음에는 파일 시스템을 살펴보아야 한다. 각 프로그램들은 긴 파일이름을 사용하므로, 현재 파일 시스템이 긴 파일이름의 지원 유무를 확인한다.

예를 들어 /bigdisk에 마운트된 디스크에 650MB 이상의 공간이 있다고 가정한다. 그러면 우선 새로운 디렉토리를 생성해야 한다. (예 : /bigdisk/pseudo-image/) 다음에 슈더-이미지 킷을 그 디렉토리에 압축을 푼다.

슈더-이미지 생성 프로그램은 다른 프로그램을 같이 사용한다. FTP 다운로드는 ncftp를 사용하며, HTTP 다운로드는 wget을 사용한다. 혹시 이러한 프로그램이 깔려있지 않다면 설치해야 한다. 대부분의 배포본에는 이러한 프로그램들이 포함되어 있다. 그렇지만 만약 없다면 아래의 주소에서 각각 구할 수 있다.

http://www.probe.net/~mgleason/ncftp/

ftp://prep.ai.mit.edu/pub/gnu/wget/

만약 `ncftp'를 구할 수 없다면, DONTUSENCFTP환경 변수에 DONTUSENCFTP를 설정하면 `wget'을 대신 사용한다. 하지만 이럴 경우 FTP 서버에 부하가 걸리기 쉽다.

슈더-이미지를 생성하기 전에 우선 파일 리스트가 필요하다. 이러한 파일 리스트는 `binary-i386-1.list'와 같이 이름 붙여져 있고, 아래에서 구할 수 있다.

http://www.uk.debian.org/debian-cd/cd-images

이 디렉토리 중에 적당한 디렉토리를 찾아서 자신이 원하는 `.list'파일들을 받는다.; 약 80KB정도 크기다

`.list'파일은 일반 텍스트 형식이라서 일반 뷰어로 점검할 수 있다.

슈더-이미지 생성에 앞서, 디스크 공간을 다시 한번 확인하는 것이 좋다. 그리고 파일 이름중에 혹시 `pseudo-image', 또는 `pseudo-image.*'가 있지 않은지 확인한다.

합쳐질 파일들은 FTP나 HTTP 패키지 미러에서부터, 또는 로컬 디스크로 부터 받게 된다.; 파일과 미러부분에서 적어뒀던 주소가 이때 쓰인다.

그리고나서 슈더-이미지 킷이 설치된 디렉토리로 이동한다. (위의 예에서 보면 /bigdisk/pseudo-image/) 다음에 아래의 명령으로 이미지를 생성한다.

./make-pseudo-image <리스트 파일> <서버 디렉토리>

예를 들면

FTP 사이트를 이용할 때

./make-pseudo-image binary-i386-1.list ftp://ftp.server.org/pub/debian

HTTP 사이트를 이용할 때

./make-pseudo-image binary-i386-1.list http://www.server.org/ftp/debian

로컬 하드디스크를 이용할 때

./make-pseudo-image binary-i386-1.list /var/ftp/mirrors/debian

<서버 디렉토리>에는 반드시 `dists'라는 하위 디렉토리가 있어야 한다. 그래서 위의 예에서 본다면 각각 아래의 디렉토리들이 반드시 있어야 한다.

ftp://ftp.server.org/pub/debian/dists/

http://www.server.org/ftp/debian/dists/

/var/ftp/mirrors/debian/dists/

슈더-이미지 생성에 앞서 웹 브라우저 같은 것으로 위의 디렉토리가 제대로 되어 있는지 확인하는 것이 좋다.

이미지 생성 프로그램은 `pseudo-image' 파일을 현재 디렉토리에 생성하게 된다. 뿐만 아니라 `pseudo-image.*'와 같은 파일, 디렉토리도 생성된다. 만약 생성이 끝난다면 이 파일, 디렉토리들은 자동으로 지워진다. (만약 다른 이미지를 생성하기 원하는데, 이런 파일, 디렉토리가 남아있다면 반드시 지워줘야 한다.)

이미지 생성 시간이 꽤 걸리는데, 도중에 언제든지 중지할 수 있다. (Ctrl-C) 그리고 나중에 같은 서버는 물론, 다른 서버나 로컬 디렉토리 같은 곳에서도 다시 이어서 작업할 수 있다. 다시 이어서 작업하기 위해서는 똑같은 명령을 치면 된다. 그러면 끊어진 부분부터 다시 작업하게 된다. 이 때 반드시 이전에 생성된 `pseudo-image.*'파일을 지워서는 않된다. FTP 를 사용할 때 `ncftp' 자식 프로세스가 제대로 종료되지 않을 수 있다. 이때는 직접 강제로 프로세스를 종료시켜야 한다.

만약 파일을 찾을 수 없다면 경고 메세지가 뜬지만, 생성은 계속 된다. 만약 경고가 많이 나오면, 다른 서버를 찾아보는 것이 좋다. 모든 경고는 `pseudo-image.warnings'에 저장되므로 이 파일에서 경고 메세지를 확인할 수 있다. `pseudo-image.log'파일을 잘 보면 경고가 나오는 원인을 찾을 수도 있다. 보통 경고 몇개가 나오는데 걱정하지 않아도 된다.; `rsync'에서 데비안 CD 미러에서부터 이러한 파일을 직접 받게 된다.

만약 소스 파일들(.orig.tar.gz, .dsc, 그리고 .diff.gz 파일들)에서부터 많은 경고가 나온다면, 현재 패키지 미러가 바이너리 전용 미러일 가능성이 크다. 이럴 경우에는 종료하지 말고 끝날 때까지 기다리면 된다. 그리고 끝나면 다른 패키지 미러로부터 작업하면 그 소스 파일들만 받게 된다.

만약 마운트된 NFS 파일시스템으로부터 파일을 받는다면, 마운트 명령에 `-a rsize=8192,wsize=8192'와 같은 옵션을 추가하면 더 빠른 속도를 얻을 수 있다.; 자세한 것은 man mount에서 확인할 수 있다.

2.2 프록시

몇몇 회사, 또는 관공서에서는 직접 인터넷에 접속하는 것이 불가능할 수도 있다. 이럴 경우에는 흔히 `프록시 서버'라고 불리는 게이트웨이가 로컬 호스트의 HTTP나 FTP 요청을 포워딩하게 된다. 만약 프록시를 사용하지 않는다면 이 부분은 넘어가도 된다.

슈더-이미지 생성에서 프록시 서버를 사용하는 것은 매우 간단하다. 시작전에 몇몇 환경변수를 설정하면 된다.

우선 아래의 명령으로 다른 FTP 접근 방법을 사용한다는 것을 알려줘야 한다.

sh-like 쉘

DONTUSENCFTP=DONTUSENCFTP; export DONTUSENCFTP

csh-like 쉘

setenv DONTUSENCFTP DONTUSENCFTP

그리고 어느 프록시 서버를 사용할 것인가를 알려줘야 한다. 예를 들어 프록시 서버가 proxy.server의 8001번 포트에서 작동한다고 보면 아래와 같이 명령하면 된다.

sh-like 쉘

http_proxy=http://proxy.server:8001/; export http_proxy

ftp_proxy=http://proxy.server:8001/; export ftp_proxy

csh-like 쉘

setenv http_proxy http://proxy.server:8001/

setenv ftp_proxy http://proxy.server:8001/

만약 유저이름/패스워드 가 필요하면, `http://proxy.server:8001/'을 `http://유저 이름:패스워드@proxy.server:8001/'으로 바꾸어 주면 된다.

이러한 설정이 끝나면 make-pseudo-image 프로그램은 잘 작동한다. 프록시를 사용한다면 HTTP 패키지 미러를 선택하는 것이 속도상 이롭다.

3. 공식 이미지로 변환

3.1 RSYNC를 이용한 공식 이미지로 변환

슈더-이미지가 생성되면, 그것을 공식 이미지로 변환해야 한다.

`rsync' 프로그램은 아래에서 구할 수 있다.

http://samba.anu.edu.au/rsync/

그러나 일반적인 배포본에서는 미리 패키지가 되어 있을 것이다.

우선 아래와 같이 슈더-이미지 파일 이름을 실제 파일 이름으로 바꾸어야 한다. (아래에서 설명할 `rsync' 명령이 사용한다.)

mv pseudo-image binary-i386-1.iso

`rsync' 프로그램은 임시 파일을 생성하기 위해 추가적인 650MB 공간이 필요하다. `--temp-dir' 옵션으로 임시 파일이 저장될 곳을 직접 정할 수 있다. 자세한 것은 맨페이지를 보면 된다.

그리고나서 아래와 같이 rsync 명령을 실행한다. (한줄임)

rsync --verbose --progress --stats --block-size=8192 server.somewhere.org::debian-cd/2.1/i386/binary-i386-1.iso .

`server.somewhere.org'부분에 파일과 미러 부분에서 보았던 rsync 서버 이름으로 바꾸어야 한다.

이 명령으로 (이름 바뀐) 슈더-이미지가 공식 이미지로 변환된다. 보통 6MB이상의 네트워크 부하가 걸리지 않는다. (나중에 통계 결과를 보면 알 수 있다)

만약 rsync 서버의 파일의 위치가 제대로 되었는지 확신할 수 없다면 아래의 명령으로 `디렉토리 리스트'를 볼 수 있다.

root dir: rsync server.somewhere.org::

other dir: rsync --dry-run server.somewhere.org::debian-cd/2.1/\*

8192-바이트 블럭당 체크섬을 계산할 때는 화면상의 변화가 없다. 단지 공식 이미지가 생성될 때, 진행도가 나타난다.

다른 디렉토리에서 임시 파일을 생성한다면, 나중에 그 파일을 현재 디렉토리의 슈더-이미지 파일에 덮어 복사하게 된다. 이때도 화면상의 변화는 없다. 그 후에 임시 파일은 지워진다.

rsync에서는 버그로 보이는 것이 있어 `--temp-dir'을 지정했을 경우 재실행할 수 있다. 이럴 때는 임시 파일이 지워지기를 기다렸다가 Ctrl-C로 강제 종료하면 된다.

이러한 작업이 끝나면 아래의 명령으로 이미지가 제대로 생성되었는지 확인할 수 있다.

md5sum binary-i386-1.iso

이 명령으로 생성된 공식 이미지의 체크섬을 볼 수 있다. 이것을 `MD5SUMS'라는 파일과 비교해서 제대로 되었는지 확인하면 된다. `MD5SUMS'파일은 아래에서 구할 수 있다.

http://www.uk.debian.org/debian-cd/cd-images

(웹브라우저에서 이러한 파일들을 볼 수 있다) 만약 체크섬이 맞지 않다면 rsync를 다시 실행하면 해결할 수 있다.

`md5sum' 프로그램의 소스 코드는 아래에서 구할 수 있다.

ftp://ftp.funet.fi/pub/crypt/hash/mds/md5/

3.2 프록시

만약 프록시를 사용해야 한다면, rsync에서도 프록시를 이용할 수 있다. 여기서 비표준화된 프로토콜을 사용하기 때문에 몇몇 문제에 봉착할 수 있다.

차라리 rsync에서 프록시를 이용하는 것보다 모뎀과 같은 장치를 이용하는 것을 추천한다. 어짜피 데이터 전송량이 많지 않기 때문에, 56 kbps모뎀에서 약 20분 정도면 작업이 끝난다.

4. RSYNC 서버를 직접 운영하기

위와 같은 작업이 끝나면 공식 CD 이미지 파일의 생성이 끝난다. 그러면 다른 사람을 위해 직접 rsync 미러를 운영하는 것도 좋은 방법이다. 이러한 미러 운영은 간단하고, 시스템에 큰 부하를 주지도 않는다.

모든 공식 이미치 파일이 없어도 된다; binary-i386 이미지만 있어도 좋다.

공식 이미지가 /var/tmp/debian-cd/2.1/i386/binary-i386-1.iso 와 같이 있다고 가정하자. 그리고 /etc/rsyncd.conf 파일을 아래와 같이 수정하면 된다.

--- 절단 ---

uid = 65534

gid = 65534

[debian-cd]

path = /var/tmp/debian-cd

comment = Debian CD images

--- 절단 ---

(`man rsyncd.conf'를 해보면 더 자세한 설명을 알 수 있다.)

그리고 아래와 같은 명령으로 (루트 권한) rsync 서버를 작동하면 된다.

nice -15 rsync --daemon

이것이 전부다.

그리고 나서 아래와 같이 제대로 작동하는지 확인할 수 있다. (루트가 아님)

rsync localhost::

그러면 `debian-cd'라는 서비스가 있다는 것이 리턴되어야 한다. 그리고

rsync --dry-run localhost::debian-cd/\*

이라고 치면, `2.1'이라는 디렉토리가 리턴되어야 한다.

만약 부팅할 때마다 rsync 서버를 실행하고 싶으면, 아래의 명령을 스타트업 스크립트(Startup Scripts)에 추가하면 된다. (데비안 시스템에서는, /etc/init.d/netstd.misc가 된다)

nice -15 rsync --daemon

만약 rsync 서버가 작동한다면 아래의 주소로 메일을 보내면 된다.

debian-cd@lists.debian.org

그러면 미러 주소 리스트에 자신의 주소가 등록된다.

5. 파일 리스트 생성하기

이 부분에서는 `pi-makelist' 프로그램을 이용한다. 이 프로그램은 간단한 스크립트로 되어 있다. 데비안 CD 이미지 미러에서 구한 `.list'파일은 이러한 방법으로 생성된 것이다. 그래서 따로 생성하지 않고, 다른 데비안 CD 이미지 미러에서 구해도 된다.

명령:

pi-makelist cdimage.iso > cdimage.list

(`pi' = `pseudo-image')

이 리스트에는 FTP 사이트에 없는 파일들이 포함될 수 있다. (대부분은 포함되어 있다); 극단적인 경우에는 pi-makelist 스크립트의 끝에 있는 grep부분에 직접 추가하면 된다.

이 스크립트는 `isoinfo' 명령이 필요하다; 편의를 위해 슈더-이미지 킷에 포함되어 있다. 원본 소스는 `cdrecode'/`mkisofs'에 있으며 아래에서 구할 수 있다.

http://fokus.gmd.de/nthp/employees/schilling/cdrecord.html

6. 저작권에 대한 법적 문제

역자 : 이 부분에 대해서는 GNU General Public License를 따른다는 것만 알려주고, 나머지는 원문을 통해서 보기 바란다.


LEGALESE

   The following applies to all files in this directory, unless indicated
   otherwise:

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or (at
   your option) any later version.

   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program (the file `COPYING'); if not, write to the
   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA

   All mentioned trademarks and registered trademarks are the property of
   their respective owners, and are hereby acknowledged.

7. 역자의 말

역자 : 끝으로 원문을 제공해 주신 J.A. Bezemer께 감사를 드린다. 혹시 오역이 있다면 위에서 언급한 역자의 e-mail주소로 메일을 보내면 수정하도록 하겠다.




sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-01-28 10:51:20
Processing time 0.0242 sec