C.4. 유닉스/리눅스 시스템에서 Debian GNU/Linux 설치하기

이 부분에서는 이 안내서의 다른 부분에 설명되어 있는 ncurses 기반 메뉴 방식 설치 프로그램을 사용하지 않고, 기존 유닉스 혹은 리눅스 시스템을 이용해 Debian GNU/Linux 배포판을 설치하는 방법을 설명합니다. 이 “크로스 설치” HOWTO는 Red Hat, Mandrake, SUSE에서 Debian GNU/Linux 배포판으로 바꾸려는 사용자들에게 필요한 부분입니다. 여기서는 유닉스 계열의 명령어를 입력하는 방법이나 파일 시스템을 돌아다니는 데 익숙해져 있다고 가정합니다. 여기서 $ 표시는 사용자의 기존 시스템에서 입력하는 명령어이고, # 표시는 데비안 chroot에서 입력하는 명령어를 말합니다.

새로 설치한 데비안 시스템을 필요에 맞게 설정하기만 하면, 기존 사용자 데이터를 (있다면) 옮겨와서 계속 사용할 수 있습니다. 즉 “다운타임이 없는” Debian GNU/Linux 설치입니다. 또 이 방법은 여러가지 부팅 미디어나 설치 미디어들이 동작하지 않는 하드웨어에 설치하는 쉬운 방법이기도 합니다.

C.4.1. 시작하기

기존 유닉스용 파티션 도구를 이용해 하드 드라이브를 필요한 대로 다시 파티션하십시오. 최소한 파일 시스템 한 개를 스왑으로 만드십시오. 콘솔만 설치하는 경우는 최소 150MB의 공간이 필요하고 X를 설치한다면 최소 300MB가 필요합니다.

파티션에 파일 시스템을 만드려면 다음과 같이 하십시오. 예를 들어 /dev/hda6 파티션에 ext3 파일 시스템을 만드는 경우라면 (여기 예제에서 루트 파티션입니다):

# mke2fs -j /dev/hda6

ext2 파일 시스템을 만드는 경우라면 -j 옵션을 빼십시오.

스왑을 초기화하고 활성화하십시오 (파티션을 사용하려는 데비안 스왑 파티션으로 바꾸십시오):

# mkswap /dev/hda5
# sync; sync; sync
# swapon /dev/hda5

한 파티션을 /mnt/debinst에 (루트 (/) 파일시스템을 설치할 위치) 마운트하십시오. 마운트 위치 이름은 마음대로 정한 것이고, 아래에서 계속 사용합니다.

# mkdir /mnt/debinst
# mount /dev/hda6 /mnt/debinst

참고

파일시스템의 (예를 들어 /usr) 일부를 별도의 파티션에 마운트하려면, 다음 단계로 넘어가기 전에 그 디렉토리를 수동으로 만들어서 마운트해야 합니다.

C.4.2. debootstrap 설치

데비안 설치 프로그램이 사용하는 도구로, 데비안 베이스 시스템을 설치하는 공식적인 방법은 debootstrap입니다. debootstrapwgetar을 사용하지만, 그 밖에는 /bin/sh만 있으면 동작합니다. 기존 시스템에 wgetar이 없으면 설치하십시오. 그리고 debootstrap을 내려 받고 설치하십시오.

RPM 기반 시스템이라면, alien으로 .deb 파일을 .rpm 파일로 변환하거나 http://people.debian.org/~blade/install/debootstrap에 있는 RPM 버전을 내려 받으십시오.

아니면, 다음 방법을 이용해 수동으로 설치할 수도 있습니다. 먼저 .deb 파일을 풀 작업용 폴더를 만드십시오:

# mkdir work
# cd work

바이너리 파일은 데비안 아카이브에 있습니다. (아키텍쳐에 맞는 파일을 선택하도록 하십시오) 꾸러미 풀에서 debootstrap .deb 파일을 내려받으시고, 꾸러미를 작업용 폴더에 복사하고, 바이너리 파일을 풀어 내십시오. 이 바이너리를 설치하려면 루트 권한이 필요할 것입니다.

# ar -x debootstrap_0.X.X_아키텍처.deb
# cd /
# zcat /full-path-to-work/work/data.tar.gz | tar xv

debootstrap을 실행하려면 glibc의 최소한의 버전은 (현재 GLIBC_2.3) 있어야 합니다. debootstrap 자체는 쉘 스크립트이지만, 이 스크립트에서 glibc가 있어야 하는 여러 가지 유틸리티를 실행합니다.

C.4.3. debootstrap 실행

debootstrap을 실행하면 필요한 파일들을 아카이브에서 직접 내려받습니다. 아래의 명령어 예제에서 http.us.debian.org/debian을 아무 데비안 아카이브 미러로 바꿀 수 있습니다. 네트워크에서 가까이 있는 미러로 하는 게 좋습니다. 미러 목록은 http://www.debian.org/misc/README.mirror에 있습니다.

sarge Debian GNU/Linux CD를 /cdrom에 마운트했다면 http URL 대신에 file URL을 쓸 수 있습니다: file:/cdrom/debian/

debootstrap 명령에서 ARCH를 다음 중의 하나로 바꾸십시오: alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390, sparc.

# /usr/sbin/debootstrap --arch ARCH sarge \
     /mnt/debinst http://http.us.debian.org/debian

