找回密码
 加入我们
搜索
      
查看: 42657|回复: 66

[装机] NUC9 iSCSI无盘工作站/服务器札记 — PXE安装及引导 Win11 成功

  [复制链接]
发表于 2022-10-24 10:28 | 显示全部楼层 |阅读模式
本帖最后由 imyz 于 2022-10-24 10:32 编辑

如题。此帖就是记录楼主耗时数月、最终成功地通过网卡 PXE 无盘引导进 WinPE 环境、识别 iSCSI target 目标盘、将 Windows 11 安装至 iSCSI target、并由该 iSCSI target 成功引导 Windows 11 的一篇教程 —— 暨制作工具提供、部分注意事项及个中有感等。

说起 iSCSI 无盘 Windows,我目前能查到的官方文档显示,它早前是 Windows Server 版特有的功能,可巨硬早在 WinServer2008 版后就停止了官方支持,并且还提到说必须通过支持 iSCSI 的 HBA 卡才能正确加载与识别 iBFT(iSCSI Boot Firmware Table) ,总之大概意思翻译过来就是“不支持”—— 这显然是“技术流”们(还是穷)所不齿的,挑战不可能才是乐趣所在。言归正传,先交待下我这次 iSCSI 无盘所用到的网络、服务器与客户端环境:

** 网络:
一台外网路由器,级联一台8口二层交换机,所有网络设备均接交换机。只有一条要求:务必确保服务器与客户端网络在同一个网段(VLAN)内、能互 ping 通;若纯是为了安装 Windows,那么上外网的路由器都不需要,仅一台能同时接服务器和客户端网线的傻瓜交换机即可。不过,不建议在无 Internet 外网的环境下操作,因为其中需要用到的 ADK 部署工具需要从官方网站下载(后面教程中提供了下载链接)。否则,请预先将所需要的 ADK + PE Addon 下载至本地,合计大约 3.5GB。
** 服务器端:
Windows Server 2022 DC 虚拟机一台,并配置以下各项服务:
        * iSCSI target(亦可采用诸如群晖这类 NAS 自带的 iSCSI target 功能);
        * DHCP Server (亦可采用路由器自带的,或 Linux 搭建等);
        * WDS(部署服务)—— 它实际上就是 TFTP/BOOTP Server;
        * 文件共享:存放 Windows 安装源文件。
明眼人应该看出来了,我的 iSCSI target 是 “套娃”,因为它是在 WinSvr2022 的虚拟磁盘空间上划出来的,即:虚拟磁盘中的虚拟磁盘,而实体机 ESXi6.7 U3 的存储建在一张 9260-8i 卡上为各虚拟机提供空间,采用机械盘 RAID5 + SSD RAID1 作 RWCache 加速,目前无盘 Windows 11 系统性能的瓶颈在于 1Gbps 的网速,换算下来就是可达到 100MB/s 读写,日常使用就和一块普通机械盘的感受差不多,对我而言完全够用了,今后若是升级 10Gbps LAN 的话就真切主题了。
** 客户端
NUC9祼机一台,干所有脏活累活的主角就是它板载的两张网卡:
        NIC #1:Intel(R) I210 Gigabit Network Connection
        NIC #2:Intel(R) Ethernet Connection (7) I219-LM

总结下来就是:整个安装过程除基本的网络环境和我的 NUC9 外,仅需一台配置好 WDS、DHCP Server、iSCSI target 和 文件共享 这 4 项服务的 Windows Server(虚拟机亦可)。尤其是,若各位已有 Windows Server 所提供的那 4 项服务的其它替代方案的话,则只须用我提供的批处理工具定制好 WinPE.wim、并用它来引导客户机进入预安装环境操作即可。在官方不支持且现成资料匮乏的情况下,能成功实属不易,这其中的注意事项和前提条件较多,对部分看官而言甚至会显得苛刻,再考虑到各位看官在这方面的技能水平可能参差不齐,若直接按教程操作,也许会不断地发问,所以,在进入正式教程之前,我会花大量的文字交待教程中各项操作的前因后果,在此提前给各位打个预防针:全文篇幅较长甚至显得啰嗦,但仍然建议各位看官耐心看完后再动手(双关 + 手动狗头),也许能少走一些弯路。看完后再操作遇到问题时,或许您将要遇到的那个问题已经在这里有相应的答案了。

不想看我啰嗦直接想看教程,并且对自己信心十足的,可移步 2 楼。目前已实测成功的 Windows 11 版本是刚出不久的 22H2。

01.Winver

01.Winver


