B.4. 미리 설정 파일의 내용

이 부록에서 사용한 설정들은 http://www.debian.org/releases/etch/example-preseed.txt에 들어 있는 예제 파일에서도 구할 수 있습니다.

이 예제 파일은 인텔 x86 아키텍처용으로 만들어졌습니다. 다른 아키텍처에서 설치하는 경우, 예제의 일부는 (예를 들어 키보드 선택이나 부트로더 설치) 해당 아키텍처에서 필요 없을 수도 있고 해당 아키텍처에 맞는 debconf 값으로 바꿔야 할 수도 있습니다.

B.4.1. 지역화

지역화 설정은 initrd 미리 설정을 하는경우에만 동작합니다. 그 외의 방법을 사용하면 지역화 설정 질문을 한 다음에 미리 설정 파일을 읽어들입니다.

로케일은 언어와 국가를 지정합니다. 부팅 파라미터로 로케일을 지정하려면, locale=en_US와 같이 사용하십시오.

# 로케일은 언어와 국가를 설정합니다.
d-i debian-installer/locale string en_US

키보드 설정은 키보드 아키텍처와 키맵을 선택하는 일입니다. 대부분의 경우 기본값으로 키보드 아키텍처가 올바르게 선택되어 있으므로, 보통 미리 설정할 필요가 없습니다. 선택한 키보드 아키텍처에 대해 키맵을 올바르게 지정해야 합니다.

# 키보드 선택.
#d-i console-tools/archs select at
d-i console-keymaps-at/keymap select us
# 다른 키보드 아키텍처를 사용하는 예제.
#d-i console-keymaps-usb/keymap select mac-usb-us

키보드 설정을 건너뛰려면 console-tools/archs 값을 skip-config로 하면 됩니다. 그러면 커널 키맵을 사용하게 됩니다.

참고

2.6 커널의 입력 레이어때문에 키보드 아키텍처는 사실상 필요없게 되었습니다. 2.6 커널의 경우 “PC” (at) 키맵을 선택해야 합니다.

B.4.2. 네트워크 설정

물론 네트워크에서 미리 설정 파일을 읽어들이는 경우 네트워크 설정은 동작하지 않습니다. 하지만 CD나 USB 메모리로 부팅하는 경우에 네트워크 설정을 하는 게 더 좋을 것입니다. 미리 설정 파일을 네트워크에서 읽어들이는 경우, 커널 부팅 파라미터로 네트워크 설정을 건너 뛸 수 있습니다.

미리 설정 파일을 네트워크에서 읽어들이기 전에 특정 인터페이스에서 네트워크 부팅하려면, interface=eth1와 같이 부팅 파라미터를 사용하십시오.

네트워크를 통해 미리 설정을 하는 경우에는 (“preseed/url” 사용) 네트워크 설정을 미리 설정하는 게 보통 불가능하지만, 다음 방법을 이용해 피해갈 수 있습니다. 예를 들어 네트워크 인터페이스에 고정 주소를 부여하는 방법입니다. 다음 라인에 들어 있는 “preseed/run” 스크립트를 만들어서 미리 설정 파일을 읽어들인 후에 네트워크 설정을 다시 실행합니다:

killall.sh dhclient
netcfg

# 연결되어 있는 인터페이스를 선택합니다. 이러면 인터페이스가
# 여러 개 있는 경우 목록을 건너 뜁니다.
d-i netcfg/choose_interface select auto

# 특정 인터페이스를 선택할 경우:
#d-i netcfg/choose_interface select eth1

# DHCP 서버가 느려서 응답을 기다리다가 시간이 초과되는 경우
# 다음 설정을 쓰면 됩니다.
#d-i netcfg/dhcp_timeout string 60

# If you prefer to configure the network manually, uncomment this line and
# the static network configuration below.
#d-i netcfg/disable_dhcp boolean true

# If you want the preconfiguration file to work on systems both with and
# without a dhcp server, uncomment these lines and the static network
# configuration below.
#d-i netcfg/dhcp_failed note
#d-i netcfg/dhcp_options select Configure network manually

