PXE简介
PXE,全名Pre-boot Execution Environment,预启动执行环境;
通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
由Intel和Systemsoft公司于1999年9月20日公布的技术;
Client/Server的工作模式;
PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;
PXE客户端(client)这个术语是指机器在PXE启动过程中的角色。一个PXE客户端可以是一台服务器、笔记本电脑或者其他装有PXE启动代码的机器(我们电脑的网卡)。
Kickstart安装配置
centos 7
#基于YUM安装DHCP、TFTP、HTTPD服务
yum install httpd httpd-devel dhcp* tftp-server -y
- 挂载光盘
#挂载本地光盘
mount /dev/cdrom /mnt/cdrom
#安装syslinux必备文件
yum install syslinux syslinux-devel -y
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。如果没有找到pxelinux.0这个文件,可以安装一下。
mkdir -p /var/lib/tftpboot/pxelinux.cfg/
\cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
\cp /mnt/cdrom/isolinux/vesamenu.c32 /var/lib/tftpboot/
\cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/
\cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/
\cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
chmod 644 /var/lib/tftpboot/pxelinux.cfg/default
- 配置TFTPBOOT引导文件
cat>/var/lib/tftpboot/pxelinux.cfg/default<<EOF
default vesamenu.c32
timeout 5
display boot.msg
menu clear
menu background splash.png
menu title CentOS Linux 7
label linux
menu label ^Install CentOS Linux 7
menu default
kernel vmlinuz
# ip 修改
append initrd=initrd.img inst.repo=http:// 192.168.31.12/centos7 quiet ks=http://192.168.31.12/ks.cfg
label check
menu label Test this ^media & install CentOS Linux 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
EOF
#配置 http目录
mkdir -p /var/www/html/centos7/
mount /dev/cdrom /var/www/html/centos7/
- 配置kickstart文件
cat>/var/www/html/ks.cfg<<EOF
install
text
keyboard 'us'
timezone Asia/Shanghai
url --url=http://10.0.0.6/centos7 #ip
lang zh_CN
rootpw 123456
firewall --disabled
network --bootproto=dhcp --device=ens33 # 哪个网卡
auth --useshadow --passalgo=sha512
firstboot --disable
selinux --disabled
bootloader --location=mbr
clearpart --all --initlabel
part /boot --fstype="ext4" --size=300
part / --fstype="ext4" --grow
part swap --fstype="swap" --size=512
reboot
%packages
@base
@core
%end
EOF
- 部分配置参数参考(来源官网)
install 告知安装程序,这是一次全新安装,而不是升级upgrade。
url --url=" " 通过FTP或HTTP从远程服务器上的安装树中安装。
url --url="http://10.0.0.7/CentOS-6.7/"
url --url ftp://<username>:<password>@<server>/<dir>
nfs 从指定的NFS服务器安装。
nfs --server=nfsserver.example.com --dir=/tmp/install-tree
network 为通过网络的kickstart安装以及所安装的系统配置联网信息。
network --bootproto=dhcp --device=eth0 --onboot=yes --noipv6 --hostname=CentOS6
--bootproto=[dhcp/bootp/static]中的一种,缺省值是dhcp。bootp和dhcp被认为是相同的。
static方法要求在kickstart文件里输入所有的网络信息。
network --bootproto=static --ip=10.0.0.100 --netmask=255.255.255.0 --gateway=10.0.0.2 --nameserver=10.0.0.2
请注意所有配置信息都必须在一行上指定,不能使用反斜线来换行。
--nameserver=,配置dns解析.
rootpw root密码
clearpart 清空分区。clearpart --all --initlabel
--all 从系统中清除所有分区,--initlable 初始化磁盘标签
part 磁盘分区。
part /boot --fstype=ext4 --asprimary --size=200
part swap --size=1024
part / --fstype=ext4 –grow --asprimary --size=200
--fstype=,为分区设置文件系统类型.有效的类型为ext2,ext3,swap和vfat。
--asprimary,强迫把分区分配为主分区,否则提示分区失败。
--size=,以MB为单位的分区最小值.在此处指定一个整数值,如500.不要在数字后面加MB。
--grow,告诉分区使用所有可用空间(若有),或使用设置的最大值。
- 配置DHCP
cat>/etc/dhcp/dhcpd.conf<<EOF
ddns-update-style interim;
ignore client-updates;
next-server 192.168.10.4;
filename "pxelinux.0";
allow booting;
allow bootp;
subnet 192.168.10.0 netmask 255.255.255.0 {
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.10.180 192.168.10.200;
}
EOF
# ddns-update-style interim 动态的dns 的更新方式
# ignore client-updates" 这个选项是不允许客户机更新 DNS 记录
#allow booting;#定义能够PXE启动
#allow bootp;#定义支持bootp
# subnet 192.168.10.0 netmask 255.255.255.0 服务端IP网段及掩码
# range 192.168.10.10 192.168.56.20; dhcp 分发的地址范围,最好将本机IP包含在内。
# default-lease-time 600;max-lease-time 7200; IP地址租约时间。
# filename "pxelinux.0"; 指定引导文件位置,这里是TFTP根目录下的pxelinux.0。
# next-server 192.168.56.14; TFTP服务器地址。
服务启动
systemctl start ftfp
systemctl start httpd
systemctl start dhcp
网友评论