为了这次的成功,这几个月下来我查找中外各种资料可谓是阅料无数,但真正有用的却只有 iPXE 开发者讨论帖中的这一篇:https://github.com/ipxe/ipxe/discussions/324,可当时我严格按大佬所说的操作后却并没有成功,否则早几个月前就有这篇了。现在回顾时才发现,当时的我离成功是多么的近,这个后面会讲到。

总而言之,这篇教程是基于我数月来无数次失败终成功的原创经历,包括提供给各位的批处理定制工具在内都是我逐字码出来、并经反复测试过的。此外,请不要问我为什么批处理中不用中文注释,因为它本就不是给所有人编辑用的,有需要编辑它的按理完全能读懂……虽然我平常用 Windows 习惯是中文版,但我自己写代码时从不用中文,这也是这么多年一直以来的习惯;可能又有人会反问:为何执行中又有中文提示?也纯粹是为了避免部分中文用户在执行时看到英文提示不知所措,或者换个思路:凡有这类问题的都应当庆兴我暂时还没有纯用英文来写教程的习惯

教程中所附的工具可定制 17 个语种版本,均用脚本逐一自动生成过至少两遍甚至数遍,不存在人为失误的因素,所以一旦有某看官说某语种的生成不了,那它一定不是下图中所列出的 17 种之一。若有人问为何是 17?因为算上命令执行时其它的提示信息,加上语种提示,刚好够一屏 Cmd 或 Terminal 默认的窗口高度/显示行数;若再有人问为嘛是这 17 种?来咬我啊!!
02.AllLangTest.png

不瞒各位说,在此之前,我的 Win11 21H2 就是通过 iSCSI 无盘方式引导的,但当时是先将 21H2 安装在一张 SD 卡上配置完成后,再 Clone 克隆到 iSCSI target 上实现而非通过常规 PXE 网络引导并在 iSCSI target 上安装的,就是下图中这货,官方标称的读写数据还不错,但跑 Windows 实在要凭耐心,与现在 iSCSI 方式比简直天壤之别。它原是我行车记录仪的存储卡,此前为梦想献身,而今如愿从良,可谓皆大欢喜:
03.SD.jpg

前面也说了,对我这样在技术层面有洁癖的(穷)人来讲,无法纯 iSCSI 这个事不干净(Dirty)。所以,这一次的成功,终于可以让 NUC9 完全摆脱一切外部存储的依赖了!如下图所示:
04.Devices.png

但为何标题要写纯无盘工作站/服务器呢,因为 ESXi 7/8 也是支持 iSCSI 安装和引导的,我之前试用iSCSI 安装 ESXi 7 是完全没问题的,并且进入后还可以继续添加 iSCSI target 作为 Datastore…… 这样一来,这台 NUC9 就可以完全不配置任何本机存储设备,使得 NAS 集中存储成为可能,只要各位的 NAS 支持 iSCSI target 功能,同时 NAS 的空间和网速都跟得上,今后想装什么或装多少个系统就一根网线解决、想换哪个系统随时切换,真正的 “Out-of-the-Box、Plug & Play”,可谓意义重大。此外,原先采用克隆 SD 卡系统这一方式还有另一个隐患:诸如 21H2 -> 22H2 这样的大版本更新,更新重启后在第二段更新过程中始终会报错,更新无法完成。

上面提到了我曾与成功擦肩而过,当时有点绝望的我准备放弃熟悉的 WDS 转向 iPXE,随后分别在实体机和虚拟机环境中采用了包括 TinyPXEServer + iPXE 在内的各种途径或工具均以失败告终。还是怪我曾经太天真,以为只要给 boot.wim 或 install.wim 添加正确的网卡驱动即可。总结此前无数次的失败,这次成功其最关键的一点就是:务必正确定制支持 iSCSI 的 WinPE 预安装环境!!!否则,要么是在安装过程中报不支持 iBFT 而找不到 iSCSI target 目标盘(开篇有提到这点),要么就是进入安装阶段出 NDIS.SYS 蓝脸(BSOD);即使勉强识别了 iSCSI target 再采用命令行 dism /Apply-Image 的手段完成第一阶段安装,在随后的重启过程必定绕不开 INACCESSIBLE_BOOT_DEVICE 这个著名的 BSOD(图就不再上了,看得我已经快吐了),因为 iSCSI NetAdapter 不通过 setup.exe 常规安装是无法被写入目标盘的 Offline DriverStore…… 关于这一点,可以参考安装日志,其默认是存在 \$WINDOWS.~BT\Sources\Panther\ 目录下的 iscsi_boot_net.log 和 setupact.log。
05.iBFTFailure.jpg

