吴先森的笔记
为退烧而生!
某咸鱼的笔记

iPXE+群晖实现无盘启动Windows 10

iPXE+群晖实现无盘启动Windows 10

自从去了一次网吧,就对网吧的无盘启动念念不忘,想在家里实现无盘启动以节省我的固态硬盘。

https://www.wunote.cn/wp-content/uploads/2022/07/IMG_20220708_001715-1024x768.jpg

准备无盘启动的电脑是一台老旧的Lenovo G460电脑,因为硬盘是机械,运行非常卡顿,但家里又没有可以代换的固态硬盘。于是我打算通过共享服务器上的iSCSI磁盘来加速其运行

0.可能存在的一些坑

0.注意事项

本教程仅供参考,有些地方需要自己会随机应变,比如你的电脑比较新,那么就无需ipxe.pxe文件启动,可采用链式启动;你的网卡不是小螃蟹的,就不需要处理小螃蟹驱动的问题

虽然教程看起来比较简单,但是暗藏的坑还是比较多的,本人折腾了整整两天才成功

1.iPXE卡在iPXE initialising devices

这可能是由于网卡/BIOS过于老旧,导致无法通过链式启动undionly.kpxe文件,可以尝试换用其他方式启动,如通过更换ipxe.pxe或ipxe.iso等文件启动

2.Windows安装报错驱动无法安装(Windows installation cannot continue because a required driver could not be installed)

这是由于驱动原因导致大于Windows 10 1607的版本都无法兼容网启(好像会缺少正确的驱动,可能是机器网卡的问题),目前我的机器仅能启动Windows 10 1607的英文版本(中文版本无法启动,安装会报错,强制写入也蓝屏)。目前推荐使用Windows 10 2016 LTSB英文版

3.使用WinNTSetup强制写入后出现蓝屏并报错inaccessible boot device

详见0.2

4.启动时报错rt640x64.sys驱动程序签名错误

不知为何,Windows 10 LSTB/Windows 10 1607中自带的rt640x64.sys驱动签名全部为无效,手动在WindowsPE中替换可以正常启动

1.准备需要的环境和文件

需要的环境:

DiskStation(群晖)
关闭内网DHCP服务

需要的文件:

