더북(TheBook)

나머지 사용자 계정과 관련된 소소한 설정 항목입니다. user-uid는 사용자 계정의 UID를 변경하고, allow-password-weak는 권장할 만한 패스워드가 아닌 경우 사용자에게 경고할지 결정합니다. user-default-groups는 사용자 계정이 속할 그룹을 선택하고 encrypt-home은 사용자 계정의 홈 디렉터리를 암호화할지 결정합니다.

#d-i passwd/user-uid string 1010
#d-i user-setup/allow-password-weak boolean true
#d-i passwd/user-default-groups string audio cdrom video
d-i user-setup/encrypt-home boolean false

패키지 저장소에 대한 설정은 건너뛰고 설치할 패키지를 결정합니다. tasksel은 주요 패키지를 한꺼번에 설치하는 설정 과정입니다. 그래픽 환경을 제외한 서버 패키지만 설치하기 위해 ubuntu-desktop 대신 ubuntu-server를 입력했습니다. Apache와 MySQL, PHP 패키지를 함께 설치하는 lamp-server처럼 설치할 패키지 그룹을 지정할 수도 있습니다.

tasksel tasksel/first multiselect ubuntu-server
#tasksel tasksel/first multiselect lamp-server, print-server
#tasksel tasksel/first multiselect kubuntu-desktop
Tip

그래픽 환경을 제공하는 우분투 데스크탑 패키지를 설치하려면 ‘초보 시스템 관리자의 일기 | 자동 설치 문제 해결하기’를 참고하기 바랍니다.

pkgsel은 추가로 설치할 개별 패키지를 지정하는 과정입니다. include에 패키지 이름을 입력할 수 있습니다. 주석을 해제하고 시스템 설치 후 바로 원격에서 접속 가능하도록 openssh 서버( openssh-server)와 프로그램 설치에 필요한 라이브러리 build-essential, 게스트를 정상적으로 종료하기 위해 acpid를 설치합니다. 이 외에 더 설치하고 싶은 패키지가 있으면 여기에 추가합니다.

d-i pkgsel/include string openssh-server build-essential acpid
Tip

‘가상 머신 관리자로 게스트 관리하기’에서 살펴봤듯이 가상 시스템에서 게스트 전원 관리를 위해 acpid 패키지가 필요합니다. 여기에서 추가해주면 설치 후 acpid 패키지를 따로 설치하는 수고를 덜 수 있습니다.

grub-installer는 부트로더를 설치하는 과정입니다. 기본적으로 우분투 부트로더인 GRUB(GRUB 2)가 MBR 영역에 설치될 것입니다. GRUB 2를 지원하지 않는 시스템에서 GRUB이나 LILO 대신 다른 부트로더를 사용하거나 부트로더를 사용하지 않으려면 grub-installer/skip과 lilo-installer/ skip 항목의 주석을 해제합니다. grub2_instead_of_grub_legacy는 GRUB 레거시를 사용하기 위한 항목입니다. 게스트에 다른 운영체제 없이 우분투만 설치하기 때문에 only_debian은 활성화했으며 with_other_os에 의해 MBR에 다른 운영체제의 부트로더가 존재해도 GRUB을 설치합니다.

#d-i grub-installer/skip boolean true
#d-i lilo-installer/skip boolean true
#d-i grub-installer/grub2_instead_of_grub_legacy boolean false
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true

bootdev는 GRUB을 MBR이 아닌 하드디스크의 부팅 파티션에 설치하고자 할 때 사용합니다. (hd0,0)은 첫 번째 IDE 하드디스크의 첫 파티션을 의미합니다. GRUB에 패스워드를 설정하고자 하는 경우 password를 사용하고, 암호화된 패스워드를 입력하려면 password-crypted를 사용합니다.

#d-i grub-installer/bootdev string (hd0,0)
#d-i grub-installer/password password r00tme
#d-i grub-installer/password-again password r00tme
#d-i grub-installer/password-crypted password [MD5 hash]

다음은 설치가 끝나고 난 다음 처리를 위한 항목입니다. finish-install/reboot_in_progress는 설치를 완료한 다음 결과를 알리는 메시지를 생략합니다. cdrom-detect/eject는 CD 롬으로 설치하는 경우 재부팅 과정에서 CD를 제거하고 debian-installer/exit/halt는 설치가 끝난 다음 시스템 종료, #d-i debian-installer/exit/poweroff는 설치가 끝난 다음 전원을 내립니다.

#d-i finish-install/reboot_in_progress note
#d-i cdrom-detect/eject boolean false
#d-i debian-installer/exit/halt boolean true
#d-i debian-installer/exit/poweroff boolean true

텍스트 환경에서 우분투 서버를 운영하고자 하므로 X 윈도X Window 설정은 건너뜁니다. preseed/late_command는 시스템 자동 설치가 끝난 다음 추가로 실행하는 명령입니다. 예를 들어 다음 행의 주석을 해제하면 zsh를 설치(apt-install zsh)하고 명령 프롬프트에서 zsh를 실행(chsh -s /bin/zsh)합니다.

#d-i preseed/late_command string apt-install zsh; in-target chsh -s /bin/zsh
Tip

preseed/late_command를 사용해서 설치 후 필요한 명령을 실행하는 유용한 예제를 바로 이어서 살펴보게 됩니다.

수정이 다 끝나면 파일을 저장하고 vi를 빠져나옵니다. 지금까지 살펴본 것처럼 미리 설정 파일은 분량이 상당합니다. 그래서 직접 수정한 부분만 확인하고 싶다면 diff 명령을 사용해서 비교합니다. 원본과 수정본을 비교한 결과가 출력되는데 <는 왼쪽, 미리 설정 예제 파일인 ~/example-preseed.txt에 입력된 내용, >는 오른쪽, 미리 설정 파일 ‘preseed.cfg’에 입력된 내용을 보여줍니다.

shinjaehun@losttemple:~$ diff ~/example-preseed.txt /var/www/preseed.cfg
106c106
< d-i time/zone string US/Eastern
---
> d-i time/zone string Asia/Seoul
125c125
< d-i partman-auto/disk string /dev/sda
---
> d-i partman-auto/disk string /dev/vda
...
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.