不过,正确的 WinPE 环境也仅仅是成功的首要条件、并非“充要条件”,因为,还有另外一个极不起眼的因素会让此前所做的一切均付诸东流,认识到这一点很关键,否则就一定会栽在如下图所示这个坑里跳不出来,这是我在经历了无数次失败、抓狂、近乎绝望后,偶然捕捉到log 中图中红框圈出来的相应信息而联想到的,早几个月前看看该多好…
06.ErrorLog.png
07.setupPhaseFailure.jpg

这里我就将这成功的第二条免费赠送给各位看官:若是在定制 WinPE 时不添加与 Windows安装源相对应的语言包的,即:若定制的 WinPE 未额外安装任何语言包的,则 Windows 安装源请务必使用英文版,否则,上图那个报错就是例子…… 谨记 iSCSI 方式直接安装目前不受巨硬官方支持这一点,所以我查阅过的众多的官方文档从未提及这一条,而我偏偏又习惯使用简中安装源……对此我还能说啥呐,巨硬简直浪费我青春!!!我后来也试过,反之则没问题,即:WinPE加中文包来装英文版 Windows 是可行的。不过,Win10/11对多语言支持比 Win7 还是要好很多,即使采用英文版完成后进入 OS 再修改区域、安装语言包也与直接装中文版的没啥差别。以下就是我的 NUC9 在完成第一阶段安装重启后,iSCSI target 盘中的 Windows 首次系统引导画面。只有当一个人经历了几个月不计其数的失败后,才能真正体会到第一次看到这个画面那一刻的心情:
08.InitReboot.png

经过一段时间的试用后发现,目前通过 iSCSI 安装及引导的 Windows 有两个已知问题:
1. 关机菜单和注销是一个效果,无法完成关机。目前我能想到最好的方法就是将 “shutdown -s -f -t 0” 这条指令保存到一个唤作 Shutdown.cmd(或 .bat) 文件中,再拖一个快捷键放桌面,双击确定一下即可实现关机。若有高人找到更好解决方案的也请不吝赐教!
2. 全新安装的 Win11/10 在第一次启动时不想用 LiveID 登录的,此前有一个有效的方法就是 “拔网线” 绕过它来注册本机用户…… 但很遗憾,iSCSI 就是依赖网卡/线的,你拔下试下?!经我多次测试的结果来看,22H2 这一版也并没有完全去掉本地用户的功能,我每次新装后启动必然是遇到以下几个页面,然后点下图中的“重试”、“下一步”,反复地重复3~5次(若不行再5~10次)后,就会跳转到本地用户注册了,感觉就是换个方式恶心人罢了:
09.Internet.jpg
10.LocalUser.jpg

这篇安装教程有个大前提:仅适用于 NUC9/NUC6 这类能在 UEFI/BIOS 中直接配置与绑定 iSCSI target 的机器,不论是板载(On-board)或直立(Riser)网卡,如图:
11.iSCSIUEFIConf.png

而对于本身不支持这个特性的机器,如:网卡/主板不支持、VMware 虚拟机等,则需要借助 iPXE 这个支持配置 root-path、keep-san 等参数的引导工具,先正确地 sanhook ${root-path},随即利用其 chain 脚本命令通过 wimboot 直接引导 boot.wim 文件进入 PE 环境后,再进行 Windows安装。不过,我偏好 WDS 除它图形化管理方便外的另一个重要原因是,WDS 同时也是 tftp/bootp 服务器,我测试过可完美取代 iPXE 所需要的第三方 tftp 服务器(如 TinyPXEServer),将 wimboot 和 .ipxe 脚本放在 WDS 服务器中正确的位置即可实现 chain 方式引导。至于具体如何实现,在这个教程中就不展开了,确有看官感兴趣的我再另开个教程细说 —— 言下之意,这个教程全程都不会用到 iPXE。
另外一点,假如该 iSCSI target 需要提供给多台不同的机器使用的,那么在服务器端配置 iSCSI Initiator 时,请务必添加一个 “*”,这尤其对 VMware 这种天然无法配置 iqn-initiator 的最实用。可能有人会担心 iSCSI target 的 CHAP 问题,我也测试过了,启用或不启用都没问题,如下图中除 test-iscsi 这个 target 关闭了 CHAP 外,其余都是启用的。毕竟 NUC9 本身的配置是可以保存 CHAP 验证信息的,但这并不是说诸如 VMware 这类的就不行,因为 iPXE 是有相对应的 username 和 password 的 Login 参数的,此帖不展开。
12.iqn.png

