如果你是一个网管,需要管理管理一整个局域网,PXE 的网络启动就给我们提供了一个方便快捷的管理方法。
RouterOS中默认通过设置Boot File Name只可以引导 UEFI 进行 PXE 启动,但这不代表它不能引导 BIOS 甚至 ARM64 系统。
PXE三引导关键就是需要识别出客户端是通过哪种方式引导的系统,我们需要在 RouterOS中通过 DHCP 服务器读取到的客户端信息中识别并判断出客户端的类型,并返回给客户端不同的网络引导启动文件。
以下是设置三引导的具体步骤,以下图片使用编者汉化的Winbox与 RouterOS 7:
一、准备启动 PE 的文件,需要 HTTP 服务器:
1.加载PE时,需要准备好WIM或ISO格式的镜像文件,以及启动PE所需的其它支持文件。
123云盘链接:https://1677335.share.123pan.cn/123pan/ZId9-SfWJd?pwd=hMcH#
天翼云盘链接:https://cloud.189.cn/web/share?code=Nna6zmFBBz2y(访问码:5jjr)
2.从网盘中下载ipxe.zip文件,解压就可以得到所需要的所有文件。
3.准备好一个内网的WEB服务器(比如:WEB服务器为192.168.8.100),上述文件文件上传到web根目录的ipxe文件夹中。
4.测试WEB服务器上的文件是否可以正确访问。(比如:http://192.168.8.8.100/ipxe/pxeautorun.txt 是否可以打开)
5.使用记事本打开boot.cfg等3个 cfg 配置文件,将WEB服务器的地址改为你的服务器地址。
二、准备RouterOS 中的 TFTP 服务器:
1.下载编者编译好的3个引导文件与相应配置 cfg 文件的 boot3.zip压缩包:https://ssdl.lanzouu.com/iI5nu3yjghza 密码:bvnu
2.将准备好的 boot 文件夹(包含boot.efi 等6个文件)上传到 RouterOS 中的根目录中。

3.打开 “IP设置”中的 TFTP,添加一条访问 boot 文件夹的条目。
/ip tftp add real-filename=/boot/ req-filename=.*
三、RouterOS中 DHCP 服务器配置
1.在 DHCP 服务器中,配置 Bootp 支持为 dynamic 或 static。

2.DHCP服务器的网络标签中,不需要设置“引导文件名”。

3.DHCP服务器的选项标签中,添加bios、uefii、arm64三个项目。
/ip dhcp-server option
add code=67 name=bootfile-bios value="'bios.kpxe'"
add code=67 name=bootfile-uefi value="'boot.efi'"
add code=67 name=bootfile-arm64 value="'arm64.efi'"
4.DHCP服务器的选项集标签中,添加bios、uefii、arm64三个项目。
/ip dhcp-server option sets
add name=bios options=bootfile-bios
add name=uefi options=bootfile-uefi
add name=arm64 options=bootfile-arm64
5.DHCP服务器的选项匹配器标签中,添加 bios、uefii、arm64 不同客户端的匹配选项。
/ip dhcp-server matcher
add address-pool=pool1 code=93 matching-type=exact name=bios1 option-set=bios server=all value=0x0000
add address-pool=pool1 code=60 matching-type=substring name=bios2 option-set=bios server=all value="'00000'"
add address-pool=pool1 code=93 matching-type=exact name=uefi1 option-set=uefi server=all value=0x0007
add address-pool=pool1 code=60 matching-type=substring name=uefi2 option-set=uefi server=all value="'00007'"
add address-pool=pool1 code=93 matching-type=exact name=uefi3 option-set=uefi server=all value=0x0009
add address-pool=pool1 code=60 matching-type=substring name=uefi4 option-set=uefi server=all value="'00009'"
add address-pool=pool1 code=93 matching-type=exact name=arm1 option-set=arm64 server=all value=0x000b
add address-pool=pool1 code=60 matching-type=substring name=arm2 option-set=arm64 server=all value="'0000b'"代码中的地址池使用pool1,请根据实际地址池修改为相应值。

通过以上设置,已经可以完美支持 RouterOS 中的PXE 三种不同情况的引导。
BIOS 引导效果:

UEFI 引导效果:
