설정 화일에는 3개의 주 섹션이 있다:
우리가 여기서 다루지 않는 부분이 있을 수도 있지만 작동은 할 것이다. 좀더 자세한 정보를 원한다면 레드햇 배포본 씨디롬 또는 레드햇 미러 사이트의 루트 디렉토리 아래의 misc/src/install/ks.samp와 doc/README.ks 등의 킥스타트 설정 샘플을 참고하기 바란다.
필자가 사용한 사용가능한 지시자는 다음과 같다:
언어 설정. 예를 들어 영어의 경우
lang en
네트웍 설정. 예를 들어 BOOTP/DHCP를 사용하려면
network --bootp
NFS 서버와 설치할 매체의 위치. 예를 들어
nfs --server chicken.swedish-chef.org /mnt/cdrom
chicken.swedish-chef.org를 NFS 서버로 사용하고 레드햇 배포본을
/mnt/cdrom에 마운트한다.
키보드 타입 선택. UK 키보드를 사용한다면
keyboard uk
마스터 부트 레코드(MBR) 내용 비우기 - MBR에 존재하는 시스템 부트 로더를 지운다.
존재하는 파티션 지우기 - 예를 들어 설치에 앞서 디스크 상의 파티션을 모두 지우려면 다음과 같이 해준다.
clearpart -all
디스크 분할. 예를 들어 500MB의 루트 화일 시스템을 만들기 위해서는
part / --size 500
레드햇 리눅스를 새롭게 설치한다.
사용하는 마우스 설정. 예를 들어 PS/2 또는 "bus mouse" 호환 기종이라면
mouse ps/2
시간대 설정. 예를 들어 영국에서 시간대를 설정한다면
timezone --utc Europe/London
초기 root 패스워드 설정. 이 때의 패스워드는 이미 암호화된 패스워드가 사용된다.
rootpw --iscrypted XaacoeGPmf/A.
LILO 부트 로더 설치. MBR에 설치하려 한다면
lilo --location mbr
설치할 패키지 - 아래를 보기 바란다.
설치 후 실행할 쉘 명령 - 아래를 보기 바란다.
킥스타트가 레드햇 배포판을 찾을 디렉토리는 플랫폼을 위한 레드햇 배포판 트리구조를 갖고 있는 RedHat이라는 하위디렉토리를 갖고 있어야 한다. 위의 예제에서는 다음과 같은 화일과 디렉토리를 볼 수 있다.
/mnt/cdrom/RedHat
/mnt/cdrom/RedHat/base
/mnt/cdrom/RedHat/contents
/mnt/cdrom/RedHat/i386
/mnt/cdrom/RedHat/instimage
/mnt/cdrom/RedHat/RPMS
/mnt/cdrom/RPM-PGP-KEY
네트웍으로 설치하지 않고 CD-ROM으로 설치를 하려한다면 그 내용은 다음과 같이 될 것이다.
RedHat
RedHat/base
RedHat/contents
RedHat/i386
RedHat/instimage
RedHat/RPMS
RPM-PGP-KEY
다양한 아키텍쳐를 위한 레드햇 배포판을 가지고 있다면 각각의 배포판은 서브 디렉토리 아래에 같은 화일을 갖고 있음을 알아두어야 할 것이다.(예를 들어 NFS 서버상에서 아키택쳐별 버전이 하나 이상이어서 하나의 CD-ROM에 담을 수 없을 경우)
alpha/RPM-PGP-KEY
i386/RPM-PGP-KEY
sparc/RPM-PGP-KEY
i386/Redhat/i386과 같은 아키텍처
/Redhat/아키텍처
의 형태를 갖는 화일이
있어야 한다.
자신만의 암호화된 패스워드를 만들고 싶다면, Perl을 이용하면 매우 쉽다.
% perl -e 'print crypt("schmurrdegurr", "Xa") . "\n";'p
다음은 테스트는 해보지 않았지만 논의할 만한 가치가 있는 다른 옵션이다:
네트웍 설치가 아닌 CD-ROM 설치
장치에 대한 정확한 지정 예;
device ethernet 3c509 --opts "io=0x330, irq=7"
device
의 또다른 값으로는 SCSI 컨트롤러를 위한 scsi
와 각종 CD-ROM
드라이브를 위한 cdrom
이 있다.
새로 설치하지 않고 기존의 설치된 시스템을 업그레이드
X 윈도우 서버 설정, 그래픽 카드와 모니터 설정
xconfig --server "Mach64" --monitor "tatung cm14uhe"
마지막의 항목에 대해서는 깊이 있게 연구하지 않았다. 왜냐면 킥스타트를
적용할 머신의 콘솔에서 X를 실행하려 하지 않았기 때문이다. 킥스타트에서
xconfig
를 실행한다는 것은 다소 색다르다고 들었다. 하지만 Xconfigurator
를
통해서 명령행으로 같은 기능을 사용할 수 있다. 따라서 이 부분은 후-설치-
스크립트에서 하는 것이 가장 좋을 것이다.
다음은 킥스타트 설정 화일의 처음부분의 모든 항목을 입력했을 때의 설정 파일의 내용이다.
lang en
network --static --ip 198.168.254.253 --netmask 255.255.255.0
--gateway 198.168.254.1 --nameserver 198.168.254.2
nfs --server chicken.swedish-chef.org /mnt/cdrom
keyboard uk
zerombr yes
clearpart --all
part / --size 500
part swap --size 120
install
mouse ps/2
timezone --utc Europe/London
rootpw --iscrypted XaacoeGPmf/A.
lilo --location mbr
레드햇 문서중의 몇몇 문서는 실무에서 실제로 작동하지 않는 network
명령의 옵션에 대해 설명하고 있다는 것을 알아두기 바란다: network --option
. 올바른 사용법은 network 뒤에 --static이나 --bootp 또는 --dhcp를 사용하는
것이다. BOOTP와 DHCP는 다른 코드를 사용하므로 두 옵션이 다르다는 것을 알아두기
바란다.
part 지시자에 지정한 파티션 크기보다 늘일수 있도록 해주는 매개변수인 --grow를 추가할 수도 있다. 파티션이름 다음에 --grow를 추가하는 것이다.
킥스타트 설정 화일의 패키지 섹션의 시작은 %packages
지시자로 시작을
한다. 이 지시자에는 두가지 형태의 패키지 구분자가 따라온다. 버전과
플랫폼 정보를 제외한 설치될 패키지의 이름과 그룹이름으로 주어지는
설치될 패키지의 그룹의 형태가 그것이다.
다음은 킥스타트 설정 화일을 위한 패키지
선택의 예이다.
%packages
@ Base
netkit-base
bind-utils
ncftp
rdate
tcp_wrappers
traceroute
cmu-snmp
그렇다면 이 그룹들은 무엇인가? 레드햇 배포판의 최상위 디렉토리의 base/comps 화일에 기본으로 정의된 그룹이 있다. 다음은 글을 쓰고 있는 현재까지의 그룹의 목록이다.
이것은 수동 설치를 할 때 볼 수 있는 다양한 설정과 관련이 있다는 점을 알 수 있을 것이다. 한 그룹을 선택했을 때 또 다른 그룹을 설정하게 되면 중복이 되는 패키지가 있다는 점과 이러한 중복의 문제를 일으키지 않고 여러 그룹들을 설치할 수 있다는 점을 알아두기 바란다. comps 화일에 나열된 각 그룹의 항목은 다음과 같은 형태를 갖는다.
0 Extra Documentation
sag
lpg
howto
faq
man-pages
end
첫 줄의 그룹이름 앞의 1은 기본 설치되는 그룹을 나타낸다. 자신만의 그룹을 생성하거나 기존의 그룹을 편집하여 재정의함으로써 리눅스 설치를 최적화할 수 있다.
이 기능이 아마도 무엇보다도 훌륭한 기능이리라 생각된다. 수동으로 설치시 이와 같은 기능이 없을 것이다. 여기에 디스크 분할, 패키지 설치등의 주된 설치 과정 후에 실행되어질 쉘 수준의 명령을 지정할 수 있다.
이 섹션의 시작은 킥스타트 설정화일에서 %post
라는 지시자로 구별된다.
지시자 다음에는 새로 설치한 리눅스 시스템에 설치된 유틸리티를 이용할
수 있다. 예를 들면
%post
ln -s /etc/rc.d/init.d /etc/init.d
ln -s /etc/rc.d/rc.local /etc/rc.local
ln -s /usr/bin/md5sum /usr/bin/md5
ln -s /usr/bin/perl /usr/local/bin/perl
chmod ug-s /bin/linuxconf
mkdir /var/tmp/tmp
perl -spi -e 's!image=/boot/vmlinuz-.*!image=/boot/vmlinuz!' /etc/lilo.conf
rm /etc/rc.d/rc*.d/*sendmail
또한 다음과 같이 입/출력 리다이렉션을 사용할 수 있다:
cat << EOF >>/etc/passwd
squid:*:102:3500:Squid Proxy:/usr/squid:/bin/bash
EOF
cat << EOF >>/etc/group
cache:x:3500:
EOF
run-time 시작 스크립트 수정:
cat << EOF >>/etc/rc.local
echo 8192 > /proc/sys/kernel/file-max
echo 32768 > /proc/sys/kernel/inode-max
[ -x /usr/sbin/sshd ] && /usr/sbin/sshd
[ -x /usr/sbin/cfd ] && /usr/sbin/cfd
EOF
crontab 내용 설정 :
cat << EOF >/tmp/crontab.root
# Keep the time up to date
0,15,30,45 * * * * /usr/sbin/ntpdate -s eggtimer 2>&1 >/dev/null
# Recycle Exim log files
1 0 * * * /usr/exim/bin/exicyclog
# Flush the Exim queue
0,15,30,45 * * * * /usr/exim/bin/exim -q
EOF
crontab /tmp/crontab.root
rm /tmp/crontab.root
자신이 만든 다른 RPM 화일도 설치할 수 있다:
rpm -i ftp://chicken.swedish-chef.org/rpms/squid.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/ssh.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/exim.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/cfengine.rpm
rpm -i ftp://chicken.swedish-chef.org/rpms/linux.rpm
ssh-keygen -b 1024 -f /etc/ssh_host_key -N ""
depmod -a
실행하고자 하는 명령을 담은 자신만의 RPM을 만듦으로써 같은 효과를 얻을 수 있다는 점을 알아두기 바란다. - 문서의 후반부에서 언급될 것이다. 신중히 선택한 이름을 주어 자신이 만든 RPM을 처음으로 설치(예: 'aaa'로 시작하는 이름)하거나 맨 마지막(예: 'zzz'로 시작하는 이름)에 설치되도록 할 수 있다.
root crontab 목록을 만드는 비교적 수월한 방법은 crontab 내용을 화일로 만들어 /etc밑의 cron.hourly, cron.daily, cron.weekly, cron.monthly의 이름의 디렉토리 아래에 위치시키는 것이라는 점을 알아두기 바란다.
자신만의 RPM을 만드는 것에 대한 자세한 정보는 부록 B에서 얻을 수 있다.