Self Host netboot.xyz

有了之前的经验,现在可以自行部署带有中国大陆镜像设置的 netboot.xyz iPXE bootstraper 了。

总体要执行的命令
git clone https://github.com/enihsyou/netboot.xyz
cd netboot.xyz
 
docker build -t localbuild -f Dockerfile .
docker run --rm -it -v "$(pwd):/buildout" localbuild
 
rsync -avzh -CP ./buildout/ enihsyou.synology.me:/volume2/pve/tftproot/netboot.xyz/

构建通过 Docker 完成,即便在 Windows 环境也能进行。主要是构建时间比较长,大陆环境失败率还不低…

我在 fork 中主要做了这几个变化

  1. 调整 tftp-root-path 添加 /ipxe/
    :load-custom-ipxe 中会尝试一些路径寻找 menu.ipxe,而构建出来的结果会放在 ipxe 子目录下,导致失败并回退到 boot_domain 对应的官方位置下载。
    不调整代码就得用 mv buildout/ipxe/* buildout/ 指令把 ipxe 子目录的文件向上提到根目录。

  2. 调整下载镜像源
    设置各个下载 URL 到 cernet.edu.cn 或者 gh-proxy.com 来加速中国大陆访问速度。
    大部分源都设置有 base_dir,并且刚好和镜像站的别名相匹配,所以 mirror 连接只需要指明域名。
    对于 debian / ubuntu 这种分 mirror 和 archive_mirror 的源,得调整 base_dir 才能避免选择错误的 URL。

还有些其他个性化相关的文本改变,无伤大雅。