阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS6 PXE+Kickstart无人值守安装

77次阅读
没有评论

共计 4561 个字符,预计需要花费 12 分钟才能阅读完成。

本文由 LinuxProbe.Com 团队成员 逄增宝 整理发布,原文来自:David Camp。

一、简介
1.1 什么是 PXE

PXE(Pre-boot 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 方式之一进行安装;

详细工作流程,请参考下面这幅图:
CentOS6 PXE+Kickstart 无人值守安装

1.2 什么是 Kickstart

Kickstart 是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件。如果在安装过程中(不只局限于生成 Kickstart 安装文件的机器)出现要填写参数的情况,安装程序首先会去查找 Kickstart 生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果 Kickstart 文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后就去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中的设置重启系统,并结束安装。

PXE+Kickstart 无人值守安装操作系统完整过程如下:
CentOS6 PXE+Kickstart 无人值守安装

二、系统环境

实验环境:VMware Workstation 10

系统平台:CentOS release 6.5 (最小化安装)

网络模式:NAT 模式(共享主机的 IP 地址)

DHCP / TFTP IP:192.168.111.130

HTTP / FTP / NFS IP:192.168.111.130

关闭 Iptables 和 SELINUX

三、准备工作

生成 ks.cfg 文件需要 system-config-kickstart 工具,而此工具依赖于 X Windows,所以我们需要安装 X Windows 和 Desktop 并重启系统,操作如下:

# yum groupinstall "X Window System"
# yum groupinstall Desktop
# yum groupinstall Fonts
# reboot
四、配置 HTTP 安装方式
4.1 安装配置 HTTP,启动服务并开机自启
# yum install httpd –y
# /etc/init.d/httpd start
# chkconfig --level 35 httpd on
4.2 加载 ISO 镜像

在虚拟机中设置加载 ISO 镜像:
CentOS6 PXE+Kickstart 无人值守安装
将 iso 文件挂载至 /mnt/cdrom:
CentOS6 PXE+Kickstart 无人值守安装

4.3 复制光盘全部内容至 http 的根目录 /var/www/html/ 下
# cp -r /mnt/cdrom/ /var/www/html/
五、配置 TFTP
5.1 安装 tftp-server
# yum install tftp-server –y
5.2 启用 tftp 服务 tftp-server

# vi /etc/xinetd.d/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 
        per_source              = 11 
        cps                     = 100 2 
        flags                   = IPv4 
}
5.3 启动 tftp 服务 tftp-server

因为 tftp 服务是挂载在超级进程 xinetd 下的,所以通过启动 xinetd 来启动 tftp 服务,并开机自启动 xinetd:

# /etc/init.d/xinetd restart
# chkconfig xinetd on
六、配置支持 PXE 的启动程序
6.1 复制 pxelinux.0 文件至 /var/lib/tftpboot/ 文件夹中
# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

说明:syslinux 是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:SYSLINUX 是一个小型的 Linux 操作系统,它的目的是简化首次安装 Linux 的时间,并建立修护或其它特殊用途的启动盘。

