什么是网络启动(PXE),以及如何使用它?
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
就是这样,现在已经准备好基本布局.