共计 5057 个字符,预计需要花费 13 分钟才能阅读完成。
什么是PXE
PXE(预启动执行环境 ) 是由 Intel 公司开发的最新技术,工作于 Client/Server 的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配 IP 地址,再用 TFTP 或MTFTP协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 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 上下载所需的文件了。
什么是Kickstart
Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件。如果在安装过程中(不只局限于生成 Kickstart 安装文件的机器)出现要填写参数的情况,安装程序首先会去查找 Kickstart 生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果 Kickstart 文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后就去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中的设置重启系统,并结束安装。
设置 BIOS 引导顺序为:硬盘,网络
前提:硬盘中没有系统。否则直接从硬盘启动了
PXE+Kickstart 无人值守安装操作系统完整过程如下:
一:实验环境:
服务端:linuxidc-63 IP:192.168.1.63 网卡模式:vmnet4
客户端:xuegod–64 IP:192.168.1.64 网卡模式:vmnet4
二:实验代码
第一块:安装ftp,tftp 服务部分
1. 安装 ftp 服务以及开启服务,设置为开机自动启动。
[root@linuxidc-63 ~]# yum install vsftpd -y
[root@linuxidc-63 ~]# service vsftpd restart
[root@linuxidc-63 ~]# chkconfig vsftpd on
2. 安装 TFTP, 修改 tftp 配置文件及开启服务
[root@linuxidc-63 ~]# yum install tftp tftp-server xinetd -y
[root@linuxidc-63 ~]# vim /etc/xinetd.d/tftp #修改下面红色部分
#server_args = -s /tftpboot 是 tftp 服务器运行时的参数。-s /tftpboot 表示服务器默认的目录是 /tftpboot
1)接着重新启动xinetd 服务,然后查看服务端口是否打开。
[root@linuxidc-63 ~]# /etc/init.d/xinetd restart
[root@linuxidc-63 ~]# netstat -anutp | grep xinetd
udp 0 0 0.0.0.0:69 0.0.0.
#OK,TFTP服务正常启动。Xinetd服务本来就是开机启动的,所以这里我们不再需要设置。
第二块:安装dhcp,修改配置文件及开启服务:
1:配置 DHCP 服务器:
[root@linuxidc-63 ~]# yum install dhcp –y
[root@linuxidc-63 ~]# cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆盖 “/etc/dhcp/dhcpd.conf”?Y # 复制配置模板文件到 DHCP 的配置目录中
2:修改配置文件
[root@linuxidc-63 ~]# vim /etc/dhcp/dhcpd.conf
# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option domain-name-servers 192.168.1.1;
option domain-name “internal.example.org”;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.1.63;
filename “pxelinux.0”;
}
注: 只保留一个subnet {。。。}
3:启动 DHCP,设置为开机启动
[root@linuxidc-63 ~]# service dhcpd restart
[root@linuxidc-63 ~]# chkconfig dhcpd on
第三块:配置使用PXE,kickstart 启动所需的相关文件
1:安装软件:安装包
[root@linuxidc-63]# yum -y install system-config-kickstart #安装此包时,会把 syslinux 软件包也安装上。
2:准备 tftp 需要共享出去的文件
[root@linuxidc-63 ~]# grep tftpboot /etc/xinetd.d/tftp
server_args= -s /var/lib/tftpboot
[root@linuxidc-63 ~]# vim /etc/xinetd.d/tftp
[root@linuxidc-63 ~]# mkdir /tftpboot
[root@linuxidc-63 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/#注,只有安装了 system-config-kickstart 软件包,才会有 /usr/share/syslinux/ 目录及目录中的文件。复制 pxelinux.0 文件至 /tftpboot/ 文件夹中。
[root@linuxidc-63 ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/#虚拟到内存中的镜像文件
[root@linuxidc-63 ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/#内核
[root@linuxidc-63 ~]# mkdir /tftpboot/pxelinux.cfg
#将 iso 镜像中的 /isolinux 目录中的 isolinux.cfg 复制到 pxelinux.cfg 目录中,同时更改文件名称为default
[root@linuxidc-63 ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default #系统启动
[root@linuxidc-63 ~]# chmod 644 /tftpboot/pxelinux.cfg/default#或者给 755 权限
3:修改 /tftpboot/pxelinux.cfg/default 的配置文件
[root@linuxidc-63 ~]# vim /tftpboot/pxelinux.cfg/default
#文件里面需要修改两行,修改第 1 行,linux意思是寻找下面 18 行的 label linux,然后修改下22 行(即在后面添加 ks=ftp://192.168.1.63/ks.cfg)。第22 行的意思是使安装程序通过 FTP 服务器访问 主机是 192.168.1.63 的kickstart文件。
#以上有关default 配置文件的修改就是通过 ftp 服务器方式来访问 kickstart 文件。
4:打开终端输入 system-config-kickstart 弹出来界面。
[root@xuegod63 ~]# echo $LANG
en_US.UTF-8
[root@xuegod63 ~]#.UTF-8
[root@linuxidc-63 ~]# system-config-kickstart#执行 system-config-kickstart 弹出来界面。
设置自己后期无人执守安装需要配置的参数:
我们设置下默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法。
我们配置 ftp 服务器的安装方法。选择执行 全新安装。然后点击引导装载程序选项
配置grub 相关选项。
设置分区大小
配置 网络,默认没有 网络设置,点击添加网络,设备名称为eth0,网络类型为 dhcp
验证,默认就可以了。
防火墙和selinux 根据自己需求选择开启或者禁用。选择关闭selinux 和防火墙。
打上对勾以图形界面安装系统:
#自定义软件包 , 默认可能没有勾选桌面。根据自己需求勾选。 我们为了快速度演示安装,不选择安装桌面。
#安装脚本:在 “ 预安装脚本 ”,” 安装后脚本 ” 对话框中,可以分别添加在安装前、安装后自动动行的可执行语句。此项设置 可以 使服务器自动化配置变得更加容易。
例如 :配置 客户机在完成安装后自动设置YUM 仓库。
rm -rf /etc/yum.repos.d/*
echo ‘[rhel-source]
name=Red Hat Enterprise Linux $releasever – $basearch – Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release‘ > /etc/yum.repos.d/rhel6.repo
点击左上角的文件选择保存,选择下保存的路径 到此所有关于安装的配置已经配置完毕,
[root@test1 ~]#cp /root/ks.cfg /var/ftp #复制 ks.cfg 文件到 /var/ftp 目录下
注:ks.cfg就是无人值守安装时要用的 Kickstart 文件。
要对应:/tftpboot/pxelinux.cfg/default文件中设置过ks=ftp://192.168.10.1/ks.cfg
配置基于 ftp 的yum源,用于客户端安装时,读取软件包用:
5:检测 各项参数
[root@linuxidc-63 ~]# vim /var/ftp/ks.cfg
[root@linuxidc-63 ~]# vim /tftpboot/pxelinux.cfg/default
#此时这里两处必须要显示一致
1)挂载光盘并查看
[root@linuxidc-63 ~]# mount /dev/cdrom /var/ftp/pub/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@linuxidc-63 ~]# mount
/dev/sr0 on /var/ftp/pub type iso9660 (ro)
2)重启服务
[root@linuxidc-63 ~]# getenforce
Disabled
[root@linuxidc-63 ~]# service vsftpd restart
3)清空防火墙并保存
[root@linuxidc-63 ~]# iptables -F
[root@linuxidc-63 ~]# service iptables save
4)查看
修改xuegod64 BIOS 启动顺序为网络优先,加电后开始启动。
检查安装后,是否执行了脚本
本文永久更新链接地址:http://www.linuxidc-63.com/Linux/2017-04/143182.htm