6.2 复制 iso 镜像中的 /image/pxeboot/initrd.img 和 vmlinux 至 /var/lib/tftpboot/ 文件夹中
# cp /var/www/html/cdrom/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
6.3 复制 iso 镜像中的 /isolinux/*.msg 至 /var/lib/tftpboot/ 文件夹中
# cp /var/www/html/cdrom/isolinux/*.msg /var/lib/tftpboot/
6.4 在 /var/lib/tftpboot/ 中新建一个 pxelinux.cfg 目录
# mkdir /var/lib/tftpboot/pxelinux.cfg
6.5 将 iso 镜像中的 /isolinux 目录中的 isolinux.cfg 复制到 pxelinux.cfg 目录中,同时更改文件名称为 default
# cp /var/www/html/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
6.6 修改 default 文件

# vi /var/lib/tftpboot/pxelinux.cfg/default

default ks     # 默认启动的是 'label ks' 中标记的启动内核
prompt 1          # 显示 'boot:' 提示符。为 '0' 时则不提示,将会直接启动 'default' 参数中指定的内容。
timeout 6      # 在用户输入之前的超时时间,单位为 1/10 秒。
display boot.msg  # 显示某个文件的内容,注意文件的路径。默认是在 /var/lib/tftpboot/ 目录下。也可以指定位类似 '/install/boot.msg' 这样的,路径 + 文件名。
F1 boot.msg     # 按下 'F1' 这样的键后显示的文件。
F2 options.msg 
F3 general.msg 
F4 param.msg 
F5 rescue.msg 
label linux       #'label' 指定你在 'boot:' 提示符下输入的关键字,比如 boot: linux[ENTER],这个会启动 'label linux' 下标记的 kernel 和 initrd.img 文件。
  kernel vmlinuz  #kernel 参数指定要启动的内核。
  append initrd=initrd.img #append 指定追加给内核的参数,能够在 grub 里使用的追加给内核的参数,在这里也都可以使用。
label text 
  kernel vmlinuz 
  append initrd=initrd.img text 
label ks 
  kernel vmlinuz 
  append ks=http://192.168.111.130/ks.cfg initrd=initrd.img    # 告诉系统,从哪里获取 ks.cfg 文件 
label local 
  localboot 1 
label memtest86 
  kernel memtest 
  append -
七、配置 DHCP
7.1 安装 DHCP 服务
# yum -y install dhcp
7.2 复制配置模板文件到 DHCP 的配置目录中
# cp -f /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample  /etc/dhcp/dhcpd.conf
7.3 修改 /etc/dhcp/dhcpd.conf 配置文件,内容如下:
ddns-update-style interim; 
ignore client-updates; 
filename "pxelinux.0";   #pxelinux 启动文件位置;
next-server 192.168.111.130;  #TFTP Server 的 IP 地址;

subnet 192.168.111.0 netmask 255.255.255.0 {

        option routers                  192.168.111.130; 
        option subnet-mask              255.255.255.0;

        range dynamic-bootp 192.168.111.100 192.168.111.200; 
        default-lease-time 21600; 
        max-lease-time 43200;
}
7.4 启动 DHCP 服务
# /etc/init.d/dhcpd start
八、生成 ks.cfg 文件
8.1 安装 Kickstart
# yum install system-config-kickstart

启动 X Windows 环境

# startx

配置 Kickstart

# system-config-kickstart

A. 设置语言,键盘,时区,Root 密码,安装完毕后重启等。
CentOS6 PXE+Kickstart 无人值守安装
B. 设置安装方式,这篇文章介绍的是 HTTP 方式的安装,故选择 HTTP

CentOS6 PXE+Kickstart 无人值守安装

C. 安装 MBR

CentOS6 PXE+Kickstart 无人值守安装

D. 设置分区

CentOS6 PXE+Kickstart 无人值守安装

E. 分区总览

CentOS6 PXE+Kickstart 无人值守安装

F. 配置网络

CentOS6 PXE+Kickstart 无人值守安装

G. 认证配置

CentOS6 PXE+Kickstart 无人值守安装

H. SELinux 和防火墙配置

CentOS6 PXE+Kickstart 无人值守安装
I. 图形环境配置

CentOS6 PXE+Kickstart 无人值守安装

J. 软件包安装选择

CentOS6 PXE+Kickstart 无人值守安装

K. 预览

CentOS6 PXE+Kickstart 无人值守安装

L. 生成 ks.cfg 文件,保存在 /var/www/html/ 文件夹下

CentOS6 PXE+Kickstart 无人值守安装

九、测试安装

1. 创建一台虚拟机
2. 启动虚拟机,选择从网卡启动,DHCP 服务器正在给客户机分配 IP 地址。
CentOS6 PXE+Kickstart 无人值守安装
3. 开始下载 vmlinuz 和 initrd.img
CentOS6 PXE+Kickstart 无人值守安装
4. 安装过程 …
CentOS6 PXE+Kickstart 无人值守安装

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计4561字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中