PXE自动装机

1 简介

首先让我简单介绍一下PXE技术

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux系列系统等。本次试验只进行 linux Centos的安装测试。
本文只适用于BIOS的LETF启动方式

2 PXE的运行流程

理论概述:

启动安装--要求pxe网卡和主板的支持

PXE不是一种安装方式,是一种引导的方式。pxe方式要求安装的计算机中必须包含一个 支持PXE 的网卡,且主板支持网络引导,PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。

PXE协议通过client来server上下载文件

PXE协议分为 client 和 server 端,PXE client 在网卡Rom中,

网上找了一张图,流程看着比较清晰,就拿来用了

image

安装流程

1,客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP,并搜寻引导文件的位置

2,DHCP服务器返回分给客户机IP以及bootstrap文件的放置位置(该文件一般是放在一台TFTP服务器上)

  • 客户机向本网络中的TFTP服务器索取bootstrap文件,centos文件名称为pxelinux.0

  • 客户机取得bootstrap文件后之执行该文件

  • 根据bootstrap的执行结果,通过TFTP服务器加载内核和文件系统

  • 进入安装画面, 此时可以通过选择FTP,HTTP,NFS方式之一进行安装

为什么使用tftp传输系统文件

注:一方面tftp可以达到32M,对于系统内核,引导程序等小文件,足以达到

另一方面tftp使用udp协议69号端口,速度也快

足以满足要求速度也可以,何乐而不为

相关文件位置与内容:

dhcp配置文件/etc/dhcpd/dhcp.conf——ip管理与引导程序名称

tftp配置文件/etc/xinetd.d/tftp——tftp根目录,和上面的引导程序名称组成完整路径

引导程序读取的配置文件/tftpboot/pxelinux.cfg/default——启动内核其他

3 实验验证

环境准备

实验前最好关闭防火墙和selinux

完成实验一共需要

tftp dhcp http(或者NFS,ftp)服务

客户端:可获得IP地址

服务端系统Centos7

IP地址:172.16.10.62/24

配置PXE服务

1,DHCP服务配置安装

安装:

[root@localhost ~]# yum install dhcp -y

配置:


[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

default-lease-time 600; #默认的租约时间

max-lease-time 7200;    #最大租约时间

allow booting;          #定义可以PXE方式启动

allow bootp;              #定义支持boottp

subnet 172.16.10.0 netmask 255.255.255.0 {

  range 172.16.10.100 172.16.10.120;  # 可分配的IP地址段

  option routers 172.16.10.62;           #指定的网关

**  next-server 172.16.10.62; #tftp server的ip**

**  filename "pxelinux.0"; #pxe boot需要的启动文件名, 相当于bootloader**

}

启动dhcp

[root@localhost ~]# service dhcpd start

2 tftp服务安装

安装

[root@localhost ~]# yum install tftp -y

配置

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

}

启动tftpd

由于tftp服务依赖于xinet.d所以

启动方式如下

[root@localhost ~]# systemctl start xinetd

查看端口确实开启了

[root@localhost ~]# lsof -i:69

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

xinetd 1002 root 5u IPv4 31021 0t0 UDP *:tftp

3,安装http服务

安装启动

[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd

将Centos7的镜像文件挂载至/var/www/html/centos7/

测试http可以支持访问就行了

4,准备PXE需要的一些文件

将内核文件和系统文件拷贝至tftp目下

cp /var/www/html/centos7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

添加引导配置文件pxelinux.0

yum install syslinux -y
cp -r /usr/share/syslinux/* /var/lib/tftpboot/

添加引导配置文件

PXE程序会根据Client的MAC地址依次匹配,最后没有才匹配default文件

touch /var/lib/tftpboot/pxelinux.cfg/default

default文件实例:

default ks

#超时时间

timeout 100 

label ks

  menu label ^Auto Install CentOS 7

  kernel vmlinuz

#指定kickstart自动安装文件路径

  append initrd=initrd.img inst.ks=http://172.16.10.62/ks.cfg quiet 

ks文件可以自己生成,也可以copy  ~下的anaconda-ks.cfg文件自己修改

kickstart文件实例:

#version=RHEL7

# System authorization information

auth --enableshadow --passalgo=sha512

# 指定使用安装介质,支持多种方式

url --url http://172.16.10.62/centos7

text

# Run the Setup Agent on first boot

firstboot --enable

ignoredisk --only-use=sda

# Keyboard layouts

keyboard --vckeymap=us --xlayouts='cn'

# System language

lang zh_CN.UTF-8

#selinux

selinux --disabled

# Network information

#network  --bootproto=static --device=eno16777736 --ipv6=auto --activate

network  --hostname=localhost.localdomain

# Root password

# System timezone

timezone Asia/Shanghai --isUtc

# System bootloader configuration

bootloader --location=mbr --boot-drive=sda

autopart --type=lvm

# Partition clearing information

clearpart --all --initlabel --drives=sda

reboot

%packages

@compat-libraries

@core

@development

@base

vim

gcc-c++

gcc

lsof

net-tools

%end

安装过程截图

image
image
image

参考链接:

http://blog.51cto.com/st1sk/1680748

http://www.blogjava.net/qileilove/archive/2013/10/14/404942.html

http://blog.csdn.net/miss_acha/article/details/50373040

https://linux.cn/article-4902-2.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354