无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 25890|回复: 35
打印 上一主题 下一主题

[教程] 无盘服务器架设之一:编译iPXE,用于网络,ISO,USB等无盘启动

    [复制链接]
跳转到指定楼层
1#
发表于 2018-3-14 11:46:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 友联电脑 于 2021-6-17 19:47 编辑

无盘服务器架设之一:编译iPXE,用于网络,ISO,USB等无盘启动
http://bbs.wuyou.net/forum.php?m ... 4978&extra=page%3D1

无盘服务器架设之二:Linux基础服务器安装
http://bbs.wuyou.net/forum.php?m ... 4982&extra=page%3D1

无盘服务器架设之三:Linux平台相关服务安装与调试
http://bbs.wuyou.net/forum.php?m ... 1&extra=#pid3537701

无盘服务器架设之四:iPxe无盘超级应用实例
http://bbs.wuyou.net/forum.php?m ... 1&extra=#pid3528269

动起手来,编译iPXE,用于网络,ISO,USB等无盘启动
iPxe的源码保存的仓库http://git.ipxe.org/ipxe.git。在Linux平台下,你可使用下面的命令将其克隆到本地

  git clone git://git.ipxe.org/ipxe.git

命令完成以后,当前目录下就会有个ipxe文件夹,里面就是全部源码

编译之前,请确保平台上有以下软件包及支持库

    gcc (version 3 or later)
    binutils (version 2.18 or later)
    make
    perl
    liblzma or xz header files
    mtools
    mkisofs (needed only for building .iso images)
    syslinux (for isolinux, needed only for building .iso images)

各Linux平台,使用相应的命令安装以上软件包,下面开始编译你相想要的

cd ipxe/src  ##进入下级源码目录


编译光盘格式和USB存储器使用的IPXE

你可以编译一个可启动IPXE光盘或者是USB存储器,用来启动机器,引导IPXE无盘。此时主板BIOS内置PXE选项无需开启
  
     make bin/ipxe.iso   ##编译bin/ipxe.iso

如果一切顺利,就会在bin/目录下生成ipxe.iso文件,将此文件烧录或其它方法启动,即可开启ipxe无盘之路

   make  bin/ipxe.usb  ##编译bin/ipxe.usb   

使用以下类似的命令,将ipxe.usb 写入USB存储器,就可直接从U存储上开启ipxe无盘之路
  dd if=bin/ipxe.usb of=/dev/sdX   #sdX为U存储器在平台上的块设备链接

我们做无盘启动,用的最多的就是下面这种pxe rom,用于机器比较多的情况下,直接从服务器上下载ROM,然后启动IPXE

  make bin/undionly.kpxe    ##无盘启动加载的ROM

你还可以编译一个iPXE ROM替换主板或网卡内置的PXE启动为IPXE,如下
   
  make bin/808610de.rom   ##808610de  为网卡的PCI vendor 和设备ID.

下面是高级应用方法

嵌入脚本,你可以在编译之时,将脚本嵌入在ROM当中,这样ROM被加载后,就可以直接启动相应的脚本,以达到快速启动的目的。如某些品牌主板,其PXE有设置启动参数的功能,如直接启动某iscsi硬盘。像这样的用法,就是下面要讲的嵌入式脚本

新建以下文件bootserver.ipxe

#! ipxe
dhcp
chain http://bootserver.boot.com/boot.php

嵌入脚本编译IPXE

  make bin/undionly.kpxe EMBED=bootserver.ipxe

这样将会得到一个自定义的ipxe启动映像,非常方便的。

你还可以根据自身的情况,用其它的IPXE命令生做成一个脚本,嵌入rom内,这不得不说,真的不错。

ipxe启动后,直接调用dhcp获取IP参数,然后加载http://bootserver.boot.com/boot.php 文件,此时boot.php内的脚本就可更好的控制和跳转到各种启动项目。如果以上脚本直接改为相应的ISCSI硬盘启动,那么这样生成ROM将会在引导的时候,直接启动ISCSI硬盘,无需菜单,无需选项,一切都在相应的PHP文件内做好。



