联想服务器-HTTP boot安装Linux系统

HTTP boot与传统PXE的主要差异

HTTP不再需要使用UDP协议的tftp服务(连接不可靠、不支持大文件)了,只需要dhcp 和http 两个服务即可,支持较稳定的大文件传输。

实验环境

ThinkSystem服务器SR650V2 SR660V2 通过HTTP boot安装CentOS8.1

基本步骤

HTTP boot三剑客

剑眼 制作http boot 的NBP文件

剑魂 HTTP boot服务器的搭建

剑灵 服务器端开启http boot

制作http boot 的NBP文件

使用ipxe编译制作支持http boot的NBP文件(根据了解,目前CentOS自带的NBP不支持http boot,网络上的其他tips,基本上都是使用SLES的NBP文件,对于使用者来说,很难理解其内部的文件嵌套调用情况,所以本文描述的实验是基于ipxe自己编译NBP文件,这样的话我们能很清楚地了解文件调用情况,便于根据实际需求制定方案)

获取ipxe源

从ipxe.org官网获取ipxe的源码

git clone https://github.com/ipxe/ipxe.git

创建ipxe自定义脚本

切换目录到ipxe/src/, 然后创建自定义ipxe脚本myipxe.script

#ipxe

:retry\_dhcp

dhcp || goto retry\_dhcp

chain http://${next-server}/ipxe.txt

内容说明:

上述例子中文件名可以自己定义,第一行是ipxe脚本的语法,中间的两行是实现“当dhcp没获取到ip时,不断重试dhcp,直到获取到ip”,最后一行是指定调用的文件,其中变量${next-server}是由dhcp服务传递过来的(这个调用的机制与CentOS7.X官方ISO中的NBP文件BOOTX64.EFI默认调用grub.cfg文件的原理类似)

ipxe是一个强大的工具,如果需要ipxe支持https,nfs等其他文件传输方式,可以在编译前修改ipxe/src/config/general.h文件,将对应协议前的#undef替换为#define

编译基于ipxe的NBP文件

编译ipxe的NBP文件,因为http boot只支持UEFI启动模式,所以我们需要编译uefi版本的NBP文件,编译完成后,我们将生成的ipxe.efi文件拷贝到网络部署服务器上待用。

make bin-x86\_64-efi/ipxe.efi EMBED=myipxe.script

HTTP boot服务器的搭建

dhcp配置文件准备

以下是本实验中用到的dhcp配置文件,以下例子中dhcp会根据客户端发送请求的标志区分其发送的是pxe请求还是http boot请求,指定不同的NBP文件。

cat /etc/dhcp/dhcpd.conf

option space PXE;

option PXE.mtftp-ip code 1 = ip-address;

option PXE.mtftp-cport code 2 = unsigned integer 16;

option PXE.mtftp-sport code 3 = unsigned integer 16;

option PXE.mtftp-tmout code 4 = unsigned integer 8;

option PXE.mtftp-delay code 5 = unsigned integer 8;

option arch code 93 = unsigned integer 16;

allow booting;

allow bootp;

subnet 172.20.0.0 netmask 255.255.0.0 {

range 172.20.0.101 172.20.200.240;

default-lease-time 36000;

max-lease-time 36000;

next-server 172.20.0.1;

option routers 172.20.0.11;

option domain-name-servers 208.67.222.222,8.8.8.8;

class "pxeclients"{

match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";

filename "bootx64.efi";

}

class "httpclients" {

match if substring (option vendor-class-identifier, 0, 10) = "HTTPClient";

option vendor-class-identifier "HTTPClient";

filename "http://172.20.0.1/ipxe.efi";

}

}

内容说明

根据上面的dhcp服务的配置文件,http boot的机器会尝试获取http://172.20.0.1/ipxe.efi这个NBP文件,所以我们需要将前面编译好的ipxe.efi文件放到http服务相应的目录(本测试用的是默认的/var/www/html/目录)

在前面创建ipxe自定义脚本时,我们指定了NBP文件启动后会调用的脚本http://${next-server}/ipxe.txt,所以我们需要编辑这个文件,并放到http服务相应的目录/var/www/html/

ipxe 内容

cat ipxe.txt

#!ipxe 

:start

menu HTTP Boot CentOS8.1

item --key 1 http\_boot\_centos\_installer

:http\_boot\_centos\_installer

echo CentOS8.1 Installer

set server\_ip 172.20.0.1

kernel http://${server\_ip}/centos81/images/pxeboot/vmlinuz initrd=initrd.img inst.ks=http://${server\_ip}/dxl-ks.cfg rd.net.timeout.carrier=30 inst.ksdevice=link inst.ip=dhcp

initrd http://${server\_ip}/centos81/images/pxeboot/initrd.img

boot || goto failed

内容说明

上面的定义实际上类似于pxe部署时对grub.cfg文件的定义,按上面定义的路径在httpd服务的根/var/www/html/下创建好centos81目录并挂载CentOS8.1的安装镜像, 将kickstart文件(本实验中指定的kickstart文件是dxl-ks.cfg)复制到/var/www/html/目录。

总的来说,在ipxe中指定的kernel、initrd、ks文件要能被访问。

