esxi 无盘服务器,用ipxe网络启动打造无盘ESXi系统

2023-10-30

一、源码与链接

几个相关链接

相关源码

二、编译一个带 iSCSI 和 COMBOOT 功能的 iPXE 固件

这个参考 ipxe 官网或 iPXE 编译增加功能与自定义脚本 进行编译,在我的源码 netboot-tftp 中有编译好可用的 kpxe 文件

三、群晖 NAS 里配置 DCHP、TFTP 和 WEB 服务器

先按同胞网友写的教程 Part 1 配置好群晖的 iSCSI、DCHP、TFTP 和 WEB 服务器

开启 TFTP 服务

f44027d42543fd4fc8d5c6b00d9e708a.png

将 netboot-tftp 源码里全部文件上传到 /PXE/Grub 文件夹下

ee0b8dbc788cbcb9f29ac4116df41557.png

开启 DHCP 服务

bb5882c37b5144e101202730f4787399.png

7a4aea5afc049e5ac2ab9f174f68b297.png

开启 PXE 并设置启动文件

28dbaa8a10b8e35c040a9d772e375959.png

网络启动测试

在 BIOS 的 BOOT 选项里将从网络启动调整到第一位,各主板 BIOS 操作不一样,请自行查阅主板 BIOS 说明

651dd726e0f31f4523f3b9bd1e6ab574.png

eba202db11e107a6dc83886dff4207fd.png

b27e2658e0a75e8343db1a0ea87690bf.png

开启 WEB 服务

开启群晖 web station 并设置虚拟主机用来加载一些系统的引导文件

b6b317c131d9ea8631259de91eba59c6.png

68a599b3bd23859af59a4116b6887298.png

四、在群晖配置 iSCSI target 和 iSCSI LUN

a09cbe1d50218ebe3148190d3c00fcf2.png

99da09a602a73d64d7e82f8e6af40d83.png

40edb9a6d91a2841d4d1a72d5bfadaa4.png

五、修改 tftp 根目录中的文件

98cebb3e4d4fa9cf593d739e3d02e183.png

cf8c2b29b0aca423b0aa71792753c9ed.png

六、通过网卡 DHCP 启动机器安装系统

eba202db11e107a6dc83886dff4207fd.png

eb04ca9eb057b1c153683e640a51e748.png

2d6770d22b24caafbc2e4beb4009d129.png

在 menu.ipxe 的一些网络地址没问题的话,就能进入 ESXi 的安装界面了

aa782ff2a640edb7dba452e41caacf57.png

这里安装的时候硬盘选择界面会出现 iSCSI 的硬盘,如果有其他硬盘的话别选错了

如果没有出现 iSCSI 硬盘,那肯定是加载出错了。

e28af8df5cb1f8e86fbb40bdd5f31b1e.png

ea0e496c3533bb478b47540c98e61789.png

七、安装完成启动系统

46d3e4f3104e8cecc686699e7b5434a9.png

f56cdb73d9509c6899226db69d559a2b.png

八、关于 DHCP 与 TFTP 服务器

按照上面的教程是在内网开启了两个 DHCP 服务器,一个是主路由的,我这里是 ROS,一个是群晖的。

这样会导致有些时候网络启动后 iPXE DHCP 获取到的结果不是想要的结果,比如 next-server 地址错误

会导致加载不到启动脚本而进不了菜单,这里建议内网只有一个 DHCP 服务器,这样就不会有 DHCP 服务干扰了

下面介绍使用 ROS、LEDE 的 DHCP 和 TFTP 服务器

ROS 的 DHCP 与 TFTP 设置

将 netboot-tftp 源码上传到 ROS 的 files,然后 ip -> TFTP 开启 ROS 的 TFTP 服务

dda94fec6f077ffcf90d2a0ca8a86933.png

86e9b1ef348eaa9c614e859e461abd65.png

DHCP server 里配置 next server 和 boot file name

bdd261fb6c2089c9b94245f89af01434.png

LEDE 的 DHCP 与 TFTP 设置

