OpenWrt PXE 网络引导服务器配置(BIOS+UEFI)

为了即将开始的 Linux 入门培训,笔者简单学习了一下 PXE启动服务器的配置,在路由器上面配置之后,大家随时可以网络引导 Ubuntu 之类的发行版,真心很方便啊 :)

一、基础知识

废话少说,看 wiki 去吧

https://en.wikipedia.org/wiki/Preboot_Execution_Environment

二、启动文件准备

这里,我们将使用 ubuntu 14.04 amd64 的iso安装镜像作为示例。另外,请准备好相应的U盘,建议格式为ext3/4

1、拷贝安装文件

2、准备 PXE 引导文件

这里我们使用 syslinux 里的相关组件

然后准备 *.cfg 配置文件

在BIOS和UEFI目录下建立相应目录的软链接

 

三、OpenWrt 环境准备

1、安装 USB 支持软件

安装完毕之后,插上U盘,使用 lsusb 命令查看设备

2、配置U盘自动挂载

先尝试手动挂载

编辑 /etc/config/fstab 文件,在mount 代码块中修改配置

检测能否正常挂载

3、安装并配置 NFS server

说明一下,NFS用来给ubuntu live cd加载系统的,如果使用ubuntu或者debian的最小网络安装镜像里的内核,可以不配置NFS

4、配置 DHCP 以及 TFTP

最简单也是最实用的办法就是 编辑 /etc/dnsmasq.conf 文件:

然后重启dnsmasq服务:

 

如果不需要UEFl+BIOS双启动支持,可以使用Luci 图形操作: 登录Luci web页面,Network --> DHCP and DNS  --> TFTP Settings

然后启用 TFTP server,根目录设置为 /mnt/PXEboot,引导镜像填写 pxelinux.0或者efi启动文件,保存即可,如下图。

openwrt_tftp然后luci会在 /etc/config/dhcp 文件里的 dnsmasq 配置段里自动添加如下几行内容:

另外,官方文档里还在 /etc/config/dhcp 文件里添加了  “config boot linux”的配置,我没有添加这段,也没问题

5、启动测试

最后就剩下实战测试了。不方便重启电脑的,可以使用虚拟机,桥接到物理网卡上面即可。附上截图一张:

pxeboot

6、我的其他配置

除了 ubuntu 14.04 的ISO,还尝试了添加 ubuntu netinstall的镜像。

下面是我的 pxelinux.cfg/default 文件内容:

 

 

参考资料:

https://wiki.openwrt.org/doc/howto/tftp.pxe-server

http://www.syslinux.org/wiki/index.php?title=Install

https://wiki.kubuntu.org/UEFI/SecureBoot-PXE-IPv6

http://fixmynix.com/how-to-setup-an-openwrt-pxe-boot-server/

 

《OpenWrt PXE 网络引导服务器配置(BIOS+UEFI)》有2个想法

  1. 请问,我要pxe启动的是win10pe.iso,这个pxelinux.cfg/default 文件应该怎么写?多谢!

    我在运行FreshTomato的路由器上,可以用BIOS方式pxe启动,并通过tftp/http/ftp三种方式下载ISO文件。但用UEFI方式进行pxe启动时总失败,想试试你的方法。

    1. 不好意思,这个事情太久了,好久没折腾过了,可能给不了您太多帮助;
      不过可以推荐一个网站 https://netboot.xyz , 公网的PXE引导服务,他们的资料都在github开源了;

      另外,USTC 的 PXE 引导服务也可以看一看,就是不如 netboot.xyz 稳定,而且可能需要加入他们的一些社群才能咨询吧

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注


The reCAPTCHA verification period has expired. Please reload the page.