# 수동으로 네트워크를 설정하려면, 다음과 같이 합니다:
#d-i netcfg/disable_dhcp boolean true
#d-i netcfg/get_nameservers string 192.168.1.1
#d-i netcfg/get_ipaddress string 192.168.1.42
#d-i netcfg/get_netmask string 255.255.255.0
#d-i netcfg/get_gateway string 192.168.1.1
#d-i netcfg/confirm_static boolean true

# DHCP에서 지정한 호스트 이름과 도메인 이름이 여기에서 설정한 것보다
# 우선합니다. 하지만 DHCP에서 호스트 이름과 도메인 이름이 넘어오는
# 경우라고 해도, 여기서 값을 설정해야 질문을 하지 않게 됩니다.
d-i netcfg/get_hostname string unassigned-hostname
d-i netcfg/get_domain string unassigned-domain

# 성가신 WEP 키 대화 상자를 사용하지 않습니다.
d-i netcfg/wireless_wep string
# 일부 DHCP 서버는 호스트이름을 열쇠글처럼 사용합니다.
#d-i netcfg/dhcp_hostname string radish

B.4.3. 미러 사이트 설정

사용하는 설치 방법에 따라서, 미러 사이트는 설치 프로그램의 추가 구성 요소, 베이스 시스템을 내려받는 데 이용할 수 있고, 또 설치를 끝낸 시스템에서 /etc/apt/sources.list 파일을 설정하는 데 이용할 수 있습니다.

mirror/suite 파라미터는 설치할 시스템의 세트를 결정합니다.

mirror/udeb/suite 파라미터는 설치 프로그램의 추가 구성 요소의 세트를 결정합니다. 이 설정은 구성 요소들을 네트워크로 내려받으면서 설치에 사용한 방법에 이용한 initrd를 빌드한 그 세트일 경우에만 유용합니다. mirror/udeb/suite의 기본값은 mirror/suite와 같습니다.

# ftp의 경우, mirror/country 문자열은 설정할 필요가 없습니다.
#d-i mirror/protocol string ftp
d-i mirror/country string enter information manually
d-i mirror/http/hostname string ftp.kr.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string

# 설치할 세트
#d-i mirror/suite string testing
# 설치 프로그램을 읽어들일 세트 (옵션).
#d-i mirror/udeb/suite string testing

B.4.4. 파티션하기

하드디스크 파티션에 사용하는 미리 설정은 partman-auto에서 지원하는 방식으로 제한되어 있습니다. 디스크의 빈 공간을 파티션하거나, 전체 디스크를 파티션하거나 둘 중의 하나를 선택해야 합니다. 디스크의 구성은 미리 정의된 방식에 따라 할 수 있고, 특별히 설정한 방식을 파일로 사용할 수도 있고 미리 설정 파일에 포함할 수도 있습니다. 현재는 미리 설정으로 여러 개의 디스크를 파티션할 수 없습니다.

주의

디스크의 ID는 디스크의 드라이버를 읽어들이는 순서에 달려 있습니다. 시스템에 디스크가 여러 개 있으면, 미리 설정을 이용하기 전에 올바른 디스크를 선택하도록 하십시오.

# 시스템에 빈 공간이 있으면 거기에 한 개의 파티션을 만들 수 있습니다.
# Note: 이 템플릿은 지역화된(번역된) 값으로 미리 설정되어야 합니다.
#d-i partman-auto/init_automatically_partition \
#      가장 큰 빈 공간을 사용합니다

# 다른 방법으로, 파티션할 디스크를 지정할 수 있습니다. 장치 이름은
# DEVFS 방식이나 전통적인 DEVFS가 아닌 형식으로 지정할 수 있습니다.
# 예를 들어 첫번째 디스크를 사용하려면:
d-i partman-auto/disk string /dev/discs/disc0/disc
# 또 어떤 방법을 사용할 지 지정해야 합니다.
# 현재 가능한 방법은: "regular", "lvm", "crypto"입니다.
d-i partman-auto/method string lvm

