赞
踩
一、PXE 介绍
PXE(Preboot Execution Environment ,预启动执行环境是由 Intel 公司开发的技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配 IP 地址,再用 TFTP 协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,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 上下载所需的文件了。
二、PXE 的工作过程
1、PXE Client 从自己的 PXE 网卡启动,向本网络中的 DHCP 服务器索取 IP;
2、DHCP 服务器返回分配给客户机的 IP 以及 PXE文件的放置位置,该文件一般是放在一台TFTP 服务器上;
3、PXE Client 向本网络中的 TFTP 服务器索取 pxelinux.0 文件;
4、 PXE Client 取得 pxelinux.0 文件后之执行该文件;
5、根据 pxelinux.0 的执行结果,通过 TFTP 服务器加载内核和文件系统;
6、进入安装画面 , 此时可以通过选择 HTTP 、 FTP 、 NFS 方式之一进行安装。
三、Kickstart介绍
Kickstart 是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件。如果在安装过程中 出现要填写参数的情况,安装程序首先会去查找 Kickstart 生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果 Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后就去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中的设置重启系统 ,并结束安装。
四、部署环境介绍
1、一台服务端 Intel Xeon E5 2692 (已安装 CentOS 6.5 )、七台客户端 Intel Xeon E5 2692 和一台以太网交换机;
2、IP 网段: 服务器和客户端都是202.197.4.0/24;
3、关闭 Server 端防火墙: service iptables stop;
4、禁用 SELINUX: setenforce 0;
5、每台服务器都安装了两块 300GB 大小的硬盘( sda、sdb);
五、服务器配置本地yum源
1、建立本地源挂载目录及挂载本地镜像:(1)mkdir /media/cdrom;(2)挂载光盘:mount /dev/cdrom /media/cdrom/;
2、进入/etc/yum.repos.d目录,可以看到四个文件分别为CentOS-Base.repo、 CentOS-Media.repo 、CentOS-Vault.repo、CentOS-Vault.repo.repo,将其中三个改名或者拷贝到其它目录中,只留下CentOS-Media.repo
#cd /etc/yum.repos.d
#mv CentOS-Base.repo CentOS-Base.repo.bak
#mv CentOS-Vault.repo CentOS-Vault.repo.bak
#mv CentOS-Vault.repo CentOS-Vault.repo.bak3、修改yum仓库配置文件
#vim /etc/yum.repos.d/CentOS-Media.repo
- #CentOS-Media.repo
- #This repo is used to mount the default locations for a CDROM / DVD on
- #CentOS-5. You can use this repo and yum to install items directly off the
- #DVD ISO that we release.
- ......
- 中间省略
- [test]
- name=CentOS-$releasever - Media baseurl=file:///mnt/cdrom/ #这里为本地源路径
- gpgcheck=1
- enabled=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
六、安装相关的软件包
1、安装 system config kickstart 工具
生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依赖于X Windows,所以我们需要安装X Windows 和Desktop 并重启系统,操作如下:
#yum groupinstall "X Window System"
#yum groupinstall Desktop
#reboot
2、安装 syslinux 软件包
syslinux 是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说: syslinux 是一个小型的 Linux 操作系统,它的目的是简化首次安装 Linux 的时间,并建立修护或其它特殊用途的启动盘。
# yum install syslinux -y
七、安装并配置 HTTP
系统的安装方式可以选择HTTP 、 FTP 、 NFS。本文主要介绍 HTTP 方式的安装 。
yum install httpd -y
service httpd start
chkconfig httpd on
cp -r /mnt/cdrom/ /var/www/html/ #复制光盘全部内容至http 的根目录/var/www/html/ 下
自此,HTTP 部分配置完毕。
八、安装并配置 TFTP
# yum install tftp-server y #安装 tftp 服务端
# vi /etc/xinetd.d/tftp #启用 tftp 服务
- service tftp
- {
- socket_type = dgram
- protocol = udp
- wait = yes
- user = root
- server = /usr/sbin/in.tftpd
- server_args = s /var/lib/tftpboot
- disable = no #将默认的 yes 改为 no
- per_source = 11
- cps = 100 2
- flags = IPv4
- }
保存、退出。
# service xinetd restart
tftp 服务是挂载在超级进程 xinetd 下的,所以通过启动 xinetd 来启动 tftp 服务
# chkconfig xinetd on
九、配置支持PXE的启动程序
1、复制 pxelinux.0 文件至 /var/lib/tftpboot/ 文件夹中;
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
2、复制 iso 镜像中的 /image/pxeboot/initrd.img 和 vmlinux 两个文件至 /var/lib/tftpboot/ 文件夹中;
# cp /var/www/html/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot
3、复制 iso 镜像中的 /isolinux/*.msg 至 /var/lib/tftpboot/ 文件夹中
# cp var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot
4、在 /var/lib/tftpboot/ 中新建一个 pxelinux.cfg 目录
# mkdir /var/lib/tftpboot/pxelinux.cfg
5、将 iso 镜像中的 /isolinux 目录中的 isolinux.cfg 复制到 pxelinux.cfg 目录中,同时更改文件名称为 default
# cp /var/www/html/cdrom/ isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
6、修改 default 文件
- default ks #默认启动的是 “label ks” 中标记的启动内核
- prompt 0 #显示 boot: 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的
- 内容。
- timeout 10 #在用户输入之前的超时时间 。
- display boot.msg #显示某个文件的内容,注意文件的路径。默认是在 /var/lib/tftpboot/ 目录下。也
- 可以指定类似 /install/boot. 这样的路径文件名。
- label ks #'label' 指定你在 'boot:' 提示符下输入的关键字,比如 boot: ks [ ENTER],这
- 个会启动'label ks ' 下标记的 kernel 和 initrd.img 文件。
- kernel vmlinuz #kernel 参数指定要启动的内核。
- append ks=http://202.197.4.140/ks.cfg initrd=initrd.img #告诉系统,从哪里获取ks.cfg 文件
- ksdevice=eth0 #当设备存在多网卡时,需指定从哪个网卡启动,否则安装系统时,需要再次人工干预进
- 行网卡选择
未完待续......
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。