服务器端开启http boot

服务器端开启http boot,本实验中测试了联想服务器SR650V2和SR660V2,对应的设置项分别如下:

Thinkserver SR660V2的设置项

Bios.IPv4HTTPSupport=Enable

Thinksystem SR650V2的设置项

NetworkStackSettings.IPv4HTTPSupport=Enabled

HTTP Boot 验证

将服务器开机,根据提示按F12,然后选择“HTTP IP4”(注意不是PXE IP4)的启动项即可http boot

如果需要将http boot加入到启动项中,请参考如下链接的第19页

Using HTTP Boot to Install an Operating System on Lenovo ThinkSystem servers > Lenovo Press

ipxe引导成功

图片

图片

更多技术文档请访问365文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/160526.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图像二值化阈值调整——cv2.threshold方法

二值化阈值调整:调整是指在进行图像二值化处理时,调整阈值的过程。阈值决定了将图像中的像素分为黑色和白色的界限,大于阈值的像素被设置为白色,小于等于阈值的像素被设置为黑色。 首先画出灰度直方图:横坐标是灰度值…

项目管理之如何估算项目工作成本

在项目管理中,如何估算项目工作成本是一个关键问题。为了解决这个问题,我们可以采用自上而下的成本限额估算法和自下而上的成本汇总估算法。这两种方法各有优缺点,但都可以帮助我们准确地估算项目工作成本。 自上而下的成本限额估算法 自上…

怎么测量直线模组的精度?

直线模组是一款比较多变的一种产品,适合多种行业,同时它也适合比较多的环境,是一种比较全面的直线运动的装置。直线模组是非常精密的自动化机械设备,在实践中,应该要严格把握具体精度,并且在必要的时候&…

树莓派4无法进入桌面模式(启动后出现彩色画面,然后一直黑屏,但是可以正常启动和ssh)

本文记录了这段比较坎坷的探索之路,由于你的问题不一定是我最终解决方案的,可能是前面探索路上试过的,所以建议按顺序看排除前置问题。 双十一又买了个树莓派 4B,插上之前树莓派 4B 的 TF 卡直接就能使用(毕竟是一样规…

面试10000次依然会问的【ReentrantLock】,你还不会?

引言 在并发编程的世界中,ReentrantLock扮演着至关重要的角色。它是一个实现了重入特性的互斥锁,提供了比synchronized关键字更加灵活的锁定机制。ReentrantLock属于java.util.concurrent.locks包,是Java并发API的一部分。 与传统的synchro…

Android ConstraintLayout分组堆叠圆角ShapeableImageView

Android ConstraintLayout分组堆叠圆角ShapeableImageView <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…

STM32WB55开发(6)----FUS更新

STM32WB55开发.6--FUS更新 概述视频教学硬件准备存储器映射FLASH安全区设置SRAM安全区设置通过USB进行下载注意事项 概述 在 STM32WB 微控制器中&#xff0c;FUS&#xff08;Firmware Upgrade Services&#xff09;是用于固件升级的一种服务。这项服务可以让你更新设备上的无…

GAMP源码阅读:PPP中的模型改正:天线相位中心、天线相位缠绕、潮汐、地球自转效应、引力延迟

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、卫星天线相位中心改正1、原理2、文件读取3、setpcv()&#xff1a;设置天线参数4、satantoff()&#xff1a;卫星 PCO 改正5、satantpcv()&…

红黑树——插入底层实现【C++】面试重灾区!!

目录 前言 一&#xff0c;概念 定义 二&#xff0c;insert 情况一&#xff1a; 情况二&#xff1a; 情况三&#xff1a; insert代码 三&#xff0c; 红黑树验证(面试题) 产生随机数验证 每日一图区&#xff1a; 前言 AVL树是一棵绝对平衡的二叉搜索树&#xff0c;其…

【el-cascader-panel】组件el-cascader-panel使用踩坑

需求背景&#xff1a;角色管理资源&#xff0c;资源返回树形结构数据&#xff0c;左侧树形展示列表可查询&#xff0c;右侧勾选资源权限平铺。 本身组件不支持全选&#xff0c;所以增加了全选按钮。覆写了级联面板宽度。可传只勾选code或者顺序当前节点二维数组列表。 效果 因…

消息中间件-RabbitMQ介绍

一、基础知识 1. 什么是RabbitMQ RabbitMQ是2007年发布&#xff0c;是一个在AMQP(高级消息队列协议)基础上完成的&#xff0c;简称MQ全称为Message Queue, 消息队列&#xff08;MQ&#xff09;是一种应用程序对应用程序的通信方法&#xff0c;由Erlang&#xff08;专门针对于大…

2023-11 | 短视频批量下载/爬取某个用户的所有视频 | Python

这里以鞠婧祎的个人主页为demo https://www.douyin.com/user/MS4wLjABAAAACV5Em110SiusElwKlIpUd-MRSi8rBYyg0NfpPrqZmykHY8wLPQ8O4pv3wPL6A-oz 【2023-11-4 23:02:52 星期六】可能后面随着XX的调整, 方法不再适用, 请注意 找到接口 找到https://www.douyin.com/aweme/v1/web/…