# 만약 자동으로 파티션하려는 디스크에 예전의 LVM 설정이 남아 있다면,
# 사용자에게 경고 메세지를 보여줍니다. 이 경고도 미리 설정해서
# 없앨 수 있습니다...
d-i partman-auto/purge_lvm_from_device boolean true
# 그리고 LVM 파티션을 쓰는 순간에 확인 질문도 미리 설정합니다.
d-i partman-lvm/confirm boolean true

# 미리 정의한 파티션 방식 중의 하나를 선택할 수 있습니다.
# Note: 이 템플릿은 지역화된(번역된) 값으로 미리 설정되어야 합니다.
d-i partman-auto/choose_recipe \
       select All files in one partition (recommended for new users)
#d-i partman-auto/choose_recipe \
#       select Separate /home partition
#d-i partman-auto/choose_recipe \
#       select Separate /home, /usr, /var, and /tmp partitions

# 아니면 자신만의 파티션 방식을 만듭니다...
# 파티션 방식 형식은 devel/partman-auto-recipe.txt 파일에 있습니다.
# 파티션 방식 파일을 d-i 환경에 집어 넣을 수 있으면, 그 파일 위치를
# 지정하기만 하면 됩니다.
#d-i partman-auto/expert_recipe_file string /hd-media/recipe

# 그게 아니면, 전체 파티션 방식을 미리 설정 파일에 (논리적인) 한 줄로
# 집어넣을 수 있습니다. 다음 예는 작은 /boot 파티션을 만들고, 적당한
# 스왑 파티션을 만들고, 나머지 공간을 루트 파티션으로 사용합니다.
#d-i partman-auto/expert_recipe string                         \
#      boot-root ::                                            \
#              40 50 100 ext3                                  \
#                      $primary{ } $bootable{ }                \
#                      method{ format } format{ }              \
#                      use_filesystem{ } filesystem{ ext3 }    \
#                      mountpoint{ /boot }                     \
#              .                                               \
#              500 10000 1000000000 ext3                       \
#                      method{ format } format{ }              \
#                      use_filesystem{ } filesystem{ ext3 }    \
#                      mountpoint{ / }                         \
#              .                                               \
#              64 512 300% linux-swap                          \
#                      method{ swap } format{ }                \
#              .

# 다음과 같이 하면 partman에서 확인 질문을 하지 않고 자동으로 파티션합니다.
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
       select Finish partitioning and write changes to disk
d-i partman/confirm boolean true

B.4.5. RAID를 사용해 파티션하기

소프트웨어 RAID를 설정할 때 미리 설정을 이용할 수 있습니다. RAID 레벨 0, 1, 5를 지원하고, degraded 어레이를 만들고 비상용 어레이 및 예비 장치를 지정합니다. RAID 1을 사용한다면 GRUB을 미리 설정해서 어레이 안의 모든 장치에 GRUB을 설치할 수 있습니다. B.4.10절. “부트 로더 설치” 부분을 참고하십시오.

주의

이런 방식의 자동 파티션은 잘못되기 쉽습니다. 또 버그가 있거나 오류 처리가 빠져 있을 수도 있습니다. 여러가지 방식을 올바르게 (규칙에 맞으면서 충돌하지 않게) 설정하는 책임은 사용자에게 있습니다. 문제가 발생하면 /var/log/syslog 파일을 확인하십시오.

RAID 0 및 RAID 1은 해당 구성 요소의 개발자가 테스트했습니다. RAID 5는 테스트하지 않았습니다. 비상용 어레이 및 예비 장치가 있는 고급 RAID 설정은 약간밖에 테스트하지 않았습니다.

# 주의: 이 옵션은 베타 상태이므로 주의해서 사용해야 합니다

# 파티션 방법은 "raid"로 설정합니다.
#d-i partman-auto/method string raid
# 파티션할 디스크를 지정합니다. 디스크 모두 같은 레이아웃이므로
# 디스크 크기가 동일할 때만 아래 설정이 동작합니다.
#d-i partman-auto/disk string /dev/discs/disc0/disc /dev/discs/disc1/disc

