通过pxe kickstart方式安装Linux(centos 6.5)
通过pxe kickstart方式安装Linux(centos 6.5)
我们一般用光盘,u盘,硬盘方式安装Linux系统,但是有时身边没有这些时我们就要用到pxe 安装了,如果要实现自动化安装则需要用到kickstart。
1. 什么pxe
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot Execution Environment)协议可以使计算机通过网络启动。此协议分为 Client 端和 Server 端,而 PXE Client 则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。
2.什么是kickstart
Kickstart 是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件。如果在安装过程中(不只局限于生成 Kickstart 安装文件的机器)出现要填写参数的情况,安装程序首先会去查找 Kickstart 生成的文件,如果找到合适的参数,就采用所找到的参数如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart 文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后就去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中的设置重启系统,并结束安装。
3. PXE + Kickstart 的安装条件和详细步骤
执行 PXE + Kickstart 安装需要的设备为:
DHCP 服务器。
TFTP 服务器。
Kickstart 所生成的 ks.cfg 配置文件。
一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器。
一个带有 PXE 支持网卡的主机。
4.安装dhcp
yum install -y dhcp
dhcp配置,可以复制/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
修改dhcpd配置结果如下
vi /etc/dhcp/dhcpd.conf
# dhcpd.conf
# Sample configuration file for ISC dhcpd
log-facility local7;
# A slightly different configuration for an internal subnet.
subnet 192.168.188.0 netmask 255.255.255.0 {
range 192.168.188.129 192.168.188.200;
option domain-name-servers 192.168.188.128;
option routers 192.168.188.1;
option broadcast-address 192.168.188.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.188.128;
filename "pxelinux.0";
}
启动或重启 dhcpd 服务
service dhcpd start
service dhcpd stop
service dhcpd restart
chkconfig dhcpd on
5.安装tftp服务
yum install -y tftp-server
修改tftp设置
vi /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = yes
per_source = 11
cps = 100 2
flags = IPv4
}
准备启动文件
pxelinux.0 :
yum install isolinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
vmlinuz,vesamenu.c32 initrd.img:
mount /dev/cdrom /media/
cp /media/isolinux/vmlinuz /var/lib/tftpboot/
cp /media/isolinux/vesamenu.c32 /var/lib/tftpboot/
cp /media/isolinux/initrd.img /var/lib/tftpboot/
default :
mkdir pxelinux.cfg
cp /media/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
修改default设置,添加ks配置
vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.5!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=nfs:192.168.188.128:/ks/ks.cfg
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img xdriver=vesa nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
6.安装system-config-kickstart
yum install -y system-config-kickstart
启动system-config-kickstart图形工具
system-config-kickstart
接下来是一系列的系统设置选项,
创建ks,用于保存ks.cfg
mkdir /ks
完成一系列配置后点击file-save as
保存到/ks目录下
7.安装nfs服务
yum install -y nfs-*
修改nfs配置文件 加入要共享的目录(系统光盘 ks)
vi /etc/exports
/media 192.168.188.128(ro)
/ks 192.168.188.128(ro)
启动nfs服务
service nfs restart
(如果遇到nfs无法启动的问题可能是因为rpcbind服务没有启动,先启动rpcbind服务再启动nfs服务)
开启客户端主机 设置从网络启动就开始安装了