客户端启动信息截图
至于调试信息,网卡ROM,以及UEFI之类的,目前我还没有用上,体会不多。

参考链接

http://ipxe.org/download



点评

辛苦了  发表于 2024-5-13 10:10

评分

参与人数 3无忧币 +12 收起 理由
yyz2191958 + 2 赞一个!
wjguowei + 5 赞一个!
lookerJ + 5

查看全部评分

2#
发表于 2018-3-14 12:09:59 | 只看该作者
谢谢分享
回复

使用道具 举报

3#
发表于 2018-3-14 15:38:41 | 只看该作者
谢谢分享 学习学习
回复

使用道具 举报

4#
发表于 2018-3-14 16:15:34 | 只看该作者
http://bootserver.boot.com/boot.php 内容是什么? 这网址好像 404了

点评

这个是示例,你可将服务器架设在本地或互联网上,这个地址根据自身的情况而定。如果架设在本地,然后配置好DNS解析,就可以使用你喜欢的任意域名。  详情 回复 发表于 2018-3-14 16:44
回复

使用道具 举报

5#
 楼主| 发表于 2018-3-14 16:44:40 | 只看该作者
freecat 发表于 2018-3-14 16:15
http://bootserver.boot.com/boot.php 内容是什么? 这网址好像 404了

这个是示例,你可将服务器架设在本地或互联网上,这个地址根据自身的情况而定。如果架设在本地,然后配置好DNS解析,就可以使用你喜欢的任意域名。
回复

使用道具 举报

6#
发表于 2018-3-14 17:59:36 | 只看该作者
学习了,embed脚本很有用

点评

是的,脚本的用途真的很灵活  详情 回复 发表于 2018-3-14 18:12
回复

使用道具 举报

7#
 楼主| 发表于 2018-3-14 18:12:02 | 只看该作者
假大空 发表于 2018-3-14 17:59
学习了,embed脚本很有用

是的,脚本的用途真的很灵活
回复

使用道具 举报

8#
发表于 2018-3-14 20:58:10 | 只看该作者
有没现成或方便的linux编译环境,

点评

这个好像没有,建一个这样环境也是非常方便的,稍有有点Linux基础,操作起来应该都不难,我这有一贴关于基础安装的,有空可以看看 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=404982&extra=  详情 回复 发表于 2018-3-14 21:20
回复

使用道具 举报

9#
 楼主| 发表于 2018-3-14 21:20:08 | 只看该作者
江南一根葱 发表于 2018-3-14 20:58
有没现成或方便的linux编译环境,

这个好像没有,建一个这样环境也是非常方便的,稍有有点Linux基础,操作起来应该都不难,我这有一贴关于基础安装的,有空可以看看
http://bbs.wuyou.net/forum.php?m ... d=404982&extra=
回复

使用道具 举报