# 그 다음 사용할 물리적 파티션을 지정합니다.
#d-i partman-auto/expert_recipe string \
#      multiraid ::                                         \
#              1000 5000 4000 raid                          \
#                      $primary{ } method{ raid }           \
#              .                                            \
#              64 512 300% raid                             \
#                      method{ raid }                       \
#              .                                            \
#              500 10000 1000000000 raid                    \
#                      method{ raid }                       \
#              .

# 마지막으로 예전에 정의한 파티션을 RAID 설정에서 어떻게 사용할 지
# 지정합니다. 논리 파티션에 대해 올바른 파티션 번호를 사용하도록 하십시오.
# 파라미터는 다음과 같습니다:
# <raidtype> <devcount> <sparecount> <fstype> <mountpoint> \
#          <devices> <sparedevices>
# RAID 레벨 0, 1, 5를 지원합니다. 각 장치는 "#"으로 구분합니다.
#d-i partman-auto-raid/recipe string \
#    1 2 0 ext3 /                                           \
#          /dev/discs/disc0/part1#/dev/discs/disc1/part1    \
#    .                                                      \
#    1 2 0 swap -                                           \
#          /dev/discs/disc0/part5#/dev/discs/disc1/part5    \
#    .                                                      \
#    0 2 0 ext3 /home                                       \
#          /dev/discs/disc0/part6#/dev/discs/disc1/part6    \
#    .

# 다음과 같이 하면 파티션 프로그램에서 확인 질문을 하지 않고 파티션합니다.
d-i partman-md/confirm boolean true
d-i partman/confirm_write_new_label boolean true
d-i partman/choose_partition \
       select Finish partitioning and write changes to disk
d-i partman/confirm boolean true

B.4.6. 시계 및 시간대 설정

# 하드웨어 시계를 UTC로 할 지 여부를 결정합니다
d-i clock-setup/utc boolean true

# $TZ로 설정 가능한 값은 뭐든지 쓸 수 있습니다. 설정 가능한
# 값은 /usr/share/zoneinfo/ 아래의 내용을 참고하십시오.
d-i time/zone string US/Eastern

B.4.7. APT 설정

/etc/apt/sources.list의 설정과 기본 설정 옵션은 설치 방법과 그 이전의 질문에 대한 대답에 따라 완전히 자동화됩니다. 추가적으로 다른 레파지토리를 지정할 수 있습니다.

# non-free와 contrib 소프트웨어를 설치할 수 있습니다.
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true
# 네트워크 미러를 사용하지 않으려면 다음의 주석을 지우십시오.
#d-i apt-setup/use_mirror boolean false
# 보안 소스를 설치하지 않으려면 아래의 주석을 지우고, security.debian.org가
# 아닌 다른 서버를 사용하려면 호스트이름을 추가하십시오.
#d-i apt-setup/security_host string

# 추가 레파지토리, local[0-9] 사용가능
#d-i apt-setup/local0/repository string \\
#       deb http://local.server/debian stable main
#d-i apt-setup/local0/comment string local server
# deb-src 줄을 만듭니다
#d-i apt-steup/local0/source boolean true
# 가까운 저장소의 공개키 URL. 키를 제공하지 않으면 APT가 인증되지 않은
# 저장소에 대해서 오류 메세지를 출력하고 관련 sources.list 줄을 주석
# 처리합니다.
#d-i apt-setup/local0/key string http://local.server/key

B.4.8. 계정 설정

루트 계정의 열쇠글과 맨 처음 만들게 될 일반 사용자의 이름과 열쇠글도 미리 설정할 수 있습니다. 열쇠글의 경우 원본 텍스트를 그대로 쓸 수도 있고 MD5 해시값을 쓸 수도 있습니다.

주의

미리 설정한 열쇠글은 안전하지 않습니다. 미리 설정 파일을 읽을 수 있는 사람은 열쇠글을 알 수 있기 때문입니다. MD5 해시를 사용하면 보안 측면에서 약간 낫지만, MD5 해시 역시 열쇠글을 계속해서 입력해 보는 방식의 공격에 약하므로 제대로 된 보안이라고 할 수 없습니다.

