pxe+kickstart無人值守安裝linux操作系統

注:這個無人值守,下載可以實用tftp、vsftp、nfs、web等實現。---此列以tftp進行測試。

一 安裝軟件
需要安裝以下軟件,可以用rpm安裝,這些包在系統盤裏都能找到
vsftpd
tftp-server
xinetd
system-config-kickstart
dhcp
libdhcp4client
libdhcp
dhcp-devel
libdhcp4client-devel
libdhcp-devel
二 服務配置
需要的服務有vsftp tftp dhcp,下面將對這些服務一一的進行配置
1 ftp配置
安裝完vsftpd,用默認的配置就可以,確保匿名用戶能登錄。在此不作詳細介紹
2 tftp配置
安裝tftp-server後在/etc/xinetd.d/下會有tftp文件,按照下面的配置修改,注意修改紅色字體部分。
cat /etc/xinetd.d/tftp
service tftp
{

disable = no
       socket_type             = dgram
       protocol                = udp
       wait                    = yes
       user                    = root
       server                  = /usr/sbin/in.tftpd
server_args             = -s /tftpboot
       per_source              = 11
       cps                     = 100 2
       flags                   = IPv4
}
3 dhcp配置
安裝好dhcp後,複製/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample到/etc下,並改名爲dhcpd.conf,具體配置可以參考下文。
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cat /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.151.0 netmask 255.255.255.0 {
   option routers            192.168.151.90;
   option subnet-mask        255.255.255.0;
   next-server 192.168.151.90; #該處指定的是tftp 服務器的ip
   filename    "pxelinux.0"; #pxe獲得IP地址後的引導文件
   option domain-name-servers    202.96.209.133;
   option time-offset        -18000;    # Eastern Standard Time
   range dynamic-bootp 192.168.151.91 192.168.151.99;
   default-lease-time 21600;
   max-lease-time 43200;
}
三 製作相關文件
1 掛載linux系統光盤並將光盤中的相關文件複製到對應目錄下。
mkdir /media
mount /dev/hdc on /media
2 複製文件到對應目錄
mkdir /tftpboot/pxelinux.cfg
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
cp /media/images/pxeboot/initrd.img /tftpboot
cp /media/images/pxeboot/vmlinuz /tftpboot
cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
3 編輯 /tftpboot/pxelinux.cfg/default
/tftpboot/pxelinux.cfg/default默認沒有寫權限,要給予寫權限
chmod +w /tftpboot/pxelinux.cfg/default
編輯後的default文件如下
cat /tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 60
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
 kernel vmlinuz
#ks.cfg爲kickstart配置文件,當有多張網卡時用ksdevice指定從哪張網卡啓動網絡安裝,後面會介紹ks.cfg文件的製作方法
 append linux ks=ftp://192.168.151.90/pub/ks.cfg initrd=initrd.img ksdevice=eth0
label memtest86
 kernel memtest
 append -
4 ks.cfg文件配置
該文件是kickstart的配置文件,可以用各種文本編輯器修改該文件,也可以用system-config-kickstart編譯工具來修改kickstart文件,同樣也可以參照 anaconda-ks.cfg文件。anaconda-ks.cfg在linux系統/root下可以找到,把修改好的ks.cfg放到ftp下。
cat /var/ftp/pub/ks.cfg
text
auth --useshadow --enablemd5
bootloader --append="rhgb quiet" --location=mbr --driveorder=hda
zerombr
clearpart --linux --drives=hda
graphical
firewall --disabled
firstboot --disable
keyboard us
#很重要,跳過序列化輸入
key --skip
lang en_US
logging --level=info
url --url=ftp://192.168.151.90/pub/OS
#dhcp獲取ip
network --bootproto=dhcp --device=eth0
reboot
#root密碼,md5值,本例爲123456的md5值
rootpw --iscrypted $1$9UyMJMtm$ulLMj23O8TseWqLraUx49.
selinux --disabled
skipx
timezone --utc Asia/Shanghai
install
clearpart --linux --drives=hda
part /boot --fstype ext3 --size=100 --ondisk=hda
part /  --fstype ext3   --size=50000    --ondisk=hda
part swap       --size=1000      --ondisk=hda
#part pv.2 --size=0 --grow --ondisk=hda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=2048
#安裝系統軟件包
%packages
@admin-tools
@base
@chinese-support
@core
@development-libs
@development-tools
@dialup
@editors
@gnome-desktop
@gnome-software-development
@games
@graphical-internet
@graphics
@java
@java-development
@kde-software-development
@legacy-software-development
@legacy-software-support
@openfabrics-enterprise-distribution
@printing
@ruby
@sound-and-video
@system-tools
@text-internet
@x-software-development
@base-x
kexec-tools
iscsi-initiator-utils
fipscheck
device-mapper-multipath
sgpio
python-dmidecode
imake
emacs
libsane-hpaio
festival
audit
mesa-libGLU-devel
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
%post
#配置ip
ipaddr=`ifconfig eth0|grep -w inet|sed -e 's/^.*addr://' -e 's/Bcast:.*$//'`
sed -i "/BOOTPROTO/ s/dhcp/static/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "/NOBOOT/ s/no/yes/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "/DHCPCLASS=/d" /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=${ipaddr}" >>/etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETMASK=255.255.255.0" >>/etc/sysconfig/network-scripts/ifcfg-eth0
#關閉無用服務
for server in `ls /etc/rc3.d/S*`;do
       curserver=`echo ${server}|cut -c 15-`
       echo ${curserver}
       case ${curserver} in
                       crond|irqbalance|microcode_ctl|network|random|sshd|syslog)
                       echo "basic services,skip"
                       ;;
                       *)
                       echo "set ${curserver} off"
                       chkconfig --level 2345 ${curserver} off
                       service ${curserver} stop
                       ;;
       esac
done
5 複製系統鏡像文件
將/media下所有的文件複製到/var/ftp/pub/OS
mkdir /var/ftp/pub/OS
cp -r /media/* /var/ftp/pub/OS
到此pxe+kickstart安裝配置工作基本結束,下面我們來重啓一些服務
四 服務重啓生效
service xinetd restart
service vsftpd restart
service dhcpd restart
五 裸機安裝linux系統
裸機開啓電源,等待即可完成安裝,無需人工干預


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章