Provisioning Services 7.8 入门系列教程之十四 UEFI支持和BOOTPTAB 编辑器

简介:

 续Provisioning Services 7.8 入门系列教程之十三 使用 Boot Device Management(BDM)

UEFI,全称Unified Extensible Firmware Interface,即“统一的可扩展固件接口”,是一种详细描述全新类型接口的标准,是适用于电脑的标准固件接口,旨在代替BIOS(基本输入/输出系统)。此标准由UEFI联盟中的140多个技术公司共同创建,其中包括微软公司。UEFI旨在提高软件互操作性和解决BIOS的局限性。

相比传统的BIOS启动,UEFI启动如下特点:

1、通过保护预启动或预引导进程,抵御bootkit攻击,从而提高安全性。    
2、缩短了启动时间和从休眠状态恢复的时间。     
3、支持容量超过2.2 TB的驱动器。

要使用UEFI启动计算机,需要硬件和操作系统都支持。目前的电脑硬件(主要是主板)基本上都同时支持两种启动方式,Windows 2003,XP等一些操作系统不支持UEFI安装,Windows 2012,Windows 10等操作系统支持。

一、PVS对UEFI的支持

应该说,在实际生产环境中可能会出现两种启动方式并存的现象,而这两种启动方式需要下载的引导程序是不一样的。传统的启动方式需要ardbp32.bin文件,面UEFI启动需要的是pvsnbpx64.efi

在以前的版本的PVS中,两种引导文件的同时出现,给网络拓扑带来了一定的复杂性。因为在同一个作用域下,DHCP服务器只能设置一个引导文件名(067选项)。因此,为了满足实际的需要,用户

只能从以两种方式进行解决:

1、如果选择了 DHCP 选项 67,则存在两个拓扑选项:

在单个段上,使用 DHCP 预留为每个目标设备指定引导程序文件名(选项 67)。 这适用于较小的环境,但可以快速扩展以适用于企业环境。

将环境分为多个段,将旧版设备与 UEFI 设备隔离开来。 对于每个段,在DHCP服务器中建立一个作用域,通过设置的相应选项 67 。

2、用户也可以建立BootPTAB数据库的方式,来区分每台设备的启动方式。关于这一点,见后面的BootPTAB文件介绍。

 

针对这两种启动方式并在的现象,PVS 7.8提供了很好技术支持。用户只需要在DHCP作用域选项中建立相应选项:

建立DHCP 选项 11 – RLP 服务器

选项 11 允许您指定多个 IPv4 地址。使用此选项可在 Provisioning Services 服务器上指定流 NIC 的地址。 可以指定四个以上的地址。 UEFI 引导程序将读取所有地址,然后使用轮循机制选择一个要连接到的地址。

注意:选项 17 的优先级高于选项 11。

建立DHCP 选项 17 – 引导路径

“引导路径”选项通常与 iSCSI 结合使用以指定要启动的服务器和虚拟磁盘。 Provisioning Services 使用以下格式指定服务器地址:

pvs:[:17:]

pvs – 所需的标识符

IPv4 – Provisioning Services 服务器上的流 NIC 的地址

17 – UDP 的协议标识符(如果指定了登录端口,则需要此参数)

port – 登录端口(如果使用默认端口 6910,则不需要此端口)

示例:

pvs:192.168.0.213

pvs:192.168.0.213:17:7800

 

为了熟悉操作过程,笔者在Hyper-v新增一台虚拟机作为目标设备,安装了Windows 2012 R2,并生产映像,虚拟磁盘为Win12U.

注意,为了实现UEFI启动,应选择的虚拟机的代数为“第二代”。

DSS061

其他过程略。

结果与问题:

笔者新建了一台虚拟机,作为测试设备,并在增加到PVS中。通过网络启动后,如下图

DSS060

 

从上图中可以看出,设备下载了引导文件pvsnbpx64.efi。

但未能正常启动设备,总出现如下错误:

BNIStack failed, network stack could not be initialized

通过在网络上查询,得到的解决方法:删除设备管理器的隐藏网络适配器。

然而笔者通过多次增多不能成功。

有趣的是,尽管其他新增设备不能启动,但将原来目标设备(产生UEFI映像的设备)直接改成从虚拟磁盘启动,可以成功。

所以笔者最终认为,这有可能是在Hyper-V虚拟环境下,硬件的问题。

以上故障希望广大网友帮助解决。

二、关于BOOTPTAB 编辑器