10#
发表于 2018-3-31 15:24:27 | 只看该作者
wintoflash 发表于 2018-3-22 21:50
porteus + 从官网(http://dl.porteus.org/)下载的devel模块就可以。

果然可以,最近在折腾啥东东,啥时候复出版面,

点评

做服务器监控,运维相关的事情  详情 回复 发表于 2019-1-13 16:05
回复

使用道具 举报

11#
发表于 2018-6-24 09:34:09 | 只看该作者
good
回复

使用道具 举报

12#
发表于 2018-7-2 06:46:12 | 只看该作者
drivers/bus/isa.c: 在函数‘isabus_probe’中:
drivers/bus/isa.c:50:25: 错误:数组下标大于数组边界 [-Werror=array-bounds]
    isa_extra_probe_addrs[ (ioidx) + ISA_EXTRA_PROBE_ADDR_COUNT ] : \
                         ^
drivers/bus/isa.c:112:18: 附注:in expansion of macro ‘ISA_IOADDR’
    isa->ioaddr = ISA_IOADDR ( driver, ioidx );
                  ^
cc1: all warnings being treated as errors
make: *** [bin/isa.o] 错误 1
[root@FengZi-Yun src]# make  bin/ipxe.usb
  [BUILD] bin/usbdisk.o
  [OBJCOPY] bin/usbdisk.bin
  [BUILD] bin/isa.o
drivers/bus/isa.c: 在函数‘isabus_probe’中:
drivers/bus/isa.c:50:25: 错误:数组下标大于数组边界 [-Werror=array-bounds]
    isa_extra_probe_addrs[ (ioidx) + ISA_EXTRA_PROBE_ADDR_COUNT ] : \
                         ^
drivers/bus/isa.c:112:18: 附注:in expansion of macro ‘ISA_IOADDR’
    isa->ioaddr = ISA_IOADDR ( driver, ioidx );
                  ^
cc1: all warnings being treated as errors
make: *** [bin/isa.o] 错误 1



这个怎么破? 不会搞
回复

使用道具 举报

13#
发表于 2018-9-14 11:34:42 | 只看该作者
编译报错util/zbin.c:7:18: fatal error: lzma.h: No such file or directory
compilation terminated.
Makefile.housekeeping:1381: recipe for target 'util/zbin' failed
make: *** [util/zbin] Error 1
求助
回复

使用道具 举报

14#
发表于 2019-1-13 14:18:01 | 只看该作者
高级应用方法  我不会弄可以找你定做吗?

点评

找个Linux环境,然后自己动手编译,应该是可以的。确实需要找也乐意效劳  详情 回复 发表于 2019-10-13 17:32
回复

使用道具 举报

15#
 楼主| 发表于 2019-1-13 16:05:35 | 只看该作者
江南一根葱 发表于 2018-3-31 15:24
果然可以,最近在折腾啥东东,啥时候复出版面,

做服务器监控,运维相关的事情
回复

使用道具 举报

16#
发表于 2019-10-12 19:34:26 | 只看该作者
顶一个先~
回复

使用道具 举报

17#
发表于 2019-10-12 19:34:47 | 只看该作者
顶一顶~~~
回复

使用道具 举报

18#
 楼主| 发表于 2019-10-13 17:32:44 | 只看该作者
gs542411 发表于 2019-1-13 14:18
**** 作者被禁止或删除 内容自动屏蔽 ****

找个Linux环境,然后自己动手编译,应该是可以的。确实需要找也乐意效劳
回复

使用道具 举报

19#
发表于 2020-2-11 14:53:07 | 只看该作者
加油
回复

使用道具 举报

20#
发表于 2020-2-29 18:57:35 | 只看该作者
回复

使用道具 举报

21#
发表于 2020-4-14 23:03:48 | 只看该作者
谢谢分享
回复

使用道具 举报

22#
发表于 2020-4-15 17:18:59 | 只看该作者
高端大器
回复

使用道具 举报

23#
发表于 2020-6-14 23:19:42 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

24#
发表于 2021-5-27 15:28:08 | 只看该作者
新手学习,感谢分享。
回复

使用道具 举报

25#
发表于 2021-6-16 13:14:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

26#
 楼主| 发表于 2021-6-17 19:49:32 | 只看该作者
bjay2008xmy 发表于 2021-6-16 13:14
纠正一个错误git clone git:/git.ipxe.org/ipxe.git中的git:/应为git://

动手执行过的,看样子,谢谢,手误少写了个反斜杠
回复

使用道具 举报

27#
发表于 2022-12-12 17:24:03 | 只看该作者
感谢分享,学习了
回复

使用道具 举报

28#
发表于 2024-4-18 21:19:33 | 只看该作者
感谢分享  非常好
回复

使用道具 举报

29#
发表于 2024-10-6 14:50:00 | 只看该作者
谢谢分享 学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-25 09:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表