无忧启动论坛

 找回密码
 注册
搜索
一次装机 终生领工资最纯净的「微PE装机优盘」UEPON大师作品好系统,装机首选好系统

「简单绿色的装机助手」盘云出品

助力无忧,捐助本站,加入VIP会员广告联系 QQ:184822951 微信:wuyouceo
查看: 1348|回复: 10

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

  [复制链接]
发表于 2018-3-14 11:46:42 | 显示全部楼层 |阅读模式
本帖最后由 友联电脑 于 2018-3-22 19:43 编辑

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

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

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

无盘服务器架设之四:iPxe无盘超级应用实例
http://bbs.wuyou.net/forum.php?m ... p;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文件内做好。

Screen Shot 2018-03-14 at 11.53.13.png

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

参考链接

http://ipxe.org/download



评分

参与人数 1无忧币 +5 收起 理由
lookerJ + 5

查看全部评分

发表于 2018-3-14 12:09:59 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2018-3-14 15:38:41 | 显示全部楼层
谢谢分享 学习学习
回复 支持 反对

使用道具 举报

发表于 2018-3-14 16:15:34 | 显示全部楼层
http://bootserver.boot.com/boot.php 内容是什么? 这网址好像 404了

点评

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

使用道具 举报

 楼主| 发表于 2018-3-14 16:44:40 | 显示全部楼层
freecat 发表于 2018-3-14 16:15
http://bootserver.boot.com/boot.php 内容是什么? 这网址好像 404了

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

使用道具 举报

发表于 2018-3-14 17:59:36 | 显示全部楼层
学习了,embed脚本很有用

点评

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

使用道具 举报

 楼主| 发表于 2018-3-14 18:12:02 | 显示全部楼层
假大空 发表于 2018-3-14 17:59
学习了,embed脚本很有用

是的,脚本的用途真的很灵活
回复 支持 反对

使用道具 举报

发表于 2018-3-14 20:58:10 | 显示全部楼层
有没现成或方便的linux编译环境,

点评

porteus + 从官网(dl.porteus.org)下载的devel模块就可以。  详情 回复 发表于 2018-3-22 21:50
这个好像没有,建一个这样环境也是非常方便的,稍有有点Linux基础,操作起来应该都不难,我这有一贴关于基础安装的,有空可以看看 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=404982&extra=  详情 回复 发表于 2018-3-14 21:20
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-14 21:20:08 | 显示全部楼层
江南一根葱 发表于 2018-3-14 20:58
有没现成或方便的linux编译环境,

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

使用道具 举报

发表于 2018-3-22 21:50:57 | 显示全部楼层
江南一根葱 发表于 2018-3-14 20:58
有没现成或方便的linux编译环境,


porteus + 从官网(http://dl.porteus.org/)下载的devel模块就可以。

点评

果然可以,最近在折腾啥东东,啥时候复出版面,  详情 回复 发表于 2018-3-31 15:24
回复 支持 反对

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2018-6-20 21:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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