# 루트 계정을 만들지 않고 넘어갑니다.  (일반 유저는 sudo를 사용할 
# 수 있습니다.).
#d-i passwd/root-login boolean false
# 아니면 일반 사용자를 생성하지 않고 넘어갈 수 있습니다.
#d-i passwd/make-user boolean false

# 루트 열쇠글, 열쇠글 원문 텍스트를 직접 쓸 수도 있고
#d-i passwd/root-password password r00tme
#d-i passwd/root-password-again password r00tme
# 아니면 MD5 해시로 암호화된 열쇠글을 쓸 수도 있습니다.
#d-i passwd/root-password-crypted password [MD5 hash]

# 아니면 일반 사용자 계정을 하나 만듭니다.
#d-i passwd/user-fullname string Debian User
#d-i passwd/username string debian
# 일반 사용자 열쇠글, 열쇠글 원문 텍스트를 직접 쓸 수도 있고
#d-i passwd/user-password password insecure
#d-i passwd/user-password-again password insecure
# 아니면 MD5 해시로 암호화된 열쇠글을 쓸 수도 있습니다.
#d-i passwd/user-password-crypted password [MD5 hash]

passwd/root-password-cryptedpasswd/user-password-crypted 변수도 그 값으로 “!”을 써서 미리 설정할 수 있습니다. 이 경우 연관된 게정은 사용할 수 없습니다. 루트 계정의 경우 이렇게 하는 게 편리할 수도 있습니다. 물론 이 경우 또 다른 방법으로 시스템 관리를 할 수 있거나 루트 로그인을 할 수 있는 다른 방법이 있어야 합니다. (예를 들어 SSH 키 인증을 쓰거나 sudo를 사용하는 방법)

열쇠글의 MD5 해시는 다음 명령으로 만들 수 있습니다.

$ echo "r00tme" | mkpasswd -s -H MD5

B.4.9. 기본 시스템 설치

이 상태에서는 미리 설정할 수 있는 부분이 별로 많지 않습니다. 유일하게 신경 쓸 부분은 커널 설치에 관한 질문입니다.

# 2.6 커널의 initrd를 만드는 initramfs를 선택합니다
#d-i base-installer/kernel/linux/initramfs-generators string yaird

B.4.10. 부트 로더 설치

# GRUB은 (x86용) 기본 부트로더입니다. GRUB이 아니라 LILO를 설치하려면,
# 다음의 주석을 지우십시오:
#d-i grub-installer/skip boolean true

# 다음과 같이 설정하는 게 안전합니다. 다음과 같이 하면 컴퓨터에 다른 운영
# 체제를 찾지 못한 경우 자동으로 GRUB을 MBR에 설치합니다.
d-i grub-installer/only_debian boolean true

# 다음과 같이 하면 다른 운영 체제가 있더라도 GRUB을 MBR에 설치합니다.
# 다른 운영 체제를 부팅할 수 없을 수도 있기 때문에 좀 덜 안전한 방법입니다.
d-i grub-installer/with_other_os boolean true

# 다른 방법으로 MBR이 아닌 위치에 설치하려면, 다음 주석을 지우고
# 편집하십시오.
#d-i grub-installer/only_debian boolean false
#d-i grub-installer/with_other_os boolean false
#d-i grub-installer/bootdev  string (hd0,0)
# GRUB을 여러 디스크에 설치하려면:
#d-i grub-installer/bootdev  string (hd0,0) (hd1,0) (hd2,0)

B.4.11. 꾸러미 선택

사용할 수 있는 태스크는 원하는 대로 설치할 수 있습니다. 현재 이 문서를 쓰는 시점에 사용할 수 있는 태스크는 다음과 같습니다:

  • 표준 시스템

  • 데스크탑

  • gnome-desktop

  • kde-desktop

  • 웹 서버

  • 인쇄 서버

  • dns 서버

  • 파일 서버

  • 메일 서버

  • SQL 데이터베이스

  • 노트북 컴퓨터