已实测 NUC9 板载的两张网卡分别都能完成安装,但仍然建议类似有两张甚至多张网卡的,在安装阶段仅启用其中一张,有需要多张网卡分别安装多个系统的,也建议逐一按这个原则操作。同一张网卡同时绑定了多个 iSCSI target 的,请务必确保准备用来安装 Windows 的那个 target 的顺序排在首位,避免在安装过程中出现一些奇怪的问题,比如我遇到整盘全新分区时不正常的情况。这里又引出两个概念:iSCSI target 的排序,和开机的引导顺序(Boot Order/Priority)是不同的,这里讲的是前者,千万不要混淆。一旦安装完成后,就可以像本地盘一样,按各自喜好随便怎么调整了,即使两张甚至多张网卡同时接网线也完全没问题。因为,前面已讲了,引导都写入各自 iSCSI target 中的 Offline DriverStore 中了。

需要指出的是:仅有标记为 0 的 LUN 才能实现引导,所以,这里又有两个隐含信息:
1. 需要安装 OS 的 iSCSI target 的 LUN=0,而仅作存储用途的 LUN 不必为0;
2. 即使同一张网卡上绑定了多个 LUN=0 的 target,对该网卡而言也只有排在 “最前面” 那个才能列入 Boot Order,至少我这台 NUC9 是这样的。

以上限制对网卡多的来讲完全不是个事儿,若需要装 10 个 OS 而恰好有 10 张网卡的,就可将它们一对一绑到 10 张卡上按需切换,只要自己能分得清 Boot Order 中谁是谁。但独一张网卡的也不必担心,也可以将那 10 个 target 同时绑定,毕竟同一台机器切换 OS 必定要重启,进 UEFI/BIOS 调整一下 iSCSI target 排序也花不了多少时间。
比如我自己目前配置的默认情况就如下图所示,其中的“磁盘3”就是 NUC9 前面板的SD槽,而 Boot Order 实际上是可以进 UEFI 再调整的,另外一点,只有当通过 iSCSI 原生安装时,iSCSI target 盘才有机会如下图所示排在 SD 卡槽的前面,而从 SD 卡 Clone 过去的就不可能:
13.DiskMgmt.png

14.iSCSIitor.png

评分

参与人数 3邪恶指数 +121 收起 理由
witson + 20
kthlon + 100 666
Mufasa + 1 就是NB

查看全部评分

 楼主| 发表于 2025-3-27 10:37 | 显示全部楼层
CYF19991203 发表于 2025-3-27 10:23
谢谢回复,我现在可以安装了,并且安装阶段没有任何问题,但是在安装之后会重启,再次重启的时候有两种现 ...

能进入 WinPE 环境并将 Windows 安装到 iSCSI target 上的,说明 PE 环境、iSCSI 的各项配置都是正确的,而安装完成后重启出现蓝屏的情况,首先得看蓝屏 BSOD 的具体错误代码才好分析问题,不排除是你的网卡驱动问题。

此外,Win10 与 Win11 在 iSCSI 方式安装完成之后会有一点不同,Win10 需要手工删除注册表中的 PagingFiles 这一项后才能正常启动,即:“HKLM\SYSTEM\ControlSet001\Control\Session Manager\Memory Management\PagingFiles”。我在一楼已给出了这个操作的出处:

https://github.com/ipxe/ipxe/discussions/324
发表于 2025-3-27 10:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-10-11 22:49 | 显示全部楼层
佩服佩服,这套方案折腾下来,必然花了无数个日日夜夜
曾经折腾过一次iSCSI,然后当时Target 所在的硬盘出现了坏道,导致iSCSI镜像损坏,数据丢失,而且我搞了很久都没能恢复数据,于是放弃。。。当时把数据安全做好就好了
 楼主| 发表于 2023-9-22 10:30 | 显示全部楼层
本帖最后由 imyz 于 2023-9-22 12:16 编辑
午夜土猪 发表于 2023-9-22 09:40
iSCSI这个怎么搞定多机同时挂载?

挂都能挂上,但是A机写的B机看不到,win也喜欢弹出磁盘修复,总体一个 ...


兄弟玩得挺花啊,这是准备搞网吧?话说我目前还没有这个需求,但从需求本身上看,用同一个虚拟盘应当是不行的,毕竟不同机器的注册表和激活信息都是不同的,所以报错就对了。

不过,我们知道有“差分磁盘”这回事,所以眼下我只能给一个解决思路,以下纯是基于 Windows VHDX 为基础,言下之意,你的 iSCSI Target 是 Win Server 提供的 VHDX 格式虚拟磁盘:

1. 首先用 iSCSI 方式完成模板机的全新安装,在最后阶段重启并进入OOBE界面时,按 Ctrl+Shift+F3 手工进入审计模式
2. 将事先准备好的驱动、软件等在审核模式中安装完成;
3. 清理所有临时文件后,执行系统封装:
  1. Sysprep.exe /generalize /shutdown
复制代码

