[클러스터] Teragon HPC Install HOWTO 문서
==========================================================================
Teragon HPC Install HOWTO 문서
==========================================================================
* 본 문서는 클루닉스 기술부의 HPC 기본 설치 문서 입니다.
* 본 문서는 대외비에 해당하니, 작성자의 허가 없이는 외부 유출을
* 금합니다.
작성자 : 클루닉스 기술부 서 진우(alang@clunix.com)
작성일 : 2003년 6월 9일
2004년 9월 17일 – 수정 ( Redhat 9 용 )
2005년 1월 15일 – 수정 ( PXE Network booting )
————————————————————————-
1. OS install ( master_node )
Teragon NFS 윈격 설치 환경을 구축 하기 위해선 먼저 Master Node를 설치를 해야 한다.
Master Node 에 기본적인 관리 노드 구성에 맞게 패키지 구성을 완료한 뒤, 원격 설치
서비스를 하기 위해 기본적으로 NFS 서비스와 DHCP 서비스를 구동시킨다.
그런후 계산 노드들은 부팅 CD 나 부팅 디스켓으로 부팅 후 kick start 설치모드로
원격 설치 서버에 접속하여 설치 시 필요한 정보와 패키지를 다운받아 자동 설치 하
게 된다. 아래는 이와 같은 일련의 작업을 설명한 것이다.
– Teragon CD Install
– Remote Install
1.1 Teragon CD Install
Master Node ( 원격 설치 서버 ) 를 구축 할려면 기본적으로 아래와 같은 프로그램이
설치 되어져 있어야 한다.
dhcp
dhcp-devel
anaconda-runtime
redhat-config-kickstart
1.2 Remote Install
1.2.1 Remote Nfs Install Server 만들기
Master Node 에 원격 설치 서버를 만들기 위해 Redhat 배포판 CD 를 통합하여
원격 설치에 맞게 구성을 만들어 놓는다.
> 기본 디렉토리를 생성한다.
# mkdir -p /data/clunix/teragon
# mkdir /data/clunix/cd1
# mkdir /data/clunix/cd2
# mkdir /data/clunix/cd3
> cd1,cd2,cd3 디렉토리에 Redhat9.x CD 내용을 각각 복사한다
# mount -t iso9660 /dev/cdrom /mnt/cdrom
# cp -rf /mnt/cdrom/* /data/clunix/cd1
# cp -rf /mnt/cdrom/* /data/clunix/cd2
# cp -rf /mnt/cdrom/* /data/clunix/cd3
> Teragon Server 에 기본 설치되는 RPM Package List 정리하여 ‘kick’ 이란 file 로 보관한다.
> ‘kick’ file 저장위치는 /data/clunix/ 안에 둔다.
# rpm -qa > /data/clunix/kick
> redhat 원본CD 에서 Teragon 에 맞는 CD 구성을 만든다.
> addrpm.sh 스크립터를 $teracd 에 만든다.
# cd /data/clunix
[root@teragon01 clunix]# vi addrpm.sh
==============================================================================
#!/bin/sh
for file in `cat kick`
do
cp -f ./cd1/RedHat/RPMS/${file}* ./teragon/RedHat/RPMS/
cp -f ./cd2/RedHat/RPMS/${file}* ./teragon/RedHat/RPMS/
cp -f ./cd3/RedHat/RPMS/${file}* ./teragon/RedHat/RPMS/
done
=============================================================================
# chmod 700 addrpm.sh
> addrpm.sh 실행한다.
만일 배포판 전체 패키지를 통합할 경우 CD1 의 내용에 CD2, CD3 의 RedHat/RPMS 밑의
rpm package 들만을 CD1으로 복사하면 된다.
[root@teragon01 clunix]# ./addrpm.sh
이러면 실제 설치에 필요한 RPM 패키지가 하나의 폴더안에 집중하여 관리 할수 있다.
( 원격 설치 시 자동 One step 설치 방식으로 구성하여 설치 과정 중에 관리자가 계속
대기 하고 있다가 설치에 필요한 정보를 입력하는 수고를 생략하기 위한 것이다. )
기본적인 Redhat rpm package 가 하나로 통합을 시켰으면 이제 HPC에 필요한 추가
패키지를 rpm 으로 만들어 Redhat 배포판 디렉토리 구성의 RPM 디렉토리 안에 추가해
둔다.
dutils, rsh-enable, ecm-base, ecm-mon, ecmhpc-ui 등등의 패키지를 추가한다.
# cp dutil-1.2.1-2.i386.rpm /data/clunix/teragon/RPMS
# cp rsh-enable-0.1-1.i386.rpm /data/clunix/teragon/RPMS
# cp ecm-base-1.0.0-5.i386.rpm /data/clunix/teragon/RPMS
# cp ecm-mon-1.0.0-5.i386.rpm /data/clunix/teragon/RPMS
# cp ecmhpc-ui-1.0.0-5.i386.rpm /data/clunix/teragon/RPMS
> clunix 의 RPM List 를 다시 만들어 준다. anaconda-runtime 이 설치되어져 있어야 한다.
– 기본적인 RPM 구성 정보를 담는 파일을 변경된 구성의 정보로 업데이트 시켜 주어야 한다.
[root@teragon01 clunix]# /usr/lib/anaconda-runtime/genhdlist –withnumbers –hdlist teragon/RedHat/base/hdlist /data/clunix/teragon/
1.2.2 DHCP Server 설정
[root@teragon01 clunix]# vi /etc/dhcpd.conf
============================================================================
ddns-update-style interim;
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.100.255;
option routers 192.168.100.1;
option domain-name-servers 192.168.100.1;
option domain-name “teragon01”;
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.150 192.168.100.253;
}
===========================================================================
> dhcp 에 사용되는 dev 지정
[root@teragon01 clunix]# vi /etc/sysconfig/dhcpd
==========================================================================
DHCPDARGS=eth0
==========================================================================
> dhcpd deamon restart
[root@teragon01 clunix]# /etc/rc.d/init.d/dhcpd restart
1.2.3 NFS Server 설정
[root@teragon01 clunix]# vi /etc/exports
==========================================================================
/data/clunix/teragon *(ro,no_root_squash)
==========================================================================
[root@teragon01 clunix]# /etc/rc.d/init.d/portmap restart
[root@teragon01 clunix]# /etc/rc.d/init.d/nfs restart
> nfs mount 테스트를 한다.
[root@teragon01 data]# mount -t nfs localhost:/data/clunix/teragon /tmp
[root@teragon01 data]# umount /tmp
> ks.cfg
redhat9.x 에서 anaconda 구성이 많이 변경된거 같다.
ks.cfg 구성중 package 구성이 조금 번거롭당.
먼저 HPC 에 맞게 수동으로 완벽하게 설치한 Master Node 시스템에서
rpm -qa > kick 로 rpm list 일일이 ks.cfg 파일에 삽입하여야 한다.
이때 rpm version 은 제거해야 하는데..
vi kick 에서 치환법 ( :%s/-[0-9].*$//g ) 로 제거하면 된다.
그런 후 이 package 구성으로 설치를 한번하고 새로 설치된 시스템의 /root/anaconda-ks.cfg 파일의 Package 구성을 다시 ks.cfg 에 반영하면 된다.
만일 이보다 쉽게 하기 위해서는 redhat-config-kickstart 란 프로그램으로 관리자가
원하는 구성의 ks.cfg 파일을 손쉽게 만들 수 있다. 이렇게 만든 ks.cfg 파일을 원격
설치에 맞게 몇가지 수정을 하여 바로 사용할 수도 있다. 아래 sample 은 수동으로
만든 ks.cfg 파일과 redhat-config-kickstart 를 이용한 ks.cfg 파일 이다.
HPC 셋팅 시 기본 구성으로 참고 하면 되겠다.
완전 수동 ks.cfg 파일 예제
=============================================================================
lang en_US.UTF-8
langsupport –default ko_KR.eucKR en_US.UTF-8 ko_KR.eucKR
keyboard us
mouse none
skipx
text
nfs –server 192.168.100.1 –dir /data/clunix/teragon
zerombr yes
clearpart –all
part / –size 2048
part /usr –size 4096
part swap –recommended
part /data –size 1 –grow
install
network –device eth0 –bootproto none
network –device eth1 –bootproto none
rootpw –iscrypted $1$gICICO40$zY6osnALDHFNVfQUjxeHw1
firewall –medium –dhcp –port=ssh:tcp –trust=eth0
authconfig –enableshadow –enablemd5
timezone Asia/Seoul
bootloader –location=mbr –useLilo
%packages
@ Korean Support
modutils-devel
tk
fam
rpm-build
libxslt
openssl-devel
ncurses-devel
xinetd
ltrace
gmp-devel
redhat-config-kickstart
libbonoboui
m4
blas
indent
db4-utils
diffstat
openldap-devel
gnome-vfs2
pyorbit
emacs-leim
xdelta
units
gnome-mime-data
libxml2-devel
ethereal
cyrus-sasl-devel
libart_lgpl
ntp
atk
gcc-java
kudzu-devel
pkgconfig
libxml-devel
slang-devel
python-devel
automake14
automake15
redhat-config-date
libbonobo
hesiod-devel
patchutils
gcc-c++
gdbm-devel
perl-CPAN
patch
kernel-source
pygtk2-libglade
libpng
gdb
binutils
byacc
memprof
redhat-rpm-config
glibc-kernheaders
readline-devel
cdecl
libxml
fam-devel
libgcj-devel
gnome-python2-canvas
cups-libs
redhat-logviewer
libpcap
bonobo-activation
libgnat
gcc-g77
GConf2
libtermcap-devel
libstdc++-devel
dialog
autoconf
pam-devel
curl
gnuplot
libtool
libgnomecanvas
krb5-devel
audiofile
pciutils-devel
rpm-devel
gtk2
gtk+
octave
libgnomeui
nmap
sgml-common
htmlview
glibc-devel
gcc
libf2c
gcc-gnat
libglade2
flex
pango
libjpeg
expat-devel
gpm-devel
libgcj
dhcp
dev86
gnome-python2
pygtk2
lockdev-devel
emacs
comps-extras
zlib-devel
libusb
libcap-devel
Xaw3d
net-snmp
libcap
redhat-config-packages
samba-client
strace
libusb-devel
libIDL
linc
libvorbis-devel
bison
libvorbis
redhat-config-network
redhat-config-proc
redhat-config-nfs
redhat-menus
ORBit2
libgnome
screen
kernel-smp
db4-devel
esound
rsh-server
doxygen
libogg-devel
cvs
libxml2
texinfo
psgml
libacl-devel
tcl
lapack
swig
libattr-devel
redhat-config-users
automake
vim-enhanced
libuser-devel
libogg
libtiff
splint
libungif
rcs
gnome-python2-bonobo
libxml2-python
newt-devel
samba-common
gettext
curl-devel
krbafs-devel
cpp
rsh-enable
dutil
%post –interpreter /bin/bash
#### setting IP ADDR ############################
stringZ=`cat /proc/cmdline`
for service in $stringZ
do
if [ `expr match “$service” “ksip=”` -eq “5” ] ; then
IPADDR=${service:5}
fi
if [ `expr match “$service” “ksnm=”` -eq “5” ] ; then
NAME=${service:5}
fi
done
echo “DEVICE=eth0” > /etc/sysconfig/network-scripts/ifcfg-eth0
echo “BOOTPROTO=static” >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo “IPADDR=${IPADDR}” >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo “NETMASK=255.255.255.128” >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo “ONBOOT=yes” >> /etc/sysconfig/network-scripts/ifcfg-eth0
echo “NETWORKING=yes” > /etc/sysconfig/network
echo “HOSTNAME=${NAME}” >> /etc/sysconfig/network
#################################################
echo “01 3 * * * root ntpdate 192.168.100.1 > /dev/null 2>&1” >> /etc/crontab
##### setting services off ###################################
chkconfig kudzu off
chkconfig reconfig off
chkconfig ipchains off
chkconfig nfslock off
chkconfig nfs off
chkconfig portmap off
chkconfig keytable off
chkconfig apmd off
chkconfig rawdevices off
chkconfig sendmail off
chkconfig gpm off
chkconfig anacron off
chkconfig atd off
chkconfig netfs off
chkconfig autofs off
/root/rsh.enable
===============================================================================
– redhat-config-kickstart 를 이용한 ks.cfg 파일
===============================================================================
#Generated by Kickstart Configurator
#System language
lang ko_KR.eucKR
#Language modules to install
langsupport –default=ko_KR.eucKR
#System keyboard
keyboard us
#System mouse
mouse generic3ps/2
#Sytem timezone
timezone Asia/Seoul
#Root password
rootpw –iscrypted $1$iv0/Mp/1$uoKRMOmtvv/DAVYEnnrGK.
#Use text mode install
text
#Install Red Hat Linux instead of upgrade
install
#Use NFS installation Media
nfs –server=192.168.10.254 –dir=/data/clunix/teragon
#System bootloader configuration
bootloader –useLilo –linear –location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart –all –initlabel
#Disk partitioning information
part /boot –fstype ext3 –size 200
part / –fstype ext3 –size 2000 –asprimary
part /usr –fstype ext3 –size 5000
part /usr/local –fstype ext3 –size 5000
part /var –fstype ext3 –size 2000
part swap –size 2000
part /home –fstype ext3 –size 1 –grow
#System authorization infomation
auth –useshadow –enablemd5
#Network information
#network –bootproto=static –ip=192.168.1.1 –netmask=255.255.255.0 –gateway=192.168.1.254 –nameserver=192.168.1.254 –device=eth0
#Firewall configuration
firewall –medium –trust=eth1 –ftp –ssh
#Do not configure XWindows
skipx
#Package install information
%packages –resolvedeps
@ X Window System
@ Editors
@ Engineering and Scientific
@ Graphical Internet
@ Text-based Internet
@ Graphics
@ Authoring and Publishing
@ Server Configuration Tools
@ DNS Name Server
@ Network Servers
@ Development Tools
@ Kernel Development
@ X Software Development
@ Administration Tools
@ System Tools
dutil
rsh-enable
ecm-base
ecm-mon
ecmhpc-ui
%post –interpreter /bin/bash
#### setting IP ADDR ############################
stringZ=`cat /proc/cmdline`
for service in $stringZ
do
if [ `expr match “$service” “ksip=”` -eq “5” ] ; then
IPADDR=${service:5}
fi
if [ `expr match “$service” “ksnm=”` -eq “5” ] ; then
NAME=${service:5}
fi
done
echo “DEVICE=eth1” > /etc/sysconfig/network-scripts/ifcfg-eth1
echo “BOOTPROTO=static” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “IPADDR=${IPADDR}” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “NETMASK=255.255.255.0” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “ONBOOT=yes” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “NETWORKING=yes” > /etc/sysconfig/network
echo “HOSTNAME=${NAME}” >> /etc/sysconfig/network
#################################################
##### setting services off ###################################
chkconfig kudzu off
chkconfig reconfig off
chkconfig ipchains off
chkconfig nfslock off
chkconfig nfs off
chkconfig keytable off
chkconfig apmd off
chkconfig rawdevices off
chkconfig sendmail off
chkconfig gpm off
chkconfig anacron off
chkconfig atd off
#############################################################
/root/rsh.enable
======================================================================
이와 같이 만들어진 ks.cfg 파일을 /data/clunix/teragon 에 복사해 두고
dhcp, nfs, portmap 등의 서비스가 정상 가동하는지 확인 후 계산 노드들을 원격으로
설치 한다.
booting CD insert 이후 boot prompt 상에 아래 내용을 입력해 준다.
boot : ks ks=nfs:[nfs_server_ip 혹은 호스트명]:/data/clunix/teragon/ks.cfg ksip=[>설치서버의 기본 IP] ksnm=[설치서버의 호스트명]
;; iptables 가 기본적으로 on 되어져 있는 경우 nfs 서비스를 막고 있을 가능성
이 크다. 그래서 nfs, dhcp 등의 서비스 접속이 안되어서 설치가 안되는 경우
가 발생할 수 있다. 주의
;; 계산 노드의 랜카드가 두장 이상일 경우 실제 nfs 로 통신할 랜카드를 선택
해야 한다. 실제 랜선이 연결된 랜카드 측의 네트워크 장치를 사용하여 설치
를 해야 한다.
2. PXE 와 tftp, dhcp, nfs 를 이용한 네트워크 부팅 설치 방법
PXE-ROM 이 있는 Lan Card 의 경우 PXE-protocol 을 이용하여 랜카드 자체에서
네트워크를 통해 부팅 이미지를 읽어 올수가 있다.
이 기능을 이용하면 리눅스 설치 CD 와 같은 미디어 없이 네트워크를 통해 리눅스를
설치 하거나 하드디스크 없이 CPU, MEM 만 달려 있는 시스템을 부팅 이미지와 NFS 서버
를 통해 시스템을 작동 시킬수 있다. 이런 방식을 이용하여 Diskless-HPC 를 구축 하기
도 한다. 여기서는 설치에 관련된 내용만을 다루도록 한다.
Pxe 를 이용한 리눅스 네트워크 설치때 사용되는 기본 프로그램은 아래와 같다.
redhat-config-netboot
tftp-server
dhcpd
nfs
위의 프로그램이 원격 설치 서버 시스템에 기본적으로 설치가 되어져 있어야 한다.
설치는 간단히 배포판에서 제공하는 rpm 으로 설치 하면 된다.
rpm -Uvh redhat-config-netboot
rpm -Uvh tftp-server-x.x.x.rpm
rpm -Uvh tftp-x.x.x.rpm
그럼 /tftpboot 가 생성된다.
/etc/xinetd.d/tftp 의 disable = yes 를 no 변경 해주고 xinetd 를 재시작해준다.
# /etc/rc.d/init.d/xinetd restart
# chkconfig –level 3 xinetd on
# chkconfig –level 3 tftp on
Pxe 네트워크 설치 방식에서 가장 유의해야할 설정은 dhcp 설정이다.
위의 Nfs 네트워크 설치 방식 처럼 단순히 ip 만 활당해 주는 것이 아니기 때문에
다소 복잡하다.
# vi /etc/dhcp.conf
===============================================================================
ddns-update-style interim;
ignore client-updates;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.100.255;
option routers 192.168.100.254;
option domain-name-servers 192.168.100.254;
option domain-name “node00.tergon.hpc”;
# 아래 추가
allow booting;
allow bootp;
class “pxeclients” {
match if substring (option vendor-class-identifier, 0, 9) = “PXEClient”;
next-server 192.168.100.254;
filename “linux-install/pxelinux.0”;
}
# 특정 Mac Address 를 가지고 접속하는 클라이언트에서 특정 IP 부여
# 이는 tftp 설정에서 클라이언트 시스템 별로 별도의 부팅 이미지 및 ks 파일을
# 적용할수 있기 때문에 지정을 해주면 보다 자동화된 시스템 구축이 가능하다.
group {
next-server 192.168.100.254;
filename “linux-install/pxelinux.0”;
host node01 {
hardware ethernet 00:09:3d:10:8b:c6;
fixed-address 192.168.100.1;
}
host node02 {
hardware ethernet 00:09:3d:10:96:64;
fixed-address 192.168.100.2;
}
host node03 {
hardware ethernet 00:09:3d:10:98:3b;
fixed-address 192.168.100.3;
}
host node04 {
hardware ethernet 00:09:3d:10:93:ce;
fixed-address 192.168.100.4;
}
host node05 {
hardware ethernet 00:09:3d:10:98:02;
fixed-address 192.168.100.5;
}
host node06 {
hardware ethernet 00:09:3d:00:7a:6c;
fixed-address 192.168.100.6;
}
host node07 {
hardware ethernet 00:09:3d:10:93:d4;
fixed-address 192.168.100.7;
}
}
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.100 192.168.100.150;
}
==================================================================================
그런 후 redhat-config-netboot 명령을 실행한다.
redhat-config-netboot 명령은 기본적으로 X 가 설치된 시스템 위에서 구동한다.
만일 X 가 설치 되어져 있지 않다고 하면 pxeos 와 pxeboot 로 Command Line 상에서
설정을 할수 있다.
redhat-config-netboot 설정은 크게 두가지로 나누어 진다. 먼저 원격 설치에 사용될
부팅 이미지와 initrd 이미지 파일을 설치 OS 별로 구분하여 설정한다.
그런 후 접속 클라이언트 환경을 미리 지정해 두어야 한다.
아래는 Command Line 에서 설정을 추가 하는 방법이다.
설치 OS 구분 추가 :
pxeos -a -i “설명” -p <install_protocol> -D 0 -s <server_name> \\
-L <net-location> <os-identifer>
예)
pxeos -a -i “Redhat ES3” -p NFS -D 0 -s 192.168.100.254 -L /home/clunix/teragon teragon
클라이언트 구분 추가 :
pxeboot -a -O <os-identifer> -r <ramdisk_size> <host>
예 )
pxeboot -a -O teragon -r 10000 192.168.100.1
클라이언트 환경은 /tftpboot/linux-install/pxelinux.cfg/ 밑에 생성이 된다.
각 접속될 클라이언트 별( 구분은 클라이언트 IP 로 한다 )로 부팅 이미지와 ks 파일을
지정할수 있게 설정 파일이 나누어진다. 지정된 클라이언트가 아닌 시스템에서 접속한
경우에는 default 에 지정된 부팅 이미지로 부팅을 하게 된다. 기본적인 설정은
부팅이미지와 ramdisk size 정도 지정되어져 있다. 만일 별도의 kickstart 파일을
이용하여 자동 설치를 원할 경우에는 아래와 같이 ks 관련 append 를 추가 해 주어야
한다. ks 관련 설정은 반드시 기존의 append 설정 뒤에 붙여서 사용하여야 한다.
/tftpboot/linux-install/pxelinux.cfg/default 를 열어보면..
default local
timeout 100
prompt 1
display msgs/boot.msg
F1 msgs/boot.msg
F2 msgs/general.msg
F3 msgs/expert.msg
F4 msgs/param.msg
F5 msgs/rescue.msg
F7 msgs/snake.msg
label local
localboot 1
label 0
localboot 1
label 1
kernel teragon/vmlinuz
append initrd=teragon/initrd.img ramdisk_size=10000 \\
ks=nfs:192.168.100.254:/home/clunix/teragon-pkg/ks.cfg ip=dhcp ksdevice=eth0
=======================================================================================
특정 노드에 대한 자동 설정을 하고 쉽다면
/tftpboot/linux-install/pxelinux.cfg/C0A86401 과 같이 특정 호스트에서 접속할 경우
특정 부팅 이미지로 부팅을 시킬수 있다.
# vi /tftpboot/linux-install/pxelinux.cfg/C0A86401
========================================================================================
default teragon
label teragon
kernel teragon/vmlinuz
append initrd=teragon/initrd.img console=tty0 ramdisk_size=10000 \\
ks=nfs:192.168.100.254:/home/clunix/teragon-pkg/ks.cfg ksip=192.168.200.1 ksnm=node01 ksdevice=eth0
========================================================================================
이제 클라이언트 시스템을 부팅하였을때 클라언트 시스템에 OS 가 설치된 환경이 아니면
자동으로 서버에 접속하여 서버의 부팅 이미지를 가져 오게 된다.
다른 부팅 매체 및 이미지가 존재 할 경우 PXE Network boot 관련 단축키 ( F12 ) 를 부르면
PXE 로 접속하게 된다.
2005년 1월 17일 Sun-FZ440 (Opteron System) 설치 당시 문제점 :
FZ440 시스템에 Redhat ES3-update 3 버전으로 설치를 하였다. PXE 접속하여 OS 설치까지는
무사히 잘 되었는데 설치 완료 후 리부팅 후 bootloader 를 불려 오지 못하는 문제 발생
kickstart file 수정등으로 재 시도를 해 보았지만.. 동일 증세 발견 ..
문제 원인은 Redhat ES3-update3 -amd 버전의 배포 CD 의 isolinux/ 밑의 부팅 관련 이미지
들의 문제임.
당초 CD1 으로 CDROM 부팅이 안되어서 CD1/images/boot.iso 파일의 이미지를 다시 풀어서
부팅이 가능한 문제가 있었는데 설치 이후 기본 부팅 이미지를 덮어 쓰는데 문제 있는
이미지를 덮어 쓰는 문제가 발생함.
어려움이 많았음
**** ks config sample file ****
redhat-config-kickstart
====================================================================================
#Generated by Kickstart Configurator
#System language
lang en_US
#Language modules to install
langsupport ko_KR.eucKR –default=en_US
#System keyboard
keyboard us
#System mouse
mouse generic3ps/2
#Sytem timezone
timezone Asia/Seoul
#Root password
rootpw –iscrypted $1$I4KvFDeP$nz5hBVDYcdWgfmQgljUEG0
#Reboot after installation
reboot
#Install Red Hat Linux instead of upgrade
install
#Use NFS installation Media
nfs –server=192.168.100.254 –dir=/home/clunix/teragon-pkg
#System bootloader configuration
bootloader –location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart –all –initlabel
#Disk partitioning information
part /boot –fstype ext3 –size 200 –ondisk sda
part / –fstype ext3 –size 3000 –asprimary –ondisk sda
part /usr –fstype ext3 –size 10000 –ondisk sda
part /var –fstype ext3 –size 3000 –ondisk sda
part swap –size 4000 –ondisk sda
part /home –fstype ext3 –size 1 –grow –ondisk sda
#System authorization infomation
auth –useshadow –enablemd5
#Firewall configuration
firewall –enabled
#Do not configure XWindows
skipx
#Package install information
%packages –resolvedeps
@ X Window System
@ GNOME Desktop Environment
@ Editors
@ Engineering and Scientific
@ Graphical Internet
@ Text-based Internet
@ Server Configuration Tools
@ DNS Name Server
@ Network Servers
@ Development Tools
@ Kernel Development
@ X Software Development
@ GNOME Software Development
@ Administration Tools
@ System Tools
===============================================================================
custom file
===============================================================================
lang ko_KR.eucKR
langsupport –default=ko_KR.eucKR
keyboard us
mouse generic3ps/2
timezone Asia/Seoul
rootpw –iscrypted $1$nC947A.0$7k8ULqNdFZhOYDrnhz3ai1
text
install
nfs –server=192.168.100.254 –dir=/home/clunix/teragon-pkg
bootloader –location=mbr
zerombr yes
clearpart –all
part /boot –fstype ext3 –size 200 –ondisk sda
part / –fstype ext3 –size 3000 –ondisk sda –asprimary
part /usr –fstype ext3 –size 10000 –ondisk sda
part swap –size 4000 –ondisk sda
part /var –fstype ext3 –size 3000 –ondisk sda
part /home –fstype ext3 –size 100 –grow –ondisk sda
authconfig –enableshadow –enablemd5
#network –device eth0 –bootproto none
#network –device eth1 –bootproto none
firewall –enabled –trust=eth0
skipx
%packages
@ engineering-and-scientific
@ legacy-software-development
@ editors
@ system-tools
@ base-x
@ gnome-software-development
@ development-tools
@ text-internet
@ x-software-development
@ legacy-network-server
@ dns-server
@ gnome-desktop
@ admin-tools
@ compat-arch-development
@ authoring-and-publishing
@ korean-support
@ server-cfg
@ network-server
@ kernel-development
@ graphical-internet
@ compat-arch-support
krb5-server
rsh-server
-lam
kernel
kernel-smp
rsh-enable
dutil
%post –interpreter /bin/bash
#### setting IP ADDR ############################
stringZ=`cat /proc/cmdline`
for service in $stringZ
do
if [ `expr match “$service” “ksip=”` -eq “5” ] ; then
IPADDR=${service:5}
fi
if [ `expr match “$service” “ksnm=”` -eq “5” ] ; then
NAME=${service:5}
fi
done
echo “DEVICE=eth1” > /etc/sysconfig/network-scripts/ifcfg-eth1
echo “BOOTPROTO=static” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “IPADDR=${IPADDR}” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “NETMASK=255.255.255.0” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “ONBOOT=yes” >> /etc/sysconfig/network-scripts/ifcfg-eth1
echo “NETWORKING=yes” > /etc/sysconfig/network
echo “HOSTNAME=${NAME}” >> /etc/sysconfig/network
#################################################
chkconfig gpm off
chkconfig kudzu off
chkconfig netfs off
chkconfig random off
chkconfig rawdevices off
chkconfig atd off
chkconfig audit off
chkconfig acpid off
chkconfig isdn off
chkconfig iptables off
chkconfig ip6tables off
chkconfig autofs off
chkconfig portmap off
chkconfig nfslock off
chkconfig mdmonitor off
chkconfig cups off
chkconfig rhnsd off
chkconfig hpoj off
chkconfig xfs off
chkconfig arptables_jf off
/root/rsh.enable
==================================================================================
ethereal jazz