iPXE官方仓库:网页链接,将其克隆到本地
Windows10 2016 LTSB英文版镜像:请从MSDN下载(如果你的电脑比较新,可以试试稍微新一点的Windows版本
winboot:网页链接,用于启动WindowsPE(下方下载的脚本中已自带winboot)
WindowsPE:网页链接,可自行制作,本人此处不提供具体教程
启动脚本:网页链接,用于网启的脚本,可参考此自行编写

2.上传文件到群晖

将步骤1下载的启动脚本以及WindowsPE解压并上传到群晖。目录结构如下

www
  -ipxe
    -boot.ipxe
    -boot.ipxe.cfg
    -menu.ipxe
    -script.ipxe
    -winboot
  -winpe
    -x64
      -....
    -x86
      -....

3.搭建Web服务器以动态返回启动脚本

在群晖中安装Web Station套件

点击网页服务门户->创建服务门户

https://www.wunote.cn/wp-content/uploads/2022/07/20220720232337.png

然后选择虚拟主机,并选择基于端口8080,文档根目录选择刚才上传的www目录,然后点击新增

https://www.wunote.cn/wp-content/uploads/2022/07/20220720232558.png

最后,尝试访问http://[你群晖的IP]:[你刚才输入的端口]/ipxe/boot.ipxe查看是否正常返回

4.编译iPXE

为编译的ubuntu系统安装以下依赖

sudo apt update
sudo apt install make gcc liblzma-dev isolinux

克隆仓库https://github.com/ipxe/ipxe,并进入目录ipxe/src

https://www.wunote.cn/wp-content/uploads/2022/07/224848.png

创建script.ipxe文件,并向其中写入

#!ipxe
dhcp
chain --autofree http://172.16.1.4:8080/ipxe/boot.ipxe
# 注意,此处URL替换为你刚刚创建的Web服务器地址
https://www.wunote.cn/wp-content/uploads/2022/07/225049.png

然后输入以下命令即可开始编译

make bin/ipxe.pxe EMBED=script.ipxe
https://www.wunote.cn/wp-content/uploads/2022/07/225748-1.png

编译成功后即可在ipxe/src/bin目录找到刚才编译的ipxe.pxe文件(当然你编译其他类型的启动文件也无所谓,比如undionly.kpxe等

5.开启群晖TFTP服务

在文件服务–>高级设置–>启用TFTP服务点击启用

https://www.wunote.cn/wp-content/uploads/2022/07/20220720215922-1024x622.png

6.配置DHCP服务器

当然,如果你的DHCP服务器支持设置next-server(比如iKuai),你也可以不使用群晖的DHCP,而使用你原来的DHCP,以免对网络结构造成影响

将你的DiskStation设置为固定IP,并关闭路由中的DHCP功能

在DiskStation中下载DHCP Server服务

打开DHCP Server套件,选中第一个局域网(就是你想开DHCP服务的局域网),点击编辑

https://www.wunote.cn/wp-content/uploads/2022/07/20220720183035-1024x326.png

在弹出的窗口中设置DNS后,点击新增子网

https://www.wunote.cn/wp-content/uploads/2022/07/20220720182847-1024x607.png

按照提示配置DHCP子网,DHCP选项无需改动

https://www.wunote.cn/wp-content/uploads/2022/07/20220720183539-1024x608.png

在PXE栏目选择你编译生成的ipxe文件,比如ipxe.pxe(需将此文件上传到tftp目录)

https://www.wunote.cn/wp-content/uploads/2022/07/20220720220416-1024x615.png

7.创建iSCSI磁盘

打开群晖中的SAN Manager插件

https://www.wunote.cn/wp-content/uploads/2022/07/20220720233353-1024x539.png

跳转到iSCSI栏目,选择新增target,名称可以随意,IQN只要符合IQN规则就可以了,勾选启用CHAP,设置账号密码(最好设置,否则这块虚拟盘可以被局域网的任何用户直接访问。有些博客说设置后无法启动Windows,但是本人测试并无问题,所以建议开启)

https://www.wunote.cn/wp-content/uploads/2022/07/233823.png

下一步选择创建新的LUN(当然你用旧的应该也没问题)

在设置LUN属性中选择存储、容量,并且推荐使用Thin Provisioning模式,方便为磁盘拍快照

https://www.wunote.cn/wp-content/uploads/2022/07/20220720234203.png

8.修改启动脚本

在刚才上传的启动脚本ipxe/boot.ipxe.xfg文件中,修改iscsibase-url地址

#!ipxe
set iscsi-server 172.16.1.4 #修改为你的iSCSI服务器IP,也就是你群晖的IP
set base-url http://172.16.1.4:8080 #修改为你第3步搭建的Web服务器的地址
set menu-timeout 5000 #菜单延迟(单位为毫秒)
set menu-default windows #菜单默认进入的项

修改完成后保存

然后在ipxe/cfg文件夹下创建一个命名规则为mac-[客户机mac地址小写].ipxe.cfg的文件(示例:mac-1c758053da09.ipxe.cfg)

在其中配置你iSCSI的IQN和CHAP认证的账户名密码

#!ipxe
set username test #CHAP认证的账户名
set password ttttttttt123 #CHAP认证的密码
set iscsi-iqn iqn.2000-01.com.synology:DiskStation-3.Target-1.35355  #iSCSI的IQN

9.准备Windows安装文件

将下载的Windows镜像解压到U盘,网卡驱动也解压到U盘。备用

10.通过网络启动并安装系统

客户机插上网线,选择网卡引导

不出意外的话,应该会进入一个菜单页面

https://www.wunote.cn/wp-content/uploads/2022/07/IMG_20220721_000407-1024x768.jpg
https://www.wunote.cn/wp-content/uploads/2022/07/IMG_20220721_000415-1024x768.jpg

我们选择第三项,进入64位PE,出现以下图片表示引导成功

https://www.wunote.cn/wp-content/uploads/2022/07/IMG_20220721_000440-1024x768.jpg

进入WindowsPE以后,我们发现这只有一个命令行(因为太懒,只用了Windows最基础的WindowsPE,其他什么都没改)不过不用慌,命令操作也很简单

插入步骤9创建的U盘,并使用dir命令从C:\依次往下测试,直到找到U盘,然后使用cd /d命令切换到U盘目录。然后切换到windows文件夹,运行setup.exe程序(K1)

https://www.wunote.cn/wp-content/uploads/2022/07/IMG_20220721_001431-1024x768.jpg

进入到安装程序后,就按照常规流程安装即可。安装完成后会自动重启,重启到那个菜单页面后,我们再次选择WindowsPE,进入PE来替换驱动

进入PE后,用(K1)方法找到U盘和刚安装的系统盘,输入以下命令替换驱动

# X代表你的U盘、Y代表你的系统盘
move Y:\Windows\System32\drivers\rt640x64.sys X:\
copy X:\lan_realtek_10.021.0811.2017_w1064\rt640x64.sys Y:\Windows\System32\drivers\
https://www.wunote.cn/wp-content/uploads/2022/07/IMG_20220721_003927-1024x768.jpg

替换完成后,重启,即可进入Windows

11.完成!

最后,成功安装Windows。且可以进行系统更新。

欢迎各位大佬在评论区指出错误或讨论!

发表评论请先填写昵称和邮箱
评论需要审核后才能显示,与内容无关的评论、灌水评论、广告等不会通过审核
本站的所有教程均博主亲身尝试后的经验,且未注明的均为原创
本站的内容可能很小白化,老鸟勿喷。
本文链接:https://www.wunote.cn/article/4986/
本文采用 CC BY-NC-SA 3.0 Unported 协议进行许可

某摆烂咸鱼

文章作者

为退烧而生!

回复 外星 取消回复

textsms
account_circle
email

  • 而根据

    请问我如果不用nas的dhcp服务器,用爱快的服务器,在第6步应该怎么设置?

    1周前 回复
  • BH6JDE

    不懂就问,请教一下如何把IPXE克隆到本地呢?

    3周前 回复
  • 他不是个猫

    第十步系统安装的时候找不到群辉的盘

    3月前 回复
    • @他不是个猫: 那是你的ISCSI盘没有正确挂载,有两种可能:1.你的安装镜像不支持网启(启动后加载了不兼容网启的驱动导致连接断开) 2.你的启动方式不对。具体我也不清楚你是什么情况。这种东西只能自己多摸索,找教程啦。

      3月前 回复
      • 他不是个猫

        @某摆烂咸鱼: 已经出现了第10步第三张图的内容,引导pe的前10秒群晖可以可到iscsi联机了,但是10秒以后就断开了,进入pe后ping群晖ping不通,但是ping其他的机器都能ping通,也就是说进pe前iscsi联机了,不知道什么原因又断开群晖了,而且进pe后除了群晖都能通,两台机器都是同样的情况,不同品牌的网卡,编译的文件有问题吗?

        3月前 回复
      • knat

        @某摆烂咸鱼: 小米路由在ban了nas的mac,winpe下ping不到,windows下可以。换路由就可以了

        2月前 回复
  • 外星

    您好,能否发个rt640x64.sys文件,我替换了好几个都无法使用,谢谢

    4月前 回复
  • 外星

    请教一下安装win7x32报rt640x32.sys错误 ,这个网卡驱动替换的话我原驱动的文件名不是rt640x32.sys ,更名后覆盖原文件后系统可以启动进入安装过程,但是安装完成重启后再次报rt640x32.sys错误无法启动。win10一直安装不上,系统安装过程中直接报驱动错误结束安装。win7安装后一直卡在rt640x64.sys / rt640x32.sys 一直下不去,电脑主板是凌壹科技的,您最后解决了吗,麻烦给个思路,谢谢

    4月前 回复
    • @外星: 我Windows 10 2016 LTSB基本上完美且可以更新。过了安装过程以后可以试试重新替换一遍驱动。请确认你替换的驱动与你的系统兼容且是官方发布的。Windows10无法安装的话我也没有更换的解决办法,只能说多尝试多折腾吧,可以自己试试一些奇葩的方法,比如先安装好旧版本的(比如2016 LTSB),然后GHOST上去什么的,虽然我没试过,但是说不定就成功了呢?

      4月前 回复
    • 外星

      @外星: 我使用dsim手工加载网卡驱动也是一样,无法启动

      4月前 回复
      • @外星: 使用cmd的copy命令手动替换C:\Windows\System32\drivers\下的驱动呢?驱动错误具体是什么错误,驱动签名过期呢?还是驱动加载错误?实在不行可以试试先提前安装好系统并打好驱动,然后Ghost到iSCSI盘上。另外还有个方式就是尝试用市面上现成的网启,然后提取里面的驱动。当然这些方法我也没试过,仅供参考。

        4月前 回复
  • 外星

    感谢分享,您写的很详细,根据您的分享已经成功做到系统安装页面,不知道为什么WIN10一直安装失败,也更换了好几个版本都是到最后一步驱动安装失败

    4月前 回复
    • @外星: 应该是网卡的问题。试试英文系统+旧版。实在不行换Windows8或者其他老点的系统。

      4月前 回复
      • 外星

        @某摆烂咸鱼: 感谢,我再试试看看,我使用dism++手工加载驱动后还是无法启动,删除微软的网卡驱动也无法启动,查看iscsi日志发现启动到windows图标时iscsi没有联机了。

        4月前 回复
        • @外星: 是的,我当时也是这个问题。应该是Windows加载不兼容网启的网卡驱动的时候导致网络断开进而导致iSCSI连接断开,或者系统直接死了。当时我的解决方案是降低Windows版本,对于你的话好像不生效。你多试试吧,搞这种东西嘛,多折腾。

          4月前 回复

某咸鱼的笔记

iPXE+群晖实现无盘启动Windows 10
自从去了一次网吧,就对网吧的无盘启动念念不忘,想在家里实现无盘启动以节省我的固态硬盘。 准备无盘启动的电脑是一台老旧的Lenovo G460电脑,因为硬盘是机械,运行非常卡顿,但…
扫描二维码继续阅读
2022-07-21
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00