用户可以使用 BOOTPTAB 文件可将目标设备与特定的引导程序相关联。BOOTPTAB 编辑器是用于在 BOOTPTAB 数据库文件中创建、编辑和维护条目的实用程序。

 

BOOTPTAB 文件的格式如下:

:ha=:ar=:bf=

 

示例:

host001:ha=001122334455:ar=0:bf=ardbp32.bin

host002:ha=554433221100:ar=7:bf=pvsnbpx64.efi

如果缺少体系结构标志,则默认值为 0。

 

“ar”标记指定目标设备的引导环境的体系结构。

当ar=0,体系结构为x86 BIOS,引导程序名为ardbp32.bin;

当ar=6,体系结构为x86 UEFI,引导程序名为pvsnbpia32.efi;

当ar=7,体系结构为x64 UEFI,引导程序名为pvsnbpx64.efi;

 

ha=MAC地址,在 PXE 环境中,有时使用通配符来表示多组客户端 PC 的 MAC 地址,这样无需获取单个 12 位地址。

bf=引导程序名。

 

至此,整个系列教程终于完成。正如笔者在前面所写到的那样,整个教程没有、也不想有太多理论,其实笔者也不懂太多理论。只想突出实际操作,记录部署过程。

只希望对那些和“过去的我”一样,心怀IT梦想的“那些人”,有所帮助,如此足矣!


















本文转自ycrsjxy51CTO博客,原文链接:http://blog.51cto.com/ycrsjxy/1773214,如需转载请自行联系原作者


相关文章
|
1月前
|
存储 搜索推荐 Shell
【Shell 命令集合 文本编辑器】Linux joe 编辑器的使用教程
【Shell 命令集合 文本编辑器】Linux joe 编辑器的使用教程
32 0
|
7月前
|
Shell Linux Apache
学习Nano编辑器:入门指南、安装步骤、基本操作和高级功能
学习Nano编辑器:入门指南、安装步骤、基本操作和高级功能
1043 0
|
7月前
|
缓存 Ubuntu Linux
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
Vim编辑器入门指南:安装、基本操作和高级技巧详解 | 适用于Linux系统
289 0
|
1月前
|
机器学习/深度学习 数据可视化 Unix
2023最全vim编辑器教程(详细、完整)-编辑器之神
2023最全vim编辑器教程(详细、完整)-编辑器之神
|
4月前
|
Linux 开发工具
百度搜索:蓝易云【Linux如何使用Nano编辑器教程。】
需要注意的是,Nano是一款轻量级的文本编辑器,适用于简单的编辑任务。如果你需要进行更复杂的编辑或编程任务,可能需要使用更强大的编辑器,如Vim或Emacs。
30 0
|
8月前
|
JavaScript
Vue富文本编辑器使用教程
Vue富文本编辑器使用教程
178 0
|
9月前
|
Ubuntu Linux 开发工具
vim编辑器使用教程
vim 是 Linux 系统内置的「文本编辑器」,用于查看或编辑文件的内容,学会使用 vim 编辑器,将在 Linux 终端中畅通无阻。
895 0
|
10月前
|
机器学习/深度学习 编译器 Linux
Linux_vim编辑器入门级详细教程
Linux_vim编辑器入门级详细教程
110 0
|
11月前
|
存储 JSON iOS开发
Apple 的 plist 编辑器入门指南:基础操作与高级功能详解
【摘要】 PlistEdit Pro是一款专为macOS编写的最高级属性列表Plist编辑器。对于Mac和IOS开发人员来说,编写应用程序时必须编辑各种列表文件。PlistEdit Pro通过提供直观且功能强大的界面,使编辑这些文件更加容易。它不仅能够复制和粘贴或拖放属性列表数据,还提供强大的搜索和替换功能,并定义了可轻松访问属性列表中各种标准文件中最常用键的结构。有经验的用户还可以从浏览器中提取Pl...
|
11月前
|
缓存 开发工具 图形学
游戏开发实战教程(14):关卡编辑器的制作以及关卡分享功能的实现
上周在制作完闯关模式后,我有了在游戏中做一个关卡编辑器的想法,让玩家可以在游戏中制作自己的关卡进行挑战,甚至可以将自己制作的关卡与朋友进行分享。 原有的关卡编辑器是使用Unity做的,因为可以方便的进行文件的读取和写入,可以将设计好的关卡数据写入到文件中,然后在将文件中的数据导入到微信小游戏开发工具中。
245 0