4. 这时就需要回到你 iSCSI Target 所在的那台 Win Server 上,用 diskpart 命令创建差分磁盘,如:
  1. create vdisk file=D:\iSCSI\chldWin11.vhdx parent=D:\iSCSI\Win11.vhdx
复制代码

5. 再将第 4 步中得到的 chldWin11.vhdx 作为新 iSCSI target 创建给新机用;
6. 有多台机器的就如法炮制...

差分磁盘的好处是出问题后可以利用父磁盘瞬还原;另外,因子盘只存储自身基于父盘的“增量”部分,所以针对像网吧、大企业这种机器多的,可以节省磁盘空间。

因为没有实践过,所以上述是纯理论。若 iSCSI Target 不是 WinServer 的,请自行搜索如何创建差分磁盘吧

发表于 2023-9-22 09:40 | 显示全部楼层
iSCSI这个怎么搞定多机同时挂载?

挂都能挂上,但是A机写的B机看不到,win也喜欢弹出磁盘修复,总体一个虚拟盘同时只能一台机使用
发表于 2023-8-7 10:53 | 显示全部楼层
很敬佩你的专研精神,我在琢磨如何做个可以用WDS 引导的PE 在生产环境中使用
发表于 2023-2-18 15:22 | 显示全部楼层
imyz 发表于 2023-2-18 14:25
千兆环境下 iSCSI 启动的确相对本地盘尤其是 SSD 来说慢上不少,而且还得看 NAS 提供的 iSCSI target 自 ...

iSCSI服务端本身不存在性能问题,2x U2+2x SATA SSD+5x HDD的分层存储。

是我自己在来回犹豫电或光万兆方案迟迟没有升级。一会儿想利用已经走好的网线上电口万兆,一下子又想一劳永逸全换光口。
 楼主| 发表于 2023-2-18 14:25 | 显示全部楼层
jameszjq 发表于 2023-2-17 20:17
在OptiPlex 7080Micro上照着折腾了一下,受限于现在7080NAS之间的千兆环境,读写速度不太符合预期。暂时转 ...

千兆环境下 iSCSI 启动的确相对本地盘尤其是 SSD 来说慢上不少,而且还得看 NAS 提供的 iSCSI target 自身的磁盘 4K 随机读写性能、最大 IOPS,所以它是个综合问题,并不是只要上万兆就能和本地 SSD 一样的。

我目前 iSCSI 无盘就是上个网、看个电影,再就是阀门社的老游戏,如:L4D2 这类,只要是完成了 OS 启动后还是够日常用的。

春节前新整了一套带万兆的家用服务器,接下来看价格逐渐过渡到家庭万兆
发表于 2023-2-17 20:17 | 显示全部楼层
在OptiPlex 7080Micro上照着折腾了一下,受限于现在7080<-->NAS之间的千兆环境,读写速度不太符合预期。暂时转回有盘之路。待家庭网络环境全部万兆化(或者客户机与服务端局部万兆化)之后再玩。
发表于 2023-1-1 21:51 | 显示全部楼层
牛逼 真的有钻研技术的精神~
发表于 2022-12-26 00:23 来自手机 | 显示全部楼层
imyz 发表于 2022-12-25 21:09
兄弟你还真的爱折腾啊,装了这些个系统 ?而且还要分 UEFI + BIOS 两个方式...... 自认爱折腾的我看完你 ...

不是不是,装了这么多系统仅仅只是测试安装流程,实际再怎么爱折腾也用不上这么多呀![尴尬]。uefi和传统bios同时用到也仅仅是因为legacy bios模式无盘启动win11不成功,所以因为win11又多弄了个uefi。

另外我所说的vhdx的差分功能并不是套娃的意思。而是利用这一特征来快速创建多个不同用途的系统,而只要简单通过删除或者重新创建子vhdx文件的方法,就能快速实现系统还原。例如把一个完成初试安装的vhdx作为父文件,创建多个子vhdx文件,就相当于安装了多个系统了,而不必占用重复的磁盘空间,这对于喜欢折腾的人来说实在太方便了。
 楼主| 发表于 2022-12-25 21:09 | 显示全部楼层
ctz556 发表于 2022-12-25 15:29
分享一下折腾经历。

本人是个爱瞎折腾的人,什么有意思的然后对自己或许有那么一丁点用的东西都喜欢去折 ...

兄弟你还真的爱折腾啊,装了这些个系统 ?而且还要分 UEFI + BIOS 两个方式...... 自认爱折腾的我看完你这都甘败下风

另外,我对其中一点不是很明白:
利用vhdx的差分功能创建多个系统分支实现快速系统恢复还原