如果是使用 LEDE 的 DHCP 和 TFTP 服务器,则将 netboot-tftp 源码上传到 lede 路由上

然后在 网络 -> DHCP/DNS 下进行配置 TFTP 服务

c7dedf417f1b309116fb7b383cafe643.png

九、对特殊电脑做特别设置

脚本是支持多个电脑启动不同的系统到电脑对应系统的 iSCSI LUN

这就是上面创建 iSCSI target 的时候 target 名称为什么要用 主机名.系统名

a09cbe1d50218ebe3148190d3c00fcf2.png

* 设置电脑网卡 mac 地址脚本

比如要让电脑 A(网卡 MAC 地址为 00:12:34:56:78:90) 启动到 mini.系统名 的 iSCSI

那就是设置电脑 A 的主机名为 mini

如果使用群晖的 DHCP,则可以在群群晖 DHCP 客户端列表里给 MAC 地址设置主机名

7a4aea5afc049e5ac2ab9f174f68b297.png

如果一些不能设置主机名的 DHCP 服务器,如 ROS,如果不用做特殊设置,则 hostname 为空

这样脚本会找 mac 地址.系统名 的 iSCSI, 这样就会取不到 iSCSI, 除非你 iSCSI target 用 mac 地址.系统名 命名

在 netboot-tftp 源码目录下有一个 boot 文件夹,这个文件夹就是放置对应主机或 MAC 地址特殊脚本的目录

在 boot 目录下创建文件, 文件的命名格式为 mac-mac 地址去掉冒号字母小写.ipxe

例如 mac-001234567890.ipxe

在文件里添加脚本如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14#!ipxe

echo

# 设置这个mac地址的主机名

set hostname mini

set initiator-iqn ${base-iqn}:${hostname}

echo Booting ${hostname}

# 这里还可以设置默认进入的菜单和在菜单上的等待时间

# 比如装好系统后设置 default 为 esxi ,timeout 为1秒或更短

# 这样就可以直接进入esxi系统,省去选择菜单步骤。在装好系统不要用菜单的时候很有用

set menu-default esxi

set menu-timeout 10000

chain --replace --autofree ${menu-url}

十、折腾过程中遇到的坑

关于 iscsi 的坑

仔细看 netboot-tftp 里菜单命令会发现有一条命令 sanhook \${root-path}

是扫描加载 iSCSI 的

全路径是这样的

sanhook iscsi:192.168.1.252::::iqn.iqn.2000-01.com.synology:mini.ESXi

iPXE 官方文档有对这个进行说明:

255c1d8ae58bc3ff7e64127cf5566c4b.png

1iscsi:::::

我们把其中的 protocol、prot、LUN 都省略了,所以成了::::

其中 LUN 是一个坑,官方文档中有对 LUN 的介绍是这个样的

1 is the SCSI LUN of the boot disk, in hexadecimal. It can be left empty, in which case the default LUN (0) will be used.

LUN 是指要加载 iSCSI target 中哪个 LUN,值是 LUN 的编号 ,关键信息是 默认值 为 0。

使用我的脚本加载 DS3617xs 中的 iSCSI 一切正常

但是用这个脚本加载 DS918+ 的中 iSCSI 就会加载不到

研究了几个小才发现

在我在 DS3617xs 中 iSCSI target 第一个 LUN 的编号为 0

3451cca8db534a267339e2ebdeba6f34.png

而 DS918+ 中 iSCSI target 第一个 LUN 的编号为 1

53b92a31234950d0c12f8859e8e724e0.png

所以如果发现自己 iSCSI target 第一个 LUN 的编号为 1 的,请修改 netboot-tftp 源码中的 boot.ipxe.cfg 文件

d77eccab9b9caf39ff74bb3204a90825.png

1set base-iscsi iscsi:${iscsi-server}::::${base-iqn}

改成

1set base-iscsi iscsi:${iscsi-server}:::1:${base-iqn}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

