PXE 装机详解

PXE 装机详解

===========================================================================

概述:

在实际工作中,我们经常会遇到这样的情况:想要安装Linux但是计算机没有光驱,或者是有大批量的计算机需要同时安装Linux,如果通过光驱的方式一个个安装,不仅效率低,也不利于维护。这是时候你就需要PXE的强大功能了。本文就将讲解利用PXE自动化安装CentOS6和CentOS7的安装过程。

===========================================================================

1.安装原理

安装流程

  • 客户机从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP
  • DHCP服务器返回分给客户机IP
  • 客户机向本网络中的TFTP服务器索取文件
  • 客户机取得bootstrap文件后之执行引导文件完成引导
  • 然后读取配置文件,通过TFTP服务器加载内核和文件系统
  • 进入安装画面, 此时可以通过选择HTTP、FTP、NFS(这里以http为例)方式进行安装

实现PXE网络安装必需的4个要素

  • 客户机的网卡必须为PXE网卡
  • 网络中必须要有DHCP和TFTP服务器,当然这两个服务器可以是同一台物理主机
  • 所安装的操作系统必须支持网络安装。
  • 必须要有FTP,HTTP,NFS至少一个服务器,当然也可以和DHCP和TFTP服务器同为一台物理主机

2.PXE配置流程图

3.实验环境描述:

  • 这里我使用的dhcp和tftp服务器为同一台CentOS 7主机;

4.CentOS 7具体实现如下:

 1)安装dhcp服务器,配置自定义作用域,如下:

[[email protected] ~]# yum install dhcp -y
[[email protected] ~]# cd /etc/dhcp/
[[email protected] dhcp]# ls
dhclient.d  dhcpd6.conf  dhcpd.conf
[[email protected] dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf
cp: overwrite ‘./dhcpd.conf’? y   

[[email protected] dhcp]# vim dhcpd.conf 
 subnet 10.1.0.0 netmask 255.255.0.0 {
         range 10.1.252.151 10.1.252.161;
	 filename "pxelinux.0";
	 next-server 10.1.252.153;
	 
}

 启动dhcp服务,验证端口(67/udp)是否处于监听状态

[[email protected] dhcp]# systemctl start dhcpd
[[email protected] dhcp]# ss -unl
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
UNCONN      0      0              *:67                         *:*                  
UNCONN      0      0              *:68                         *:*                  
UNCONN      0      0      127.0.0.1:323                        *:*                  
UNCONN      0      0              *:31084                      *:*                  
UNCONN      0      0              *:3031                       *:*                  
UNCONN      0      0              *:514                        *:*                  
UNCONN      0      0             :::69                        :::*                  
UNCONN      0      0             :::50914                     :::*                  
UNCONN      0      0             :::46863                     :::*                  
UNCONN      0      0            ::1:323                       :::*                  
UNCONN      0      0             :::514                       :::*

 2)配置tftp服务器,如下:

[[email protected] ~]# yum install tftp-server tftp -y  # 安装
 
[[email protected] ~]# systemctl start tftp.socket      # 启动

[[email protected] dhcp]# ss -unl                       # 查看端口69/udp
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
UNCONN      0      0              *:67                         *:*                  
UNCONN      0      0              *:68                         *:*                  
UNCONN      0      0      127.0.0.1:323                        *:*                  
UNCONN      0      0              *:31084                      *:*                  
UNCONN      0      0              *:3031                       *:*                  
UNCONN      0      0              *:514                        *:*                  
UNCONN      0      0             :::69                        :::*

 3)准备安装树

[[email protected] ~]# mkdir /var/ftp/pub/CentOS7
[[email protected] ~]# mount -r /dev/cdrom /var/ftp/pub/CentOS7
[[email protected] ~]# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda2       41922560  1017984  40904576   3% /
devtmpfs          477776        0    477776   0% /dev
tmpfs             500644        0    500644   0% /dev/shm
tmpfs             500644    13168    487476   3% /run
tmpfs             500644        0    500644   0% /sys/fs/cgroup
/dev/sda3       20961280 12449428   8511852  60% /usr
/dev/sda1         496300   192472    303828  39% /boot
/dev/sda6        5094652    11284   5022748   1% /testdir
tmpfs             100132        0    100132   0% /run/user/0
/dev/sr0         7587292  7587292         0 100% /var/ftp/pub/CentOS7  # 挂载成功
[[email protected] CentOS7]# ls
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  
RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL

[[email protected] CentOS7]# systemctl start vsftpd # 启动ftp服务

 4)准备/var/lib/tftpboot下文件

# 我们需要安装syslinux程序包,它会提供 pxelinux.0 文件,然后复制到其目录下;
[[email protected] dhcp]#  yum install syslinux -y
[[email protected] dhcp]# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/

# 挂载关盘,复制光盘中images/pxeboot下的文件(为pxe安装专用的内核等文件)
[[email protected] ~]# cp /var/ftp/pub/CentOS7/images/pxeboot/{initrd.img,vmlinuz} /var/lib/tftpboot/
[[email protected] ~]# ls /var/lib/tftpboot/
initrd.img  pxelinux.0  vmlinuz

# 复制syslinux程序包下的文件,分别为基于链式方式引导文件,内存磁盘引导项,菜单项,内存当磁盘的模拟文件
[[email protected] ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk}  /var/lib/tftpboot
[[email protected] ~]# ls /var/lib/tftpboot/
chain.c32  initrd.img  mboot.c32  memdisk  menu.c32  pxelinux.0  vmlinuz

  在/var/lib/tftpboot下创建为menu.c32提供菜单的配置文件(菜单加载时用到的配置文件信息)

[[email protected] tftpboot]# mkdir pxelinux.cfg
[[email protected] tftpboot]# vim pxelinux.cfg/default
 default menu.c32    
     prompt 5
     timeout 30
     MENU TITLE CentOS 7 PXE

     LABEL linux
     MENU LABEL Install CentOS 7 X86_64
     KERNEL vmlinuz
     APPEND initrd=initrd.img inst.repo=ftp://10.1.252.153/pub/CentOS7/

 5.此时,如果我们想手动安装,到这步就已经可以了,不防我们先测试一下

  1)新建一个虚拟机,网卡改到和10.1.252.153同一网络,如下

  2)启动此虚拟机,可以看到能正常获取到IP地址,并显示我们自己设定的安装界面,如下:

  3)5s钟之后开始加载程序,然后进入到手动安装界面,如下:

























时间: 2024-09-29 16:20:01

PXE 装机详解的相关文章

pxe+kickstart自动装机详解

pxe+kickstart 这个网上文档还挺多的,但是基本都好多坑,最后自己综合了几篇做成功了,在此记录. pxe的工作示意图,不管做什么还是要弄懂原理的 整个过程图解: 一.测试环境 centos 6.8(基础服务器安装) NAT网络模式 IP:192.168.40.134 关闭防火墙 SELINUX=disabled 二.安装篇 1 apache安装 #yum install httpd -y 注:此处还可以用nfs或者ftp #service httpd start #chkconfig

Linux配置批量装机详解

项目名称:机房PXE全自动批量装配 任务目标:机房里有一批(200多台)计算机,需要为其安装CentOS 7.5操作系统,并且部署好Web服务 -- .完成时间:24小时内需要交付 应用场景: 1)XX学校机房2)红帽认证考试环境3)企业集群节点部署4)数据中心服务器批量配置Shell脚本 项目需求: 为一批机器(比如裸机)快速安装CentOS7操作系统 通过独立网络(不要有其他的DHCP服务器,必要时应关闭VMware的DHCP)来实现 自己整理一份Word版的实验报告,以备不时之需 任务分析

[PXE] linux(centos)PXE服务器搭建,安装,启动及pxe协议详解

本章Blog相关Linux知识点 工作环境中,想要安装Linux但是计算机没有光驱,或者是有大批量的计算机需要同时安装Linux,就需要通过部署环境PXE+DHCP+TFTP+HTTP+kickstart 方式来实现了 . PXE是什么: PXE,预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制.这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装

PXE的概述及Linux使用详解

PXE的概述及使用详解 现在企业采购的很多计算机都是没光驱的,怎么安装系统呢?另外,如何能快速大规模安装Linux服务器操作系统呢,有什么好办法吗? 答案是有的,那就是本文要说的:PXE PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial filet

pxe详解

一.PXE到底是什么东东? PXE(Preboot Execution Environment) 预启动执行环境 是由Intel设计的协议,它可以使计算机通过网络启动.协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行. 既然是通过网络传输,就需要IP地址:也就是说在其启动过程中,客户端请求服务器分配IP地址,之后

kickstart安装系统原理详解

前言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装. 常规的办法有什么? 光盘安装系统===>一个服务器DVD内置光驱百千块,百台服务器都配光驱就浪费了,因为一台服务器也就开始装系统能用的上,以后用的机会屈指可数.用USB外置光驱,插来插去也醉了. U盘安装系统===>还是同样的问题,要一台一台服务器插U盘. 网络安装系统(ftp,http,nfs) ===>这个方法不错,只要服务器能联网就可以装系统了

cobbler系统安装详解

现在都知道运维自动化的重要性,尤其是对于在服务器数量按几百台.几千台增加的公司而言,单单是装系统,如果不通过自动化来完成,根本是不可想象的. 运维自动化安装方面,早期一般使用人工配置pxe+dhcp+tftp配合kickstart,现在开源工具就多了,如cobbler,OpenQRM和Spacewalk.本文是我自己试验整理的Cobbler系统安装详解.       Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧

自动化运维平台之系统自动化安装Cobbler系统使用详解

一.简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 二.cobbler提供的功能 使用

详解DHCP服务安装与管理

DHCP服务安装与管理 一.DHCP是什么 名称:DHCP – Dynamic Host Configuration Protocol 动态主机配置协议 功能:DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途: 1. 给内部网络或网络服务供应商自动分配IP地址,主机名,DNS服务器,域名 2. 配和其它服务,实现集成化管理功能.如:无人执守安装服务器 DHCP是一个C/S架构的协议,D