首先你的 iSCSI Target 也是 WinNAS 提供,基本能确定每个 LUN 对应一个 WinNAS 中的 VHDX 文件,然后你上面这句的意思是用 WinPE 成功引导后,并不是直接安装而是在那个虚拟 iSCSI 盘的空间中又创建 vhdx 文件用 diskpart 挂载后再将 Windows 安装进这个新建的 vhdx 文件中??

若是这样,我算下看:WinNAS 用 vhdx 提供 target 已经算套一个娃了,然后又在这个 target 中再建 vhdx 套第二个娃?
发表于 2022-12-25 15:29 | 显示全部楼层
本帖最后由 ctz556 于 2022-12-25 15:54 编辑
imyz 发表于 2022-11-25 20:31
你大可以不用我的方法和工具,仅将网卡驱动用 DISM 直接添加进官方默认的 WinPE.wim 中以及 install.wim  ...


分享一下折腾经历。

本人是个爱瞎折腾的人,什么有意思的然后对自己或许有那么一丁点用的东西都喜欢去折腾,比如这个iSCSI无盘系统。

然后还得说到自己患有严重的系统洁癖及强迫症,总是希望系统保持纯净的状态,不愿意安装任何非必要或者不可靠的软件,特别是国产软件普遍比较流氓。对于某些偶尔又不得不用的软件,总是希望使用后不留任何痕迹,这几乎是不可能的事情。而对于喜欢各种瞎折腾而又有洁癖的我来说,利用vhdx的差分功能创建多个系统分支实现快速系统恢复还原,正是我在这条路上踩过坑并一度放弃但看到楼主的分享后又决定尝试的原因。

感谢楼主分享的PE创建脚本,小白不明白自己之前一直失败的原因,所以直接拿来用了。

Routeros的主路由环境,所以DHCP和TFTP(ipxe)服务器都由ROS提供。虽然用的WinNAS但没有用WDS甚至TinyPXE Server这种集成工具,也是强迫症在作怪。当然HTTP服务还是由WinNAS下的绿色软件hfs提供。

ipxe相关文件上传到ROS的flash/ipxe文件夹下

设置tftp文件目录
  1. /ip tftp
  2. add real-filename=flash/ipxe/ req-filename=.*
复制代码


设置启动文件名及tftp服务器
  1. /ip dhcp-server network
  2. add address=192.168.1.0/24 boot-file-name=undionly.kpxe gateway=192.168.1.1 next-server=192.168.1.1
复制代码


开机用网卡启动PE就能成功安装系统了。一口气安装了多个系统包括Win10 LTSC Pro Ent和Win11多个系统。

但是安装Windows11时踩了一个坑并还没能跳出来,就是Windows11用Legacy BIOS模式安装的系统无法启动,启动过程没有任何反应(未出现Windows LOGO),像是启动了个没有引导信息的硬盘,实际用虚拟机启动这个安装好后的vhdx是能够引导的。但是用UEFI模式安装启动很顺利。

然而我首选安装的几个版本的Win10都是Legacy BIOS模式安装的,不想再重装一遍,而且UEFI ipxe在我古董B85主板的螃蟹卡启动时有不小的几率卡在ipxe启动阶段。而又不想在Legacy BIOS和UEFI网络启动时来回修改dhcp-server的boot-file-name。于是又在网络上找到使用dhcp-server matcher设置来指定Legacy BIOS和UEFI两种模式使用相应的boot-file。

这里又踩坑了,UEFI网启时通过dhcp-server option 67的办法原本配置正确的snponly.efi文件名,启动时却自己加上了一个乱码导致找不到文件而无法启动。所以只好设置dhcp-server的boot-file-name为UEFI启动的snponly.efi文件。通过匹配客户端code 93(Client System)的值0x0000指定Legacy BIOS的启动文件undionly.kpxe。这样就不必手动来回修改dhcp-server的boot-file-name了。

IMG_20221224_235436.jpg



  1. /ip dhcp-server network
  2. add address=192.168.1.0/24 boot-file-name=snponly.efi gateway=192.168.1.1 next-server=192.168.1.1

  3. /ip dhcp-server option
  4. add code=67 name=boot-uefi value="'snponly.efi'"
  5. add code=67 name=boot-bios value="'undionly.kpxe'"

  6. /ip dhcp-server option sets
  7. add name=boot-uefi options=boot-uefi
  8. add name=boot-bios options=boot-bios

  9. /ip dhcp-server matcher
  10. add address-pool=default-dhcp code=93 disabled=yes name=ipxe-uefi option-set=boot-uefi server=DHCP-default value=0x0007
  11. add address-pool=default-dhcp code=93 name=ipxe-bios option-set=boot-bios server=DHCP-default value=0x0000
复制代码



