이 부분에서는 (이 안내서의 다른 부분에 설명한) ncurses 기반 메뉴 방식 설치 프로그램을 사용하지 않고, 기존 유닉스 혹은 리눅스 시스템을 이용해 데비안 GNU/리눅스 배포판을 설치하는 방법을 설명합니다. 이 “크로스 설치” 하우투는 Red Hat, Mandrake, SUSE에서 데비안 GNU/리눅스 배포판으로 바꾸려는 사용자에게 필요한 부분입니다. 여기서는 유닉스 계열의 명령어를 입력하는 방법이나 파일 시스템을 돌아다니는 데 익숙해져 있다고 가정합니다. 여기서 $
표시는 사용자의 기존 시스템에서 입력하는 명령어이고, #
표시는 데비안 chroot에서 입력하는 명령어를 말합니다.
새로 설치한 데비안 시스템을 필요에 맞게 설정하기만 하면, 기존 사용자 데이터를 (있다면) 옮겨와서 계속 사용할 수 있습니다. 즉 “다운타임이 없는” 데비안 GNU/리눅스 설치입니다. 또 이 방법은 여러가지 부팅 미디어나 설치 미디어가 동작하지 않는 하드웨어에서 좋은 설치 방법입니다.
이 과정은 대부분을 수동으로 해야 하므로, 시스템의 수많은 기초적인 설정을 직접 해야 합니다. 이렇게 하려면 보통 방법으로 설치할 때 필요한 것보다 데비안과 리눅스에 대한 지식이 훨씬 더 많이 필요합니다. 또 이렇게 설치한 시스템이 보통 방법으로 설치한 것과 완전히 동일할 거라고 기대해서도 안 됩니다. 또 이 과정은 시스템을 준비하는 기초 단계일 뿐이고, 추가로 설치 및 설정 과정이 더 필요할 수도 있습니다.
기존 유닉스용 파티션 도구를 이용해 하드 드라이브를 필요한 대로 다시 파티션하십시오. 최소한 파일 시스템 한 개를 스왑으로 만드십시오. 콘솔만 설치하는 경우는 약 350MB의 공간이 필요하고 X를 설치한다면 약 1GB가 (그놈이나 KDE같은 데스크탑 환경을 설치한다면 이보다 더) 필요합니다.
그리고 파티션에 파일 시스템을 만드십시오. 예를 들어 /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) 별도의 파티션에 마운트하려면, 다음 단계로 넘어가기 전에 그 디렉토리를 수동으로 만들어서 마운트해야 합니다.
데비안 베이스 시스템을 설치할 때 데비안 설치 프로그램이 사용하는 프로그램은, 공식적으로 debootstrap입니다. debootstrap은 wget과 ar을 사용하지만, 그 밖에는 /bin/sh
와 기본 유닉스/리눅스 도구[20]만 있으면 됩니다. 기존 시스템에 wget과 ar이 없으면 설치하십시오. 그리고 debootstrap을 다운로드하고 설치하십시오.
아니면 다음 방법을 이용해 수동으로 설치할 수도 있습니다. 먼저 .deb 파일을 풀 작업용 폴더를 만드십시오:
# mkdir work # cd work
바이너리 파일은 데비안 아카이브에 있습니다. (아키텍처에 맞는 파일을 선택하도록 하십시오.) 패키지 풀에서 debootstrap .deb 파일을 다운로드하고, 패키지를 작업용 폴더에 복사하고, 파일을 풀어 내십시오. 이 파일을 설치하려면 루트 권한이 필요합니다.
# ar -x debootstrap_0.X.X_all.deb # cd / # zcat /full-path-to-work/work/data.tar.gz | tar xv
debootstrap을 실행하면 필요한 파일을 아카이브에서 직접 다운로드합니다. 아래의 명령어 예제에서 ftp.kr.debian.org/debian
을 아무 데비안 아카이브 미러로 바꿀 수 있습니다. 네트워크에서 가까이 있는 미러로 하는 게 좋습니다. 미러 목록은 http://www.debian.org/misc/README.mirrors에 있습니다.
lenny 데비안 GNU/리눅스 CD를 /cdrom
에 마운트했다면 http URL 대신에 file URL을 쓸 수 있습니다: file:/cdrom/debian/
debootstrap 명령에서 ARCH
를 다음 중의 하나로 바꾸십시오: alpha
, amd64
, arm
, armel
, hppa
, i386
, ia64
, m68k
, mips
, mipsel
, powerpc
, s390
, sparc
.
# /usr/sbin/debootstrap --arch ARCH lenny \ /mnt/debinst http://ftp.us.debian.org/debian
이렇게 하면 디스크 안에 임시 시스템이 아니라 완전한 데비안 시스템이 갖춰졌습니다. chroot로 그 안에 들어갑니다:
# LANG=C chroot /mnt/debinst /bin/bash
chroot로 들어간 다음에 터미널 정의를 데비안 베이스 시스템과 맞게 맞춰야 할 것입니다. 예를 들어:
# export TERM=xterm-color
이렇게 하면 /dev/
에는 아주 기초적인 장치 파일만 들어 있게 됩니다. 다음 단계로 진행하려면 장치 파일이 몇 개 더 필요합니다. 여러가지 방법이 있고, 이 중에 어떤 방법을 이용할 지는 설치에 사용하는 호스트 시스템이 무엇이냐에 따라, 그리고 모듈식 커널을 이용할 것인가 아닌가, 그리고 새 시스템에 동적인 (예를 들어 udev
사용) 장치 파일을 사용할 지 고정 장치 파일을 사용할 지에 따라 달라집니다.
사용할 수 있는 옵션 몇 가지를 설명하면:
다음 명령으로 기본적인 고정 장치 파일을 만듭니다
# cd /dev # MAKEDEV generic
MAKEDEV를 이용해 수동으로 장치 파일을 직접 지정해서 만듭니다
호스트 시스템의 /dev를 대상 시스템의 /dev 디렉토리에 연결합니다. 어떤 패키지는 postinst 스크립트를 실행하면서 장치 파일을 만들 수도 있습니다. 그러므로 이 옵션은 주의해서 사용해야 합니다.
/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 /media/floppy auto noauto,rw,sync,user,exec 0 0 /dev/cdrom /media/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
현재 데비안 시스템은 /media
아래에 이동식 미디어의 마운트 위치가 들어 있지만, /
에 호환성 유지를 위해 심볼릭 링크를 만들어 놓았습니다. 필요하면 이 심볼릭 링크를 만드십시오. 예를 들어:
# cd /media # mkdir cdrom0 # ln -s cdrom0 cdrom # cd / # ln -s media/cdrom
proc 파일 시스템은 여러번 어느 위치에서든 마운트할 수 있습니다. (하지만 /proc을 관행적으로 사용합니다.) mount -a
명령을 사용하지 않았다면, 계속하시기 전에 꼭 proc을 마운트하십시오.
# mount -t proc proc /proc
ls /proc
명령을 실행하면 여러 파일이 들어 있는 디렉토리 내용을 표시합니다. 이 명령이 실패하면 chroot 바깥에서 proc을 마운트할 수 있습니다:
# mount -t proc proc /mnt/debinst/proc
/etc/default/rcS
에 파일에 들어 있는 옵션입니다. 하드웨어 시계를 UTC로 설정할 지, 지역별 시간으로 설정할 지 판단합니다. 다음 명령으로 이 부분을 설정하고, 해당 지역의 시간대를 설정합니다.
# editor /etc/default/rcS # tzconfig
네트워크를 설정하려면, /etc/network/interfaces
, /etc/resolv.conf
, /etc/hostname
과 /etc/hosts
파일을 편집하십시오.
# 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 nameserver 10.1.1.36 nameserver 192.168.9.100
시스템의 호스트이름을 입력하십시오 (2글자에서 63글자까지):
# echo DebianHostName > /etc/hostname
그리고 IPv6를 지원하는 기본적인 /etc/hosts
파일은:
127.0.0.1 localhost DebianHostName # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
네트워크 카드가 여러개라면, /etc/modules
에 드라이버 모듈 이름을 적당한 순서로 맞춰야 합니다. 그래야 부팅할 때 각 카드가 의도한 해당 인터페이스 이름으로 (eth0, eth1 등) 연결됩니다.
debootstrap은 아주 기본적인 /etc/apt/sources.list
파일을 만드므로 추가 패키지를 설치할 수 있습니다. 하지만 이 외에 소스를 추가해야 할 경우가 있습니다. 예를 들어 보안 업데이트의 소스 패키지를 설정할 수 있습니다:
deb-src http://ftp.us.debian.org/debian lenny main deb http://security.debian.org/ lenny/updates main deb-src http://security.debian.org/ lenny/updates main
sources.list
파일을 고친 다음에 꼭 aptitude update
를 실행하십시오.
영어가 아닌 언어를 사용할 때 로캘을 설정하려면 locales
지원 패키지를 설치하고 그 패키지를 설정하십시오. 지금은 UTF-8 로캘 사용을 권장합니다:
# aptitude install locales # dpkg-reconfigure locales
키보드를 설정하려면 (키보드 설정이 필요한 경우):
# aptitude install console-data # dpkg-reconfigure console-data
chroot 안에서는 키보드를 설정할 수 없으니 유의하십시오. 다시 시작한 다음에 설정합니다.
이 시스템을 부팅하려면, 리눅스 커널과 부트로더가 있어야 합니다. 패키지로 만들어져 있는 커널은 다음 명령으로 찾아 보십시오:
# apt-cache search linux-image
패키지로 만든 커널을 사용하려면, /etc/kernel-img.conf
설정 파일을 미리 만드십시오. 예제 파일은 다음과 같습니다:
# Kernel image management overrides # See kernel-img.conf(5) for details do_symlinks = yes relative_links = yes do_bootloader = yes do_bootfloppy = no do_initrd = yes link_in_boot = no
이 파일 및 여러가지 옵션에 대한 자세한 정보는, kernel-package
패키지를 설치하면 생기는 해당 맨페이지를 참고하십시오. 해당 옵션 값을 시스템에 맞추시기를 권장합니다.
그리고 설치하려는 커널 패키지를 패키지 이름을 이용해 설치하십시오.
# aptitude install linux-image-2.6.26-arch-etc
패키지로 만든 커널을 설치하기 전에 /etc/kernel-img.conf
파일을 만들어 두지 않았다면, 설치하면서 몇 가지 질문을 받게 될 수 있습니다.
데비안 GNU/리눅스 시스템을 부팅 가능하게 하려면, 부트로더를 설정해서 루트 파티션에서 설치한 커널을 읽어들이도록 하십시오. debootstrap은 부트로더를 설치하지 않는다는 점에 주의하십시오. 하지만 aptitude을 데비안 chroot 안에서 사용하면 부트로더를 설치할 수 있습니다.
앞서 /dev/hda
장치 파일을 만들었다고 가정합니다. grub을 설치하는 다른 방법도 있지만, 이 부록이 다룰 범위를 벗어나는 내용입니다.
앞에서 말한 것처럼, 설치한 시스템은 아주 기초적인 시스템입니다. 시스템을 좀 더 괜찮게 만드려면, 쉬운 방법으로 “standard” 우선 순위의 모든 패키지를 설치하면 됩니다:
# tasksel install standard
물론 aptitude를 이용해 패키지를 하나하나 선택해서 설치할 수도 있습니다.
설치한 다음에 /var/cache/apt/archives/
밑에 다운로드한 패키지가 많이 들어 있게 됩니다. 다음 명령을 실행하면 디스크 공간을 좀 더 확보할 수 있습니다:
# aptitude clean