因为同学的光驱损坏,所以需要用网络方式安装RHEL,由于为还没有学习服务器的相关知识,这是我第一次使用这么多服务来安装操作系统,也使我第一次体会到了成功的喜悦。这些天看了很多大神关于PXE的文档,但是一只没办法成功安装,后来找到了抚琴煮酒(Andrew Yu)大神的文章,虽然是他的是安装RHEL5,与RHEL6有一些不同,但是经过一些细微的修改,终于成功通过PXE安装了RHEL,下面是抚琴煮酒(Andrew Yu)的原文,但是根据RHEL6做了一些改动。
本文记录了用Kickstart实现无人值守安装,搭建RHCE实验室环境的详细步骤。文中使用的环境为RHEL 5,也同样适用于CentOS。文章作者抚琴煮酒(Andrew Yu)是经验丰富的Linux/Unix系统工程师,并曾经担任过一段时间的RHCE讲师的工作。
原理和概念
什么是PXE
严格来说,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。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。
什么是KickStart
KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
PXE + KickStart安装的条件
执行 PXE + KickStart安装需要的设备为:
DHCP 服务器
TFTP 服务器
KickStart所生成的ks.cfg配置文件
一台存放系统安装文件的服务器,如 NFS、HTTP 或 FTP 服务器
带有一个 PXE 支持网卡的将安装的主机
安装的步骤
一、安装httpd
yum -y install httpd*
二、挂载RHEL5的DVD光盘,并复制第一张光盘下的所有内容(文件和文件夹)到/var/html/www下
mount /dev/cdrom /mnt
cp –rf /mnt/* /var/html/www
三、安装 tftp-server,并启用tftp服务,重启xinetd进程
rpm -ivh tftp-server-0.39-1.i386.rpm
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 #这个地方RHEL6和RHEL5是不一样的。
disable = no #disable的直由yes变为no
per_source = 11
cps = 100 2
flags = IPv4
}
service xinetd restart
四、配置支持PXE启动
注意我已经把第一张光盘的内容复制到/var/www/html目录中了,所以所需要的文件我只需要从/var/ftp目录中复制就行了,但在描述的时候,我还是表明了文件的真实的位置,比如在DVD光盘的哪个中, 是文件我是从/var/www/html目录中复制而已,大家也可学我样偷懒
1、进入tftpboot文件夹,没有就建一个,有了就不用建了。
cd /tftpboot/
2、把pxelinux.0复制到/tftpboot/中
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
3、把Linux第一张安装光盘上/image/pxeboot/initrd.img和vmlinux复制到/tftpboot/中
cp /var/ftp/image/pxeboot/initrd.img /tftpboot
cp /var/ftp/image/pxeboot/vmlinux /tftpboot
4、 复制第一张安装光盘上的isolinux/*.msg到/tftpboot/中
cp /var/ftp/isolinux/*.msg /tftpboot
5、 在tftpboot中新建一个pxelinux.cfg目录
mkdir pxelinux.cfg
6、 把Linux第一张安装光盘上isolinux目录中的isolinux.cfg复制到pxelinux.cfg目录中,并同时更改文件名称为default
cd pxelinux.cfg
cp /var/ftp/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
7、 在上一步中,我们暂时不要修改default文件。其实到达这一步骤的时候,我都就可以通过网络引导了,通过网络引导之后接下了就可以手动安装了,但是这里面我们讨论的是无人值守安装,而所谓无人值守安装就是在从引导到安装都不需要手动指定,一气呵成。我们接下来继续讲解。