一整折腾,vhdx文件保存在NAS的HDD上时基本上为不可用状态,开机时长2分钟,磁盘请求占用经常100%,网络和HDD双重性能瓶颈啊。于是给NAS加固态,启动时间缩短到1分钟之内,有点香了。然后家庭网络只有1G,于是给客户机加固态,直接VHDX本地启动。嗯,强迫症是病,得治!

IMG_20221225.jpg
 楼主| 发表于 2022-11-25 20:31 | 显示全部楼层
ctz556 发表于 2022-11-25 20:26
关键怎么会是PE?通过这个定制的预安装环境安装的系统和其他方式安装的系统会有什么不同?不都是释放inst ...

你大可以不用我的方法和工具,仅将网卡驱动用 DISM 直接添加进官方默认的 WinPE.wim 中以及 install.wim 中看看会不会 BSOD
发表于 2022-11-25 20:26 | 显示全部楼层
imyz 发表于 2022-11-25 17:33
问题的关键是:正确地定制一个能支持 iSCSI 的 WinPE 引导映像。

对于 UEFI/BIOS 中无法配置并写入 iSCS ...

关键怎么会是PE?通过这个定制的预安装环境安装的系统和其他方式安装的系统会有什么不同?不都是释放install.wim到磁盘吗?
 楼主| 发表于 2022-11-25 20:07 | 显示全部楼层
eonghk 发表于 2022-11-25 19:57
我赶巧遇到了一波mellanox的设备,就直奔40G了,直接上架两个4U总共48盘。外加一台2U负责docker跑应用, ...

壕无人性

Windows 的确在这方面太折腾了,这也是我为了搞这个前后花了好几个月的时间
发表于 2022-11-25 19:57 | 显示全部楼层
imyz 发表于 2022-11-25 22:07
是的,原本也不是为了省本地磁盘的钱,主要还是希望能 “集中存储”,只是顺带可以将原本花在本地磁盘的 ...

我赶巧遇到了一波mellanox的设备,就直奔40G了,直接上架两个4U总共48盘。外加一台2U负责docker跑应用,一个小机柜扔车库问题就都解决了。家里电脑基本不用操心存储空间和备份了。iSCSI + PXE 对于Linux来说更加友好,Windows略折腾点。重点还就是中央存储,而不是无盘启动。
发表于 2022-11-25 18:28 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2022-11-25 18:07 | 显示全部楼层
eonghk 发表于 2022-11-25 17:49
技术贴要支持下。对于单纯存储中央化的家庭网路来说挺合适的,数据备份和管理会变得很容易,同时因为调用的 ...

是的,原本也不是为了省本地磁盘的钱,主要还是希望能 “集中存储”,只是顺带可以将原本花在本地磁盘的钱用在建 10Gb 网或 NAS 存储上
发表于 2022-11-25 17:49 | 显示全部楼层
技术贴要支持下。对于单纯存储中央化的家庭网路来说挺合适的,数据备份和管理会变得很容易,同时因为调用的是本地的CPU+GPU,如果有游戏需求的话还是比较理想的。这个和硬盘成本其实没啥关系。
 楼主| 发表于 2022-11-25 17:33 | 显示全部楼层
ctz556 发表于 2022-11-25 11:33
太复杂了,定制PE、WDS、ADK,这些都没有接触过,没看明白。问题的关键是网卡驱动吗?

曾经简单尝试使用Hy ...

问题的关键是:正确地定制一个能支持 iSCSI 的 WinPE 引导映像。

对于 UEFI/BIOS 中无法配置并写入 iSCSI 配置的机器来说,采用 iPXE + TinyPXEServer + wimboot 来引导那个定制的 WinPE 应该就是最简单的了。关于这一点,1/2楼教程中有提到
发表于 2022-11-25 16:34 | 显示全部楼层
厉害
好家伙
发表于 2022-11-25 16:09 | 显示全部楼层
太长了
先收藏再看
好像很复杂的样子……
发表于 2022-11-25 11:33 | 显示全部楼层
本帖最后由 ctz556 于 2022-11-25 11:38 编辑

太复杂了,定制PE、WDS、ADK,这些都没有接触过,没看明白。问题的关键是网卡驱动吗?

曾经简单尝试使用Hyper-V把Win10安装到VHDX,然后ipxe启动,结果因蓝屏无法启动而告终。以为Win10免驱的网卡能直接这么启动。

对于不追求纯iscsi(以及没法在UEFI/BIOS中直接绑定iscsi的机器)来说,是否有更简单的解决方案。比如系统安装过程在非无盘的环境下完成,如hyper-v虚拟机或者其他工具,又或者有盘安装再克隆的方式?
发表于 2022-11-14 17:42 | 显示全部楼层
Predator 发表于 2022-11-14 15:07
我家大概从15年开始
台式机全都ITX加一个小SSD,大散热器低速风扇
全部存储包括游戏都存去NAS——至于是 ...