C.4.4. 베이스 시스템 설정

이제 디스크에 작지만 진짜 데비안 시스템이 들어 있습니다. 이 데비안 시스템으로 chroot하십시오:

# LANG= chroot /mnt/debinst /bin/bash

C.4.4.1. 파티션 마운트하기

/etc/fstab을 만들어야 합니다.

# editor /etc/fstab

여기에 있는 예제를 필요에 맞게 수정하면 됩니다:

# /etc/fstab: static file system information.
#
# file system    mount point   type    options                  dump pass
/dev/XXX         /             ext3    defaults                 0    1
/dev/XXX         /boot         ext3    ro,nosuid,nodev          0    2

/dev/XXX         none          swap    sw                       0    0
proc             /proc         proc    defaults                 0    0

/dev/fd0         /mnt/floppy   auto    noauto,rw,sync,user,exec 0    0
/dev/cdrom       /mnt/cdrom    iso9660 noauto,ro,user,exec      0    0

/dev/XXX         /tmp          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /var          ext3    rw,nosuid,nodev          0    2
/dev/XXX         /usr          ext3    rw,nodev                 0    2
/dev/XXX         /home         ext3    rw,nosuid,nodev          0    2

mount -a 명령으로 /etc/fstab에 지정한 파일시스템을 모두 마운트하십시오. 아니면 다음 명령으로 파일시스템을 하나하나 마운트하십시오:

# mount /path   # 예를 들어: mount /usr

proc 파일시스템은 여러번 어느 위치에서든 마운트할 수 있습니다. (하지만 /proc을 관행적으로 사용합니다.) mount -a 명령을 사용하지 않았다면, 계속하시기 전에 꼭 proc을 마운트하십시오.

# mount -t proc proc /proc

ls /proc 명령을 실행하면 여러 파일이 들어 있는 디렉토리 내용을 표시합니다. 이 명령이 실패하면 chroot 바깥에서 proc을 마운트할 수 있습니다.

# mount -t proc proc /mnt/debinst/proc

C.4.4.2. 키보드 설정

키보드를 설정하려면:

# dpkg-reconfigure console-data

키보드는 chroot 안에 있을 때 설정할 수 없다는 데 유의하십시오. 다음에 다시 시작한 다음에 설정합니다.

C.4.4.3. 네트워크 설정하기

네트워크를 설정하려면, /etc/network/interfaces, /etc/resolv.conf, /etc/hostname 파일을 편집하십시오.

# editor /etc/network/interfaces 

다음은 /usr/share/doc/ifupdown/examples에 들어 있는 예제입니다:

######################################################################
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# See the interfaces(5) manpage for information on what options are
# available.
######################################################################

# We always want the loopback interface.
#
auto lo
iface lo inet loopback

# To use dhcp:
#
# auto eth0
# iface eth0 inet dhcp

# An example static IP setup: (broadcast and gateway are optional)
#
# auto eth0
# iface eth0 inet static
#     address 192.168.0.42
#     network 192.168.0.0
#     netmask 255.255.255.0
#     broadcast 192.168.0.255
#     gateway 192.168.0.1

네임서버와 search 명령을 /etc/resolv.conf에 입력하십시오:

# editor /etc/resolv.conf

간단한 /etc/resolv.conf:

search hqdom.local\000
nameserver 10.1.1.36
nameserver 192.168.9.100

시스템의 호스트이름을 입력하십시오 (2글자에서 63글자까지):

# echo DebianHostName > /etc/hostname

네트워크 카드가 여러개라면, /etc/modules에 드라미어 모듈 이름을 적당한 순서로 맞춰야 합니다. 그래야 부팅할 때 각 카드가 의도한 해당 인터페이스 이름으로 (eth0, eth1 등) 연결됩니다.

C.4.4.4. 시간대, 사용자, APT 설정하기

다음 명령으로 시간대를 설정하고, 일반 사용자를 추가하고, apt 소스를 선택하십시오

# /usr/sbin/base-config new

C.4.4.5. 로케일 설정하기

영어가 아닌 언어를 사용할 때 로케일을 설정하려면 로케일 지원 꾸러미를 설치하고 그 꾸러미를 설정하십시오:

# apt-get install locales
# dpkg-reconfigure locales

주의: 이 명령을 실행하기 전에 (즉 base-config 단계 전에) apt를 설정해야 합니다. ASCII 혹은 latin1 이외의 문자셋을 사용하는 로케일을 사용하려면 그 전에 적당한 지역화 HOWTO를 참고하십시오.

C.4.5. 커널 설치

이 시스템을 부팅하려면, 리눅스 커널과 부트로더가 있어야 합니다. 다음 명령으로 미리 꾸러미로 만들어져 있는 커널을 알아보십시오:

# apt-cache search kernel-image

그리고 꾸러미 이름을 하나 골라서 설치하십시오.

# apt-get install kernel-image-2.X.X-아키텍처-따위

C.4.6. 부트로더 설정하기

Debian GNU/Linux 시스템을 부팅 가능하게 하려면, 부트로더를 설정해서 루트 파티션에서 설치한 커널을 읽어들이도록 하십시오. debootstrap은 부트로더를 설치하지 않는다는 점에 주의하십시오. 하지만 apt-get을 데비안 chroot 안에서 사용하면 부트로더를 설치할 수 있습니다.