联想服务器-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.mzph.cn/news/133190.shtml

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

相关文章

世界土壤数据库(HWSD)土壤数据集

简介: HWSD(Harmonized World Soil Database)是联合国粮食及农业组织(FAO)和国际土壤参考与信息中心(ISRIC)共同开发的世界土壤数据集。该数据集是一份高分辨率(1 km)&a…

JUC-3-并发锁

一 JAVA 多线程锁介绍 1 悲观锁 定义:悲观锁指对数据被外界修改持保守态度,认为数据很容易就会被其他线程修改(很悲观),所以在数据被处理前先对数据进行加锁,并在整个数据处理过程中,使数据处…

LLM之Prompt(一):5个Prompt高效方法在文心一言3.5的测试对比

在Effective Prompt: 编写高质量Prompt的14个有效方法文中我们了解了14个编写Prompt的方法(非常感谢原作者),那么这些Prompt在具体大模型中的效果如何呢?本文以百度文心一言3.5版本大模型在其中5个方法上做个测试对比。 第1条&am…

Android codec2 视频框架 之应用

文章目录 应用流程外部主动获取输入和输出buffer外部设置回调 内部流程 应用流程 外部主动获取输入和输出buffer 解码的调用流程,以android原生的一个bin来说明 android 原生代码位置: frameworks/av/cmds/stagefright/codec.cpp frameworks/av/cmds/st…

外卖系统的数据管理和隐私保护应该如何进行?

1. 数据管理 外卖系统处理大量用户数据,包括个人信息、订单记录、支付信息等。以下是一些数据管理的最佳实践: 合规性与透明度:确保你的数据收集、存储和处理符合相关法规,例如GDPR(通用数据保护条例)。同…

【已解决】ModuleNotFoundError: No module named ‘dgl‘

禁止使用下面方法安装DGL,这种方法会更新你的pytorch版本,环境越变越乱 pip install dgl 二是进入DGL官网:Deep Graph Library (dgl.ai),了解自己的配置情况,比如我cuda11.8,ubuntu,当然和linux是一样的 …

Go语言Gin框架前后端分离项目开发工程化实例

文章目录 基本数据配置配置文件管理数据库配置路由配置封装公共方法 数据库模型数据表内容model文件DTO文件 中间件错误异常捕获中间件跨域中间件token认证中间件JWT 控制器UserController 运行调试注册接口登录接口获取用户信息 构建发布项目前端VUE调用接口 基本数据配置 配…

第8章_聚合函数

文章目录 1 聚合函数介绍1.1 AVG和SUM函数1.2 MIN和Max函数1.3 COUNT函数演示代码 2 GROUP BY2.1 基本使用2.2 使用多个列分组2.3 演示代码 3 HAVING3.1 基本使用3.2 WHERE和HAVING的对比3.3 演示代码 4 SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL的执行原理演示…

VScode连接Xshell 并解决【过程试图写入的管道不存在】报错

一.下载vscode 国内镜像: https://vscode.cdn.azure.cn/stable/6c3e3dba23e8fadc360aed75ce363ba185c49794/VSCodeUserSetup-x64-1.81.1.exe二.打开vscode在扩展搜索SSH并安装 三.添加主机 按F1选择添加新的ssh主机 按格式输入后在左边会出现电视的图标 之后输入…

Web3.0的测试题

任务: 在前端开发一个查询UI,查询当前用户账户的ETH余额和指定ERC20合约中的余额 目标: UI框架指定使用 MUI (https://mui.com)需要查询到当前账户的ETH余额并展示在UI界面上需要输入ERC20合约地址后,查询到到当前账户在此ERC20…

Plist编辑软件 PlistEdit Pro mac中文版功能介绍

PlistEdit Pro mac是一款功能强大的Plist文件编辑软件。Plist文件是苹果公司开发的一种XML文件格式,用于存储应用程序的配置信息和数据。PlistEdit Pro可以帮助用户轻松地编辑和管理Plist文件。 PlistEdit Pro具有直观的用户界面和丰富的功能。用户可以使用该软件打…

关于Vue使用props传值遇到的一些问题

一、The data property “tableData” is already declared as a prop. Use prop default value instead. 翻译过来:数据属性“tableData”已声明为prop。请改prop默认值。 将父组件的prop传过去变量改一下 二、prop传值,子组件比父组件先渲染&#…

每天五分钟计算机视觉:池化层的反向传播

本文重点 卷积神经网络(Convolutional Neural Network,CNN)作为一种强大的深度学习模型,在计算机视觉任务中取得了巨大成功。其中,池化层(Pooling Layer)在卷积层之后起到了信息压缩和特征提取的作用。然而,池化层的反向传播一直以来都是一个相对复杂和深奥的问题。本…

企业如何搭建智能客服系统?

在数字化时代,企业面临着客户需求多样化、市场竞争日益激烈等多重挑战。为了更好地满足客户的需求、提供高效的服务,越来越多的企业开始搭建智能客服系统。智能客服系统结合了人工智能和自然语言处理技术,可以实现自动回复、智能推荐以及数据…

老电脑升级内存、固态硬盘、重新装机过程记录

基础环境: 电脑型号:联想XiaoXin700-15ISK系统版本:Windows10 家庭中文版 版本22H2内存:硬盘: 升级想法: 内存升级,固态硬盘升级,系统重装(干净一点) 升级内存…

基础课18——智能客服系统架构

1.基础设施层 基础设施主要包括以下几点: 1. 硬件设施:包括服务器、存储设备、网络设备等,这是整个系统运行的物理基础。 2. 软件设施:包括操作系统、数据库管理系统、自然语言处理(NLP)工具和机器学习算法等,这些是…

linux下实现电脑开机后软件自启动

实现linux的软件自启动,需要四个文件 第一个【displayScreen.desktop】文件,.desktop文件就是一个用来运行程序的快捷方式,也叫启动器,常用来自启动用的文件,内容如下 [Desktop Entry] #要执行的脚本位置 Exec/home/yicaobao/te…

从零开始搭建React+TypeScript+webpack开发环境-使用iconfont构建图标库

创建iconfont项目 进入iconfont官网,完成注册流程,即可创建项目。 无法访问iconfont可尝试将电脑dns改为阿里云镜像223.5.5.5和223.6.6.6 添加图标 在图标库里选择图标,加入购物车 将图标添加到之前创建的项目中 生成代码 将代码配置到项目…

Flink SQL时间属性和窗口介绍

(1)概述 时间属性(time attributes),其实就是每个表模式结构(schema)的一部分。它可以在创建表的 DDL 里直接定义为一个字段,也可以在 DataStream 转换成表时定义。 一旦定义了时间…

06_es分布式搜索引擎2

一、DSL查询文档 1.DSL查询分类 ①查询所有:match_all ②全文检索:利用分词器对用户输入的内容分词,倒排索引去匹配 match_query multi_match_query ③精确查询:根据精确词条查找数据,查找的是keyword,数值,日期,b…