태스크를 설치하지 않을 수도 있고, 다른 방법으로 꾸러미들을 설치할 수 있습니다. 표준 시스템 태스크는 항상 포함하시길 권장합니다.

태스크로 설치한 꾸러미 외에 꾸러미를 더 설치하려면, pkgsel/include 파라미터를 사용하면 됩니다. 이 파라미터의 값은 쉼표나 공백으로 구분할 수 있으므로, 커널 명령행에서도 쉽게 사용할 수 있습니다.

tasksel tasksel/first multiselect standard, desktop
#tasksel tasksel/first multiselect standard, web-server
#tasksel tasksel/first multiselect standard, kde-desktop

"# 추가로 설치할 꾸러미들
"#d-i pkgsel/include string openssh-server build-essential\n"
"\n"
# 설치 프로그램은 버전에 따라 무엇을 설치했는지 보고서를 보낼 수 있습니다.
# 기본값은 보고하지 않는 것이지만, 보고서를 보내면 데비안 프로젝트에서
# 어떤 소프트웨어가 유명하고 CD에 포함하는 게 좋을 지 결정하는 데 도움이
# 됩니다.
#popularity-contest popularity-contest/participate boolean false

B.4.12. 첫번째 단계 설치 끝내기

# 설치가 끝났다는 마지막 메세지를 표시하지 않습니다.
d-i finish-install/reboot_in_progress note

# 다음과 같이 하면 다시 시작할 때 CD를 빼지 않습니다.
# 경우에 따라서는 CD를 빼지 않는 게 좋을 수 있습니다.
#d-i cdrom-detect/eject boolean false

B.4.13. X 설정

데비안의 X 설정을 미리설정할 수도 있지만, 해당 컴퓨터의 비디오 하드웨어에 대한 지식이 필요합니다. 데비안의 X 설정 프로그램은 모든 것을 자동 설정하지 못합니다.

# X는 일부 카드에 대해서 올바른 드라이버를 자동 검색할 수 있지만, 미리 
# 설정의 경우에는 자동 검색한 것보다 우선합니다. 아직도 vesa는 대부분의
# 경우에 동작합니다.
#xserver-xorg xserver-xorg/config/device/driver select vesa

# 마우스 자동 검색은 좀 위험한 부분이 있습니다. 실패하면 X가 계속해서
# 다시 시도합니다. 그러므로 미리 설정을 하면 마우스를 검색하지 못했을
# 때 무한루프테 빠질 가능성이 있습니다.
#xserver-xorg xserver-xorg/autodetect_mouse boolean true

# 모니터 자동 검색을 하는 게 좋습니다.
xserver-xorg xserver-xorg/autodetect_monitor boolean true
# LCD 디스플레이라면 다음 줄의 주석을 없애십시오.
#xserver-xorg xserver-xfree86/config/monitor/lcd boolean true
# X의 모니터 설정은 세 가지 방법이 있습니다. 다음은 "medium"으로 미리
# 설정하는 방법이고 언제나 사용할 수 있습니다. "simple"은 사용할 수
# 없을 수도 있고, "advanced"는 너무 많이 물어봅니다.
xserver-xorg xserver-xorg/config/monitor/selection-method \
       select medium
xserver-xorg xserver-xorg/config/monitor/mode-list \
       select 1024x768 @ 60 Hz

B.4.14. 기타 꾸러미 미리 설정

# 어떤 소프트웨어를 설치하느냐에 따라, 혹은 설치하는 중에 무언가 잘못되는
# 경우, 다른 질문을 물어볼 수도 있습니다. 물론 이 질문도 미리 설정할 수
# 있습니다. 설치하는 동안 물어볼 수 있는 모든 질문의 목록을 받고 싶다면, 
# 설치를 한 다음에 다음 명령어를 실행하십시오:
#   debconf-get-selections --installer 
> file
#   debconf-get-selections 
>
> file