不同企业根据自身需求,选择适合自己的方案。

我们本地数据量比较大,上云的部分很少,
所以选择了自己弄一个山寨机房,在里面搞后端存储,和前端运算。

公网部分,买几个腾讯云作为跳板,frp穿出去就好。

因为个人习惯问题,我喜欢用廉价SSD启动系统,包括服务器上的那些ESXi,也是弄个廉价SSD来启动,我觉得比用优盘启动ESXi要放心一些。。。。
发表于 2022-11-14 15:52 | 显示全部楼层
技术贴。。。。nb
发表于 2022-11-14 15:07 | 显示全部楼层
Mufasa 发表于 2022-10-25 19:58
楼主精神可嘉

不过,我还是选择买一个一百块钱的SSD,简单粗暴的解决问题。

我家大概从15年开始
台式机全都ITX加一个小SSD,大散热器低速风扇
全部存储包括游戏都存去NAS——至于是用iSCSI还是windows共享,这个就见仁见智了

但是现代大企业的虚拟桌面体系,要满足的东西不一样

比如一个全球跑的高管人员,他可以:
1. 在香港办公室桌上瘦客户机开机进入桌面,这个系统其实在德州乡下某机房的VMware上面
2. 洲际飞行的时候拿出ipad,用app登录进自己的桌面,打开前一天没做完的文件
3. 回到上海的老家,从家里的电脑上用网页方式登录回自己的桌面
于此同时,公司的IT人员升级他的系统,备份他的文件,都直接在服务器上面操作

另一方面对于一些有高性能要求的行业,比如CAD,photoshop这一类,同样的使用这种方式,终端使用者那边只是一个高档的显示器/键鼠。CPU算力和图形能力全部都在服务器端。从服务器到客户端传输的都是键鼠操作和桌面视频演算结果(这个部分可以去看看PCOIP)

集中管理,集中分配资源,集中升级换代
这个方式能显著的降低企业IT设备的TCO
已经和早年那种主力解决存储成本问题的“无盘”不是一个目的了
发表于 2022-11-14 14:48 | 显示全部楼层
allenchueng 发表于 2022-10-27 22:25
  我很早很早就已经用NT Server 4.0做电教室的Windows 95无盘系统了,RPL引导,NetBEUI协议传输,还不 ...

D-link的hub
3c905的大卡
8139各种屎一样的ROM

握个手,我那时也干过一段时间RPL
发表于 2022-10-27 22:25 | 显示全部楼层
pp0pp 发表于 2022-10-25 17:59
我想了解一下“瘦客户机之害”主要表现在哪些地方?

  我很早很早就已经用NT Server 4.0做电教室的Windows 95无盘系统了,RPL引导,NetBEUI协议传输,还不是iSCSI。那时候可没有交换机,而是集线器!相较于大批量采购硬盘的成本,天价服务盘其实都很省钱了。
  大量的碎片回写导致服务器卡(那时的SCSI的I/O性能其实非常低)、客户机卡(比如16口Hub,总上行100Mbps,每台机器能分到多少?单位是bps哦!)。
  NT Server 4.0的稳定性可以说是每个做过网管的人的恶梦!动不动全员瘫痪。嘿嘿。

  Server 2000发布的时候跟着出来的iSCSI技术我其实是馋了很久想体验的,可惜那段时间没环境来玩。

  之后自己做网吧的时候,已经是Server 2003、无盘XP了,PXE引导、iSCSI传输已经很成熟很稳定了。可是那时候还没有哪家公司去研究本地回写技术,只有我们一个小圈子里面在折腾RAMDisk做本地回写。
  各种蓝屏,各种重启,各种启动不成功(RAMDisk加载延迟导致的一系列问题),哈哈!可是相较于服务器回写,RAMDisk本地回写的性能直接起飞,我们只能“将就”咯!

  再之后就是网吧大面积普及服务器大内存缓存、SSD缓存、SSD回写、本地内存回写(国内第一家貌似是网维大师研究出来的驱动),零几年的时候不记得了,几乎新开的网吧都已经干到万兆主干、千兆到桌面了。相比机械硬盘,客户机的体验是非常之爽的。
  但是,但是,那时候可是会有很多人带着U盘来网吧做文案的哟!客户机一个重启,芭比Q。这种情况我自己都遇得不少,更别说顾客了。

  所以啊,发誓不再碰无盘……哈哈!
  这只是分享我自己的经历、体验以及因此给自己带来的影响罢了,不影响楼主的研究哦!
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-8-15 02:34 , Processed in 0.016450 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

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