데비안 V2.1 R2 설치 및 셋업

리눅스 월드 편집부

참고 사항 : 이 글은 리눅스 월드 '99년 11월호 기사이다.
                이 글 전체를 홈페이지나 통신, 다른 인쇄물에 올릴 수 있으나 수정하여서는 안된다.
                일부만을 인용할 경우는 리눅스 월드 '99년 11월호에 실린 글 임을 명시 하여야 하며,
                리눅스 월드 홈페이지URL(http://www.linuxlab.co.kr) 도 표시하여야 한다.

'99년 8월호에 "인터넷 서버 설치기" 에 데비안 2.1 설치에 대한 글이 나갔으나 데비안 2.1 Rel.2가 나왔으므로 설치 및 셋업 부분을 다시 한번 설명한다.

  1. 설치에 사용한 PC

    ①셀레론 366

    ②메모리 32메가

    ③하드디스크 : primary master (/dev/hda)

    ④CD-ROM : SCSI

    ⑤랜카드 : 3com 3c905-tx(PCI)

    ⑥SCSI 콘트롤러 : AHA-2949UW(PCI)

    그래픽 카드 : Matrox G200
         

  2. 설치에 필요한 도움 얻기

    ①HTML 파일
    데비안 매뉴얼은 CD 안에 html 파일로 작성되어 있다. Binary 1번 CD를 넣고 네스케이프에서 "file → open page"를 선택 후 "choose file" 버튼을 눌러 CD-ROM 드라이브의 "install" 디렉토리에서 "install.html" 파일을 열면 설치에 필요한 모든 매뉴얼을 웹 화면으로 볼 수 있다.

    ②텍스트 파일
    위와 같은 디렉토리에 있는 install.txt 파일을 워드프로세서에서 읽으면 된다.

    ③인터넷
    http://www.debian.org/releases//i386/install 웹페이지에 가장 최신의 매뉴얼이 올려진다.
         

  3. CMOS 셋업

    ① Virus Protection
    데비안을 설치하는 동안은 disable 해야한다

    ② Shadow RAM
    리눅스는 Shadow RAM 기능을 사용하지 않는다.

    ③ Advanced Power Management
    마더보드에서 Advanced Power Management를 지원한다면 APM 사용 으로 셋팅해야한다. doze, standby, suspend, nap, sleep 모드를 disable 해야한다. 하드디스크에 대한 power-down 타이머를 disable 해야한다.

    ④ "15-16 MB Memory Hole"
    이런게 있으면 disable

    ⑤ "LFB" or "Linear Frame Buffer"
    인텔 마더보드 중에 이런 셋업이 있으면 "1 Megabyte" 로 셋팅

    ⑥ Extended vs. Expanded Memory
    리눅스는 Expanded 메모리를 사용하지 않는다.

    ⑦ 터보 스위치
    터보스위치가 있으면 사용할 것.

    ⑧ 오버 클럭킹
    CPU를 규정 속도보다 높은 속도로 셋팅하는 것은 삼가해야한다. CPU의 클럭속도를 규정보다 높일 경우 CPU에서 발생하는 열이 과도해 시스템이 다운될 확률이 높다. CPU의 규정 속도는 그 속도로 CPU를 사용할 경우 정상 작동을 보증한다는 것이므로 오버 클럭을 할 경우 이상이 발생해도 생산자에게 책임을 물을 수 없기 때문이다.

  4. 설치 방법 여기서는 설치에 CD-ROM을 사용하며, 부팅 디스켓을 만들지 않고 CD로 부팅해 모든 설치 작업을 실행한다. 이 방법을 쓰려면 PC가 CD-ROM 부팅을 지원해야 한다.
    CD-ROM 부팅이 가능하다면 CMOS 셋업에서 아래 두 부분을 셋팅해 준다.
     
     HDD Sequence SCSI/IDE    :   IDE
     
     Boot Sequence            :   CDROM,C,A
     
     (위는 AWARD BIOS를 사용하는 PC인 경우이며 피시마다 조금 씩 다르다.)
     
     
  5. 데비안 2.1 R2 Binary 1번 CD를 넣고 피시를 부팅한다.
    (binary 2번 CD로도 부팅이 가능하나 이 CD의 커널은 일부 노트북 처럼 큰 커널이 문제를 야기하는 경우만 사용하는게 좋다)

    "boot: " 메시지가 나오면 lt; enter > 하면 커널이 메모리에 올라가면서 많은 메시지가 화면에 뜬다. 이 메시지 내용은 몰라도 무관하니 자세히 볼 필요는 없다.
         

  6. display 선택 메뉴에서 color 나 흑백 중에서 선택한다.
    "color" 를 선택하면 화면이 칼라로 바뀐다. → Next
         
  7. Release Notes가 나온다. → Continue
         
  8. figure the Keyboard 에서 키보드를 선택 한다. → U.S. English
         
  9. Partition a Hard Disk

    이미 하드디스크에 리눅스 Swap 파티션 및 네이티브 파티션이 있으면 "Initialize and Activate a Swap Partition"이 디폴트로 선택된다( 즉 역상으로 나온다). 기존 파티션을 그대로 쓰려면 이 메뉴를 선택한다. → "10"으로 진행

    새 하드디스크이거나 기존의 파티션을 변경하거나 하드디스크에 기존에 설치했던 내용을 지우려면 "Partition a Hard Disk"를 선택한다. 즉 파티션을 새로 만든다는 뜻이다.

    ① "Partition a Hard Disk"를 선택했다면 하드가 여러 개 있으면 그 중 파티션 할 하드의 장치명을 고른다. IDE 방식의 하드가 primary master로 연결돼 있으면 /dev/hda가 장치명이다.

    ② cfdisk 0.81 버전 화면이 나온다. fdisk를 편하게 해주는 프로그램으로 보면 된다.

    ③ [new] → [Primary] → Size → [Beginning]를 선택하면 hda1이 만들어진다.
    Name 밑에 hda1이 나오고 Size가 표시된다.

    ④ 이 파티션을 swap 파티션으로 하려면 [Type] 메뉴를 선택하고 82를 입력한다.(swap 파티션은 82번이다) 화면에 아래처럼 나온다.

    ⑤ 아래 화살표키를 사용해서 Free Space에 역상 막대를 위치한 후 new → primary → size 순서로 리눅스 native 파티션을 만들고 [Bootable] 메뉴로 두 번째 파티션을 Active 해준다.

    ⑥ [ Write ] → yes 를 선택하면 파티션 테이블이 하드디스크의 마스터부트레코드에 저장된다. "Writing..." 메시지가 나오고 파티션 테이블이 하드디스크에 기록된다.

    ⑦ [Quit]를 선택하여 cfdisk 를 빠져 나온다.
         

  10. "Initialize and Activate a Swap Partition" 선택하고 "Select swap Partition" 에서 장치명을 고른다. (/dev/hda1)
         
  11. "Scan for Bad Block" 에서 Yes를 한다. → swap 파티션이 포맷된다.
         
  12. "Initialize a Linux partition" 에서 Select Partition 이 나오면 리눅스 파티션(ext2)으로 사용할 장치명을 선택한다. 파티션을 여러 개 만들었으면 여러 개의 파티션이 나온다. linux native 파티션으로 포맷한 장치가 여기에 ext2이다. /dev/hda2를 linux native로 잡았다면 /dev/hda2를 선택한다. → bad block 체크 여부를 물으면 Yes. (연습으로 설치한다면 bad block 체크를 않으면 시간이 단축된다)
    포맷이 진행된다. 하드 용량이 크면 상당한 시간이 소요된다.
         
  13. 포맷이 끝나면 /dev/hda2를 루트 파일시스템("/")으로 사용할지를 묻는다. → yes

    * 만약 하드 용량이 커 linux native 파티션이 두개 이상이면 (실린더 수치가 1024를 넘는 경우는 두개 이상을 만들어야 한다) "Alternate: Initialize a Linux partition" 메뉴를 선택해서 나머지 파티션도 포맷하고 각 파티션의 마운트 포인트를 지정한다(파티션이 여러 개 이면 보통 /usr /home /var 등에 지정한다).
         

  14. Install Operating system Kernel and Modules 에서 Installation Medium을 선택한다
    → cdrom (CD-ROM을 넣는다)
  15. cd-rom 장치명을 묻는다.
    IDE CD는 보통 /dev/hdc(secondary master)이다. SCSI CD는 /dev/scd0 이다. SCSI CD는 부트시 해당 SCSI 콘트롤러가 인식되어야 사용이 가능하다.
         
  16. Debian archive path를 묻는다. /debian 디폴트를 선택한다.
         
  17. Select Archive path 에서 resc1440.bin 파일 위치를 묻는다.
    List : 를 선택 → ebian/dists/slink/main/disks-i386/2.1.9-1999-03-03
    커널 이미지, 드라이버 파일들이 하드에 복사된다.
         
  18. Configure Device Driver Modules
    Select category가 나온다. 여기에서는 커널에 들어있지 않은 드라이버를 모듈로 선택한다. 자신의 랜카드 드리이버를 여기서 선택할수 있다. 끝나면 exit → exit
         
  19. configure the network

    이부분은 나중에 수정이 가능하므로 결정되지 않았으면 임시로 입력해도 된다. 랜에 연결돼 있는 경우는 네트워크 관리자에게 문의하여 결정하여야 한다. 임의로 입력하면 다른 호스트와 충돌이 발생한다.

    ①Choose the Host Name : debian

    ②Network Connection에서는 리눅스 서버가 네트워크에 연결돼 있는지를 묻는다. 다이얼업이나 TT선 호스트접속 등 PPP 연결만 사용하는 경우는 NO를 선택한다. 비록 서버가 위의 연결인 경우도 서버가 랜에 연결된 경우는 yes로 한다.

    ③Domain name : linuxjournal.co.kr

    ④ip address : 192.168.1.3

    ⑤netmask : 255.255.255.0
    서브네팅을 하는 경우는 끝이 0으로 끝나지 않을수 있다.

    ⑥broadcast address :
    192.168.1.255 : 최근의 라우터에서 사용한다.
    192.168.1.0 : 예전에 나온 일부의 라우터에서 사용한다.

    ⑦게이트웨이 : 192.168.1.1
    시스템이 시리얼포트를 통해 인터넷에 PPP로 연결돼면 gateway를 지정하지 않는다. 랜투랜 방식으로 인터넷과 연결돼 있다면 라우터의 이더넷 포트 쪽 IP address가 보통 gateway이다.

    ⑧DNS 서버
    리눅스에 DNS 서버를 설치할 예정이면 The system will be its own DNS server 를 선택
         

  20. 네트워크 인터페이스를 선택
    랜으로 연결시는 eth0 노트북의 경우 랜카드가 PCMCIA 이면 pcmcia를 선택
    시리얼포트를 통한 인터넷 연결인 경우는 ppp
    *. 단 리눅스가 시리얼과 랜 양쪽으로 연결된 경우는 eth0
         
  21. Install the Base System
  22. Configure the base System
  23. Make linux bootable Directly from hard disk
    마스터부트 레코드를 /dev/hda에 설치하겠느냐고 묻는다 → yes(멀티부팅에 필요하다)

    make Linux the default boot partition : 여러 개의 운영체제가 있을시 리눅스를 디폴트 부팅하겠느냐이다. → yes
         

  24. Make a Boot Floppy
    비상용 플로피 디스크를 만드는게 좋다. 배드가 없는 공 디스켓을 넣는다.

    플로피를 사요하는데 시간을 절약하기위해서는 설치 후에
    /etc/driveprm에 drive0: deviation=640을 넣기를 권한다.

    부트 디스켓이 만들어졌으면 reboot the system이 나온다. 플로피를 제거하고 리부팅을 선택한다.
         

  25. 피시가 리부팅하면 CMOS 셋업에서 부팅 순서를 C → A 로 변경한다. (리눅스 CD도 일단 제거한다)
    다시 부팅이 되면 LILO 메시지가 나오고 하드에서 부팅이 진행된다.
         
  26. root의 패스워드를 입력한다.(재 확인한다)
         
  27. root외의 다른 유저를 등록하겠느냐고 묻는다. root 계정은 꼭 필요한 경우가 아니면 사용 않는게 좋다. 따라서 자신이 사용할 다른 사용자 계정을 하나 만든다.
         
  28. shadow passwords 설치 여부를 묻는다 : yes
         
  29. pcmcia 패키지 제거 여부를 묻는다 : 노트북이 아니라면 yes
         
  30. Do you want to perform this step?

    데비안 패키지 설치시 과거에는 패키지의 중요도에따라 Required, Important, Standard, Optional, Extra 등으로 분류하고 이 분류 내의 전체 패키지를 선택할 수도 있고 분류 내에서 패키지 개개를 선택할수 있었으나 이 경우 패키지의 내용을 잘 모르는 초보자는 선택에 어려움이 있었다. 따라서 2.1에서는 프로필과 타스크에의해 패키지를 분류해 놓고 그 프로필과 타스크를 선택하면 자동으로 패키지들이 선택되도록 하고 있다.

    타스크 : 타스크는 특정 일을 하는데 어떤 패키지가 필요한지를 결정해 주는 방식으로 선택하는것이다. 에를 들면 perl programming, Chinese word processing 등으로 분류해서 패키지를 선택하는 방식이다.

    여러 개의 타스크를 선택 가능하다.

    프로필 : 리눅스 사용 목적 또는 형태로 분류하는 것이다. 예를들어 소프트웨어 개발용으로 리눅스를 사용할지, 인터넷 서버용으로 쓸지, 워크스테이션 등을 지정하는것이다. 그에다라 해당 패키지가 자동 선택된다. 프로필은 한 개만 가능하다.
    타스크와 프로필을 지정한 후에는 이후에 나오는 dselect에서 select를 선택하지 않고 넘어가면 된다.

    여기서 yes를 하면 타스크 및 프로필 선택 메뉴가 나온다.
    No를 하면 dselect 메뉴가 나오고 여기서 select를 선택해 예전처럼 중요도에 따른 패키지 선택을 할수 있다.
         

  31. dselect 메뉴가 나온다.

    타스크나 프로필에의해 이미 패키지를 선택했다면 dselect에서 [S]elect 단계를 생략하고 [A]ccess에서 [U]pdate → [I]nstall로 진행해도 된다.

    [dselect] 초기 화면

     

    Debian Linux `dselect' package handling frontend.
     
     
     
       0. [A]ccess      Choose the access method to use.
     
       1. [U]pdate      Update list of available packages, if possible.
     
       2. [S]elect      Request which packages you want on your system.
     
       3. [I]nstall     Install and upgrade wanted packages.
     
       4. [C]onfig      Configure any packages that are unconfigured.
     
       5. [R]emove      Remove unwanted software.
     
       6. [Q]uit        Quit dselect.
     

    * dselect 사용법은 위의 데비안 강좌를 참고하기 바란다.
    잘 모르면 위의 번호 순서대로 실행한다. 각 단계마다 help 키를 누르면 사용법이 나온다.

    1. access는 리눅스 패키지 원본이 있는 위치(장치명)을 지정한다.
      1. CD-ROM을 선택하면 cd-rom 장치명을 묻는다. (/dev/cdrom)
        * cd 1번을 넣는다.
      2. Distribution top level : /debian/dists/stable
        Enter contrb binary dir : none
        None-free binary ir : none
        Non-US binary dir : none
        Local binary dir : none
    2. Update는 하드디스크에 설치된 패키지의 목록을 재 구성한다. - < enter >
    3. Select 선택 : 타스크나 프로필 메뉴에서 선택한 경우는 이 단계는 생략해도 된다. 타스크나 프로필에서 선택 한 경우에도 보다 상세한 선택이 필요하면 여기에서 재 지정하면 된다.
      1. 선택하면 안내문이 나온다 -> space 키를 누르면 넘어간다.
      2. main package listing이 나온다.
      3. 패키지 선택 법 :
        • "M" 밑에 "*"이 있는 패키지는 설치되는 패키지이다. "_"는 설치되지 않는 패키지다.
        • 설치를 하려면 "+" 키를 누른다. 설치에서 제외하려면 "-" 키를 누른다.
        • Important, standard 항목에 있는 패키지는 설치하는게 좋다.

        deslect에서 선택 않은 패키지도 설치가 끝난 후 다시 DSELECT 명령으로 설치가 가능하므로 설치시에는 최소한으로 선택하는게 좋다.

      Select가 끝나면 를 누르면 메인 메뉴가 나온다.

    4. Install을 누르면 설치가 시작됀다.
      설치 중간에 각 패키지의 셋업에 대한 질문이 나온다. 이 부분은 설치 패키지마다 다르므로 여기에 생략한다.
    5. 설치가 끝난후 Config → Quit 하면 dselect가 종료하고 login: 이 나온다.

      root로 로긴해 shutdown -r now 명령으로 리부팅한다.

Debian 셋업

  1. 호스트네임

    서버의 이름을 변경하려면 /etc/hostname, /etc/hosts 두 곳을 고친다.
         

  2. ip address 및 라우팅 테이블

    /etc/init.d/network 파일을 수정한다. /etc/hosts 파일도 변경해야 한다.

     

    [root]/etc/init.d$ cat network
     
    #! /bin/sh
     
    ifconfig lo 127.0.0.1
     
    route add -net 127.0.0.0
     
    IPADDR=192.168.1.1
     
    NETMASK=255.255.255.0
     
    NETWORK=192.168.1.0
     
    BROADCAST=192.168.1.255
     
    GATEWAY=
     
    ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
     
    route add -net ${NETWORK}
     
    [ "${GATEWAY}" ] && route add default gw ${GATEWAY} metric 1
     

    ip aliasing을 하거나 랜카드를 여러 개 꼽는 경우도 여기에서 랜카드의 어드레스를 할당하고 라우팅 테이블을 잡아준다.

    위의 경우는 리눅스가 시리얼 포트를 통해 ppp 연결을 하므로 GATEWAY를 지정 않았다.
         

  3. DNS 서버 지정

    /etc/resolv.conf에서 지정한다.

     

    [root]/etc$ cat resolv.conf
     
    search linuxjournal.co.kr
     
    nameserver 127.0.0.1
     

    위는 리눅스에 DNS 서버가 설치돼 있는 경우다.
         

  4. 시작시 자동으로 실행되야 하는 명령

    리눅스 가동시에 자동으로 실행되야하는 사용자 스크립트는 /etc/rc.boot 디렉토리에 넣는다.

    이 디렉토리에는 설치시에 한 개의 스크립트가 들어 있다. 0setserial 이다.
    이 스크립트는 시리얼포트를 초기화하는 명령들이 들어 있다. 시리얼 포트를 셋업하려면 여기에 넣는다.

    이 디렉토리의 스크립트는 알파벳 순으로 실행되므로 만들 때 순서를 주의해야한다. 예를들어 PPP 연결을 할 때 먼저 시리얼 포트 셋업이 이루어지고 다음에 다이얼링이 이루어 지도록 스크립트 순서를 조정해야한다.

    필자의 경우 ip masquerade 설정이나 부팅시 자동으로 TT선이나 전용선으로 PPP 연결을 하게 하는 명령들을 여기에 넣는다.
         

  5. /etc/rc?.d 디렉토리

    위의 rc.boot 디렉토리는 사용자가 만든 스크립트이지만 시스템에 필수적인 명령들이나 인터넷 데몬 등은 /etc/rc?.d 디렉토리에서 다룬다.

    rc2.d 디렉토리에는 멀티유저 모드에서 데몬을 실행시키는 명령들이 있고 rc6.d 에는 시스템 셧 다운시 데몬을 종료시키는 명령이 있다.

    S로 시작하는 명령은 데몬을 실행하고(start) K로 시작하는 명령은 데몬을 종료시킨다. (Kill) 단 이 명령들은 실제로는 /etc/init.d에 있는 관련 스크립트에 start 또는 stop 옵션을 넣어 실행시킨다.

    예를 들어 /etc/rc2.d 디렉토리의 아파치 웹서버 실행 명령을 보자

    S91apache → ../init.d/apache

    이 명령은 단지/etc/init.d 에 있는 apache 란 script에 start란 인자를 주어 실행하는 것에 불과하다.

    시스템 셧 다운시에 실행되는 /etc/rc.6 디렉토리의 아파치 종료 명령을 보자.

    K20apache -> ../init.d/apache

    이 명령은 /etc/init.d/apache 스크립트에 stop 인자를 주어 실행시키는 것이다.

    보다 자세한 사항은 '99년 8월호 "리눅스 부팅 심층 분석"에 나와 있다.
         

  6. 랜카드를 두 개 꼽을 때

    PCI 가 아닌 ISA 랜카드가 두개 있으면 리눅스에서 둘 다 인식시키기 힘들다.
    이 때는 일단 랜카드 셋업 프로그램(보통은 도스용) 을 돌려 PNP를 disable 하고서 셋업을 자동으로 잡아 준다. 다음에 진단 프로그램을 돌려 IRQ 및 IO address 충돌 여부를 점검한다.

    다음 리눅스에서 부팅시 두 개가 모두 인식되는지 확인한다. 랜카드가 인식돼면 아래 메시지가 두개 나온다.

     

    eth0: 3c509 at 0x300 tag 1, 10baseT port, address  00 60 8c ec 79 4f, IRQ 10.
     
    3c509.c:1.16 (2.2) 2/3/98 becker@cesdis.gsfc.nasa.gov.
     

    (두 번째는 eth1이 나와야한다.)

    두 개가 안잡히면 /etc/lilo.conf에 아래 라인을 추가하고 lilo 명령을 실행한다.

    append="ether=10,0x300,eth0 ether=5,0x200,eth1"

    위는 3com의 랜카드의 경우로서 10은 IRQ, 0x300은 IO address이다.

    두 번째 랜카드의 ip address 및 라우팅 테이블을 추가하려면 /etc/init.d/network 파일에 아래 라인을 추가한다.

     

    ifconfig eth1 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255
     
    route add -net 192.168.1.0
     
  7. IP forwarding

    데비안 시스템을 라우터로 사용하려면(ppp 서버로 사용하거나, IP masquerade 사용 시) ip forwarding이 enable 되야한다. 아래 방법을 써서 ip forwarding을 enable 한다.

    /etc/rc.boot 디렉토리에 2ip_forward란 스크립트를 만들고 chmod 755 명령을 준다. 내용은 다음과 같다.

     

    #!/bin/bash
     
    echo "1" > /proc/sys/net/ipv4/ip_forward
     
  8. 비상 부트/ 수선

    루트 패스워드를 잊었거나 파일을 잘못 수정해 부팅이 안돼면 아래 방법으로 수선한다.

    1. CD 부팅이 지원되면 1번 CD로 부팅해 키보드 셋팅 메뉴가 나올 때 "Excute a Shell" 을 선택하면 쉘 프롬프트가 나온다.
    2. mount /dev/hda2 /mnt (root 파일 시스템이 /dev/hda2에 설치돼 있을 때)
    3. /mnt 디렉토리에서 "ae 파일명" 으로 수정을 한다.