esxi 无盘服务器,用ipxe网络启动打造无盘ESXi系统 的相关文章

  • Mybatis中针对数据库日期JdbcType设置

    Mybatis中针对数据库日期JdbcType设置 在学习Mysql的时候 我们知道数据库类型有date datatime time类型 在用Mybatis进行插入数据的时候 我们实体一般都是直接指定java util Date类型 为了确
  • 机器学习中的相似性度量

    https www cnblogs com heaad archive 2011 03 08 1977733 html 1 欧氏距离 曼哈顿距离 切比雪夫距离 闵可夫斯基距离 标准化欧氏距离 马氏距离 夹角余弦 汉明距离 杰卡德距离 杰卡德
  • 菜鸟入门HTML

    标题HTML 一 1 单标签 一般单独完成某一功能的标签都为单标签 link 导入图片或css或其他资源 例 img src路径 插入一个图片到网页中 例 img src title 123 在这里插入图片描述 https img blog
  • 转:彻底搞定期货穿透式CTP API接入

    中信期货看穿式监管认证操作指南 CTP系统 https www citicsf com static download soft E4 B8 AD E4 BF A1 E6 9C 9F E8 B4 A7 E7 9C 8B E7 A9 BF E
  • NTSC和PAL制同步信号模拟输出

    NTSC和PAL制同步信号模拟输出 原由 由于我想输出一个NTSC制和PAL制的同步黑场 只需要输出同步信号 之后输出rgb信号给ADV 7123 后输出到显示屏 下面是我的心路历程和知识总结 一 了解NTSC和PAL PAL 电视标准 每
  • kinect2.0视角范围和距离远近

    本文章由cartzhang编写 转载请注明出处 所有权利保留 文章链接 http blog csdn net cartzhang article details 44588097 作者 cartzhang Kinect 摄像头范围介绍和玩家
  • 马踏棋盘求----全部解

    标题 运用栈和回溯法求马踏棋盘的全部解 回溯法的写法参考 数据结构 严蔚敏 的迷宫求解 感谢我的队友 汪汪汪 他与求一个解不同之处在于 当我们求到一个解之后 这个程序却会告诉计算机 啊 这不是我们想要的解 我们继续吧 于是 傻傻的计算机就信
  • D3D资源管理

    摘要 受管贴图 Managed textures 也就是我们通常所谓的 自动管理贴图 在DX6中首次被引入 经过一系列的改进和增强 在DX9中自动管理的资源类型增加到贴图 顶点缓冲 顶点索引缓冲 所有这些资源使用统一的公共接口 通过使用D3
  • 【图文分析】Java经典基础练习题(六):猴子吃桃子问题

    文章目录 一 具体题目 二 思路分析 逆向思维 三 代码 结果 代码 结果 四 彩蛋 一 具体题目 猴子第一天摘下若干个桃子 当即吃了一半 还不瘾 又多吃了一个 第二天 早上又将剩下的桃子吃掉一半 又多吃了一个 以后每天早上都吃了前一天剩下
  • Webpack4 配置 Externals

    Externals 配置项用来告诉 Webpack 要构建的代码中使用了哪些不用被打包的模块 也就是说这些模版是外部环境提供的 Webpack 在打包时可以忽略它们 1 有些 JavaScript 运行环境可能内置了一些全局变量或者模块 例
  • 新手小白学Java

    刚开始学习java的时候 可能是一头雾水 不知道从何学起 还有很多Java小白 在刚自学Java的时候玩命的学习 玩命的记住Java原理 天天早上五点起床背Java的一些英文词汇 然后遇见一些未知的困难 让自己打到癫狂状态 逐渐迷失自我放弃
  • 在开发板上挂载NFS

    网络文件系统 NFS Network File System 是一种将远程主机上的分区 目录 经网络挂载到本地系统的一种机制 通过对网络文件系统的支持 用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区 目录 进行操作 在嵌入式L
  • 《动手学深度学习 Pytorch版》 4.8 数值稳定性和模型初始化

    4 8 1 梯度消失和梯度爆炸 整节理论 详见书本 梯度消失 matplotlib inline import torch from d2l import torch as d2l x torch arange 8 0 8 0 0 1 re
  • 安装完MySQL后,却没有密码,如何登录并修改密码?

    1 在终端输入sudo vim etc mysql mysql conf d mysqld cnf 2 在 mysqld 下方的skip external locking下面添加一行 skip grant tables 3 重启MySQL服
  • java实现io阻塞的代码_Java IO(2)阻塞式输入输出(BIO)

    在上文中 Java IO 1 基础知识 字节与字符 了解到了什么是字节和字符 主要是为了对Java IO中有关字节流和字符流有一个更好的了解 本文所述的输出输出指的是Java中传统的IO 也就是阻塞式输入输出 Blocking I O BI
  • Fabric介绍

    简介 由于比特币的流行 以太坊和一些别的衍生技术成长起来 对一些有创新力的企业开始关注区块链底层技术 分布式账本和分布式应用平台 然而 许多企业需要更高的性能 这是那些无须许可的区块链技术无法达到的 另外 在许多场景下 参与者的身份认证是一
  • ctfshow-萌新-web2( 利用intval函数特性配合SQL的特殊符号获取敏感数据 )

    ctf show 萌新模块 web2关 此关卡使用intval 函数强制将参数转换成数值型 可以使用字符绕过 配合特殊符号控制SQL的查询结果 从而获取flag 这一关过滤了or 我们可以使用加号 减号 乘号 除号 或 左移等方式绕过 页面
  • 嵌入式 Linux 入门(三、Linux Shell 及常用命令说明)

    嵌入式 Linux入 门第三课 熟悉掌握 Linux 常用 Shell 命令 矜辰所致 更新Shell echo 命令 2022 7 20 目录 前言 一 Shell 基本说明 1 1 Shell 是什么 1 2 Shell 与 终端 te
  • TensorFlow-gpu报错 failed call to cuInit: CUDA_ERROR_NO_DEVICE: no CUDA-capable device is detected

    记录错误 和解决方式 错误 failed call to cuInit CUDA ERROR NO DEVICE no CUDA capable device is detected 这个也是我今天运行TensorFlow GPU的一个cn

随机推荐

  • iOS 4层结构(iOS技术概要)—— Cocoa Touch 层(一)

    苹果公司的iOS平台强力推动了iOS开发 引来了不少人从事iOS开发 也成就了一批一批的开发者 如果你是新手 请把本文作为iOS技术一览 便于你对iOS开发有个粗略的认识 如果你已经是iOS开发者 建议你收藏本文 它是你日常开发的指导工具
  • C练题笔记之:Leetcode-167. 两数之和 II - 输入有序数组

    题目 给定一个已按照 非递减顺序排列 的整数数组 numbers 请你从数组中找出两个数满足相加之和等于目标数 target 函数应该以长度为 2 的整数数组的形式返回这两个数的下标值 numbers 的下标 从 1 开始计数 所以答案数组
  • 原生JS实现拾色器功能

    没事儿干 写一个拾色器 原生 JS 实现 先看效果图 一 写页面 div class circle div circle width 200px height 200px border 1px 999 solid margin 200px
  • arduino笔记40:GSM/GPRS/GPS DEMO + 几种通信方式

    目录 一 准备 明确概念 GPS GSM 缺点 GPRS GNSS 二 芯片A7 三 这个模块 四 GPRS模块的一些坑 五 几种通信方式 蓝牙 Zigbee Z波 6LowPAN 线程 无线上网 WIFI 蜂窝 NFC Sigfox Ne
  • github精准搜索

    1 github的精准搜索 如下所示 可以按照自己想要的来进行搜索 简直不要太爽 按照项目名搜索 in name xxx 按照README搜索 in readme xxx 按照description搜索 in description xxx
  • ELFK之zookeeper+kafka

    目录 kafka zookeeper的系统架构 Zookeeper 一 zookeeper概述 二 zookeeper特点 三 zookeeper选举机制 四 应用场景 五 zookeeper实验实例 Kafka 一 概述 为什么需要消息队
  • discuz x 个人空间及群组地址实现二级域名的方法(APACHE独立主机)

    按以下操作 1 在域名控制面板添加A解析 增加一个主机头为 的纪录解析到你的论坛所在服务器 即做下域名泛解析 2 修改服务器上的apache conf httpd conf 或 apache conf extra httpd vhosts
  • sharepoint 2016小白快速部署入门篇(2)-AD域服务器安装和部署

    千里之行始于足下 SharePoint在网上教程也有很多 不过看的再多不如自己实际操作 下面就带领大家快速入门 根据以往经验 通常简单分为三台服务器 1 SharePoint server前端服务器 2 AD域控制器 3 SQL serve
  • 第四章 JDBC

    1 JDBC定义 JDBC是Java数据库连接技术的简称 提供连接各种常用数据库的能力 2 为什么需要JDBC JDBC场景1 客户端 本机 应用服务器 JDBC 数据库 返回至客户端 JDBC JDBC场景2 本机 访问 应用服务器 JD
  • React三子棋教程后续练习

    1 在游戏历史记录列表显示每一步棋的坐标 格式为 列号 行号 game state history中不仅需要记录棋盘 还需要记录此步落子的坐标 class Game extends React Component 修改Game构造函数中的h
  • Ubuntu常用软件简单整理

    1浏览器 1 gt chrome 并不是chromium Ubuntu软件中心搜索出来的 要到Google官网去下载 因为chrome可以支持Flash 不像chromium还要自己安装Flash 2 gt Firefox 系统自带的 感觉
  • linux readelf &&strip && strings

    readelf可以查看该可执行程序包含哪些函数 readelf a boardagent 或者readelf s boardagent strip 可以将可执行文件的大小减小 原理是去除符号表 strip boardgaent cat pr
  • 如何调整plt.plot()线的粗细,linewidth

    ax plot np r 0 100 1 2 np r 0 100 0 2 color C1 linewidth 3 0 label GT ax plot np r 0 100 w np r 0 100 b color C2 linewid
  • 复盘-7.14号欢聚前端一面面经

    复盘 7 14号欢聚前端一面面经 复试45分钟左右 主要都在问css和js简述一下css盒模型元素怎么设置成垂直水平居中谈一下flex的理解吧谈一下对position的理解谈一下闭包 闭包的副作复盘 7 14号欢聚前端一面面经复试45分钟左
  • 微信小程序开发——wx:for形成列表,获得item信息

    1 获得循环下标 首先 从wx for的定义所在行处 获得此次循环的下标 解释 起作用的是wx for index categoryIndex 利用wx for index可以得到此次循环的下标 再利用该语句 就可以将下标存在变量categ
  • 软件测试/测试开发丨venv 环境管理 学习笔记

    点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接 https ceshiren com t topic 27070 venv 环境管理 venv 虚拟环境 虚拟环境是什么 单独隔离的开发环境 各个环境之间互不干扰
  • [CocosCreator 踩坑记录] 无法保存场景Failed to update asset db

    问题描述 无法保存场景 并出现以下报错 Failed to update asset db assets scences messages Error EISDIR illegal operation on a directory open
  • Vue3描述列表(Descriptions)

    整体功能效果与 ant design vue 保持高度一致 包含两种组件 Descriptions 和 DescriptionsItem 必须搭配使用 效果如下图 在线预览 APIs Descriptions 参数 说明 类型 默认值 必传
  • 解决4G网络移动打不开网站,WiFi可以正常访问

    一 解决4G网络移动打不开网站 WiFi可以打开1 把域名放进http ping chinaz com 看看解析IP延迟是否过高2 询问WiFi能打开网站 4G网络打不开网站的人 是不是本地网络出问题或者只有移动4g 其他运营商是不是都能访
  • esxi 无盘服务器,用ipxe网络启动打造无盘ESXi系统

    一 源码与链接 几个相关链接 相关源码 二 编译一个带 iSCSI 和 COMBOOT 功能的 iPXE 固件 这个参考 ipxe 官网或 iPXE 编译增加功能与自定义脚本 进行编译 在我的源码 netboot tftp 中有编译好可用的