什么是网络启动(PXE),以及如何使用它?

时间:2020-01-09 10:44:11  来源:igfitidea点击:

PXE概述

PXE(预执行环境),亲切地称为Pixie(如仙尘),是一种仅使用其网卡引导终端计算机(客户端)的方法。这种引导方法是在1999年创建的,只要有问题的计算机连接到网络(并支持该标准),就有可能绕过常规引导过程(即IE Power on> BIOS> HD / CD)从故障排除到使用liveOS甚至重新镜像计算机,都可以做一些漂亮的事情。但是我们要超越自我,让我们回到起点。

使用PXE时,引导过程从正常顺序更改为:

开机> BIOS>网卡PXE堆栈>使用TFTP从服务器下载到客户端RAM的网络启动程序(NBP)> NBP负责执行下一步(又称为第二阶段启动)。

使用PXElinux NBP,可以为我们的客户端设置服务器,而不仅仅是一个PXE引导程序。从某种意义上说,正是秘密成分使我们能够执行上述所有任务,然后再执行某些任务。要更深入地说明整个过程,其历史以及它和gPXE(一个更先进的表亲)支持的一些基础架构选项,请参阅开发者在YouTube上的本讲座。另外,以下是2008年安装程序的视频,可以快速介绍一些引导可能性。

注意:在此视频中,已弃用的UDA项目用作服务器的基础,并且注释的目的是向朋友说明(当时)最近对其进行的添加。

安装利用FOG

FOG是由* Chuck Syperski和Jian Zhang创建的免费的开源计算机克隆解决方案。 FOG接收定期可用的软件(例如Apache,MySQL和tftpd-hpa等),并将其打包到免费的产品化PC生命周期管理(PCLM)解决方案中。使用此免费的PCLM,可以通过对计算机进行镜像,部署程序和设置(例如Firefox,Office,打印机等)和配置策略(例如自动注销和屏幕保护程序设置)来备份计算机状态,方法是通过一个中央网络界面。
注意:可以在Tightwad Tech上对Chuck和Jian进行有关FOG的采访。

使用FOG作为PXE服务器的基础,是将所有必要部件(如TFTP)和DHCP(如果需要)安装到位而无需手动安装和配置的绝佳捷径,同时还可以为我们提供所有FOG功能。

由于我们的目标是为这个已经很好的系统添加功能,因此我们将不讨论FOG本身的使用方法,也不深入介绍其安装过程。 FOG的Wiki及其书面和视频操作方法足够强大,可以深入了解信息(如果我们想浏览一下)。概括的步骤是:

sudo mkdir -p /opt/fog-setup

cd /opt/fog-setup
  • 从sourceforge下载最新的FOG软件包到上一步中创建的目录。

  • 解压缩软件包并开始安装。

sudo tar -xvzf fog*

cd fog*

cd bin

sudo ./installfog.sh
  • 安装程序将多次提示我们:1.我们要运行哪个版本的Linux? 2(同样,假设使用的是基于Debian的系统)2.我们想进行哪种安装? [N]输入3.此FOG服务器要使用的IP地址是什么? [server-IP-detected-on-eth0]输入。 4.我们想为DHCP服务器设置路由器地址吗? [是/否]输入。 5.我们想为DHCP服务器和客户端启动镜像设置DNS地址吗? [是/否]输入。 6.我们想从eth0更改默认网络接口吗?如果不确定,请选择"否"。[y / N]输入。 7.我们想将FOG服务器用于dhcp服务吗? [是/否] *输入8. 此版本的FOG具有国际化支持,我们是否要安装其他语言包? [是/否] 9.确定要继续(Y / N)Y。10.确认并按照MySQL的屏幕说明进行操作。 11.将root帐户的MySQL密码保留为空白。 12.我们想通知FOG组有关此安装的信息吗? Y(推荐)来自FOG Wiki的图像。

  • 使用浏览器转到雾地址,然后按照屏幕上的说明进行操作。

*注意:假设我们没有其他DHCP或者未将其设置为处理PXE。如果要配置现有的DHCP,请参阅为PXE配置DHCP。

就安装FOG而言,应该就是这样。再说一次,虽然FOG是一个很好的系统,但使用它并不是本指南的重点,我们鼓励我们访问其Wiki,以便我们可以更好地了解FOG的功能以及它如何管理客户生命周期。

如果一切顺利,我们应该可以PXE引导客户端计算机(通常为F12)并受到FOG的默认菜单的欢迎。
图片由Hotfortech捕获。

作为快速入门,我们可以选择Run Memtest86 +选项,并受到我们在《 Ubuntu Live CD诊断PC硬件问题》中介绍的Memtest程序的欢迎。

文件和目录结构

如前所述,我们的目标是扩展FOG的功能,为此,我们将需要添加一些文件和目录。

创建子目录结构:

sudo mkdir -p /tftpboot/theitroad/menus

sudo mkdir -p /tftpboot/theitroad/linux

sudo mkdir -p /tftpboot/theitroad/pics

sudo mkdir -p /tftpboot/theitroad/utils

这些子目录将用作我们用于扩展FOG的所有图片,程序和配置的模板。

调整默认配置文件

我们将建立一个新的主菜单,并将所有FOG功能放入其自己的子菜单中。

将/tftpboot/pxelinux.cfg/默认配置文件复制到theitroad / menus / fog.cfg

sudo cp /tftpboot/pxelinux.cfg/default /tftpboot/theitroad/menus/fog.cfg

现在,编辑原始默认文件的内容:

sudo vim /tftpboot/pxelinux.cfg/default

使它的内容如下所示:

DEFAULT vesamenu.c32

MENU TITLE FOG 0.32 + theitroad's enhancements

MENU INCLUDE /pxelinux.cfg/master.cfg

menu color title 1;36;44 #ff8c00 #00000000 std

LABEL FOG

MENU LABEL Manual FOG

MENU DEFAULT

KERNEL vesamenu.c32

APPEND theitroad/menus/fog.cfg
LABEL Utils MENU

LABEL Utilities

KERNEL vesamenu.c32

APPEND theitroad/menus/utils.cfg
LABEL Linux

MENU LABEL Linux stuff

KERNEL vesamenu.c32

APPEND theitroad/menus/linux.cfg

LABEL fog.local

localboot 0

MENU LABEL Boot from hard disk

TEXT HELP Boot from the local hard drive. If you are unsure, select this option.

ENDTEXT

PROMPT 0 TIMEOUT 300

ONTIMEOUT fog.local

完成后,此配置将为我们提供3个子菜单:实用程序,手动FOGing,Linux等。

创建主文件

主文件使我们可以对菜单的外观进行整体更改,而无需一遍又一遍地重新输入。诸如默认背景图片,边框,位置Etc之类的内容都将合并到此master.cfg文件中。

创建文件:

sudo vim /tftpboot/pxelinux.cfg/master.cfg

使它的内容看起来像:

MENU BACKGROUND fog/genie.png

menu color screen 37;40 #80ffffff #00000000 std

menu color border 30;44 #9370db #00000000 std

menu color title 1;36;44 #ff8c00 #00000000 std

menu color unsel 37;44 #ffffffff #00000000 std

menu color hotkey 1;37;44 #ffffffff #00000000 std

menu color sel 7;37;40 #4eee94 #9370db all

menu color hotsel 1;7;37;40 #e0400000 #20ff8000 all

menu color disabled 1;30;44 #60cccccc #00000000 std

menu color scrollbar 30;44 #40000000 #00000000 std

menu color tabmsg 31;40 #90ffff00 #00000000 std

menu color cmdmark 1;36;40 #c000ffff #00000000 std

menu color cmdline 37;40 #c0ffffff #00000000 std

menu color pwdborder 30;47 #80ffffff #20ffffff std

menu color pwdheader 31;47 #80ff8080 #20ffffff std

menu color pwdentry 30;47 #80ffffff #20ffffff std

menu color timeout_msg 37;40 #80ffffff #00000000 std

menu color timeout 1;37;40 #c0ffffff #00000000 std

menu color help 37;40 #c0ffffff #00000000 std

menu color msg07 37;40 #90ffffff #00000000 std
MENU MARGIN 0

MENU PASSWORDMARGIN 3

MENU ROWS 15

MENU TABMSGROW 21

MENU CMDLINEROW 20

MENU PASSWORDROW 11

MENU TIMEOUTROW 20

MENU HSHIFT 0

MENU VSHIFT 0

上面的配置将创建紫色边框并突出显示,如果我们希望拥有不同的外观,只需更改值即可。
要设置背景图片,请将图片放在/ tftproot目录中,然后将" MENU Background"指向图片的相对路径(我们建议使用分辨率为640 * 480的图片)。例如,上面配置的图片的完整路径为:/tftproot/fog/bg.png。

将FOG子菜单连接到主菜单

因为我们将原始配置文件的一个简单副本复制到菜单子目录(保留其颜色架构,超时等),所以如果我们现在从PXE引导的客户端进入该子菜单,它将可以使用,但是我们将如果不重新启动机器,将无法返回主菜单。

因此,编辑/tftpboot/theitroad/menus/fog.cfg文件:

sudo vim /tftpboot/theitroad/menus/fog.cfg

在菜单颜色标题条目之后和FOG功能之前添加此条目:

LABEL back

MENU LABEL ..

KERNEL vesamenu.c32

APPEND pxelinux.cfg/default

创建子菜单框架

我们创建了4个子菜单,其中三个由我们决定。为此,让我们创建将要构建的模板。

创建模板文件:

sudo vim /tftpboot/theitroad/menus/template.cfg

使其内容为:


MENU INCLUDE /pxelinux.cfg/master.cfg

#MENU BACKGROUND theitroad/pics/fog-sub.jpg

LABEL back MENU LABEL ..

KERNEL vesamenu.c32

APPEND pxelinux.cfg/default

让我们为其他子菜单奠定基础,这些子菜单将在以后的指南中介绍:


cd /tftpboot/theitroad/menus/

sudo cp template.cfg ./utils.cfg

sudo cp template.cfg ./linux.cfg

就是这样,现在已经准备好基本布局.