Kickstart+NFS+DHCP+PXE+TFTP全自动化安装linux
首先不敢说是原创,是经过网络搜索总结出的比较可靠稳定的设置方法及内容。
安装过程中需要注意的事项,这在其他教程中涉及很少,给初学者造成一定困难。
本教程中的ks.cfg文件严格来说是修改系统中存在的anaconda.cfg文件。
本文中所用系统为RHEL6.4,64位操作系统。
本文中所有操作均在虚拟机中实现,为了达到更好的效果,虚拟机网络采用内部网络。主要是为了避免系统直接给它windows系统服务给它自动分配地址,我们要用linux主机的dhcp服务分配地址。
请关闭防火墙。未关闭会连接超时的。
请关闭selinux。未关闭,会导致无法获取pxelinux.0文件。
好直接上内容。
配置好本地源,挂载镜像iso文件。
挂载iso文件到media目录:
mount /dev/sr0 /media/
修改/etc/yum.repos.d/rhel-source.repo
[root@vmRHEL ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever -$basearch - Source
baseurl=file:///media/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[rhel-source-beta]
name=Red Hat Enterprise Linux $releaseverBeta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
保存退出。
安装dhcp和tftp服务
#yum install tftp* dhcp*
编辑tftp
vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server =/usr/sbin/in.tftpd
server_args = -unobody -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
修改:disable = no 修改为yes
编辑dhcp服务的配置文件
vim /etc/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.sample
# see 'man 5 dhcpd.conf'
ddns-update-style interim;
ignore client-updates;
next-server 192.168.0.20;
filename "pxelinux.0";
authoritative;
allow booting;
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0{
range dynamic-bootp 192.168.0.100192.168.0.200;
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.0.10;
option domain-name "ssgm.net";
default-lease-time 21600;
max-lease-time 43200;
}
以上内容可以直接复制粘贴到配置文件中。
配置PXE
新建文件夹mkdir /rhelos
拷贝iso镜像内部文件到rhelos文件内,cp �Crf /media/* /rhelos/
编辑NFS配置文件:
vi /etc/exports 内容如下
/rhelos *(rw,sync)
启动服务,service dhcpd start
Service nfs start
Service rpcbind start
如果这些服务不是自动启动的,需要chkconfig配置下自动启动。
mkdir /tftpboot tftp的根目录
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
注意:如果找不到这个文件,需要yum install syslinux,然后再/usr/share/syslinux/ 中拷贝pxelinux.0文件。
cp /media/images/pxeboot/{vmlinuz,initrd.img}/tftpboot
mkdir /tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfgpxelinux.cfg/default
vim /tftpboot/pxelinux.cfg/default (修改配置如下:)
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append ks=nfs:192.168.0.20:/rhelos/ks.cfginitrd=initrd.img (需要修改的地方)
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
设置timeout 10 /*超时时间为10S */
生成ks.cfg安装配置文件(拷贝到提供安装的目录 /rhelos目录)
设置权限 chmod o+wx /rhelos/ks.cfg
可以根据/root/目录下的anaconda-ks.cfg文件修改需要的系统需求。
(注意、clearpart �Call �Cinitlabel #如果ks.cfg脚本中不添加该语句,将不能实现自动化安装)
nfs �Cserver=NFS服务器ip �Cdir=光盘的位置 或 系统安装文件存放的位置
network �Cdevice eth0 �Cbootprotodhcp(使用DHCP来实现自动分配IP地址)
启动客户端,加电+插上网线,设置网卡启动,等待安装完毕即可。
重启系统就可以了。
以下为我的ks.cfg参考配置:
# Kickstart file automatically generated byanaconda.
#version=DEVEL
install
text
nfs --server=192.168.0.20 --dir=/rhelos
key --skip
lang zh_CN.UTF-8
keyboard us
network --device eth0 --bootproto dhcp
rootpw --iscrypted$6$hBCzImAfUr/h6xaf$2nJtxJ/Bh1yAQUt2446ZmgseChRBBXAbBcThnPR9xWC7NbfsEWPb8IF1Vj9KqZ1oKX02ClusTb0BOFz3IJuI//
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda--append="rhgb quiet"
# The following is the partitioninformation you requested
# Note that any partitions you deleted arenot expressed
# here so unless you clear all partitionsfirst, this is
# not guaranteed to work
#clearpart --none
clearpart --all --initlabel
part /boot --fstype ext4 --size=100
part swap --size=2000
part / --fstype ext4 --size=1 --grow
#part /boot --fstype=ext4 --size=200
#part / --fstype=ext4 --grow --size=200
%packages
@base
@chinese-support
@console-internet
@core
@debugging
@development
@dial-up
@mysql-client
@mysql
@system-management-snmp
@server-policy
python-dmidecode
sgpio
device-mapper-persistent-data
ftp
lftp
glibc-utils
systemtap-client
gdb-gdbserver
libstdc++-docs
gcc-gnat
gcc-objc
gcc-objc++
rp-pppoe
perl-DBD-MySQL
%end
以上配置文件为最小化安装并自定义安装包的cfg文件。注意rootpw设置的root密码,必须修改成你们自己的密码,用我的,我可不给你们说密码。
network --device eth0 --bootproto dhcp 这一项必须要设置的,否则,进入系统后,无法获取ip,就找不到ks.cfg文件了。整个启动过程中,需要获得两次ip才可以的。这步很关键。
最后,重启服务:
service dhcpd restart ;
service nfs restart ;
service xinetd restart;
service rpcbind restart
请注意标红的设置内容。