无忧启动论坛

标题: G4E配合TinyPXE网启 [打印本页]

作者: 2011yaya2007777    时间: 2023-11-29 10:17
标题: G4E配合TinyPXE网启
本帖最后由 2011yaya2007777 于 2024-12-16 16:21 编辑

G4E配合使用bjay2008xmy提供的TinyPXE网启构架(http://bbs.c3.wuyou.net/forum.php?mod=viewthread&tid=425600&extra=page%3D1),现在可以实现启动任意名称的WIM文件。
2024-12-16:
支持 http 网起。


TinyPXEServer-win服务端.part1.rar

3 MB, 下载次数: 121, 下载积分: 无忧币 -2

TinyPXEServer-win服务端.part2.rar

3 MB, 下载次数: 121, 下载积分: 无忧币 -2

TinyPXEServer-win服务端.part3.rar

736.56 KB, 下载次数: 110, 下载积分: 无忧币 -2


作者: yyz2191958    时间: 2023-11-29 10:56
谢谢分享
作者: yc2428    时间: 2023-11-29 12:15
谢谢分享
作者: hijk1    时间: 2023-11-29 12:58
谢谢分享 下来试试
作者: xcj138    时间: 2023-12-1 13:11
谢谢分享
作者: 沂青南    时间: 2023-12-1 19:38
谢谢分享
作者: wang1126    时间: 2024-2-19 15:32
谢谢分享
作者: bjay2008xmy    时间: 2024-3-24 14:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 撸可撸可    时间: 2024-3-26 11:41
好像不能正常使用呢,请作者出一个详细的使用教程可以吗
作者: 1G空间100元    时间: 2024-4-25 23:45

谢谢分享 看看 怎么使用
作者: ww7618    时间: 2024-5-14 11:30
谢谢分享
作者: 1G空间100元    时间: 2024-5-20 05:07
有人用过过吗 好用吗
作者: 2011wjxf    时间: 2024-7-29 13:58
谢谢分享
作者: 偷情闪了鸟    时间: 2024-7-31 11:04

谢谢分享
作者: wy4591    时间: 2024-8-1 16:26
看看啥情况
作者: 旭东    时间: 2024-9-10 18:09
感谢分享
作者: 原来是我    时间: 2024-10-7 20:01
不错的好东东
作者: xiaoy    时间: 2024-12-6 15:18
有人用成功的吗   EFI PXE  引导后没有菜单   用不了啊   读取不到(PD)上的文件
作者: latelord    时间: 2024-12-6 15:22
谢谢分享
作者: weet    时间: 2024-12-6 19:37
谢谢分享
作者: 2011yaya2007777    时间: 2024-12-16 16:22
本帖最后由 2011yaya2007777 于 2024-12-16 16:26 编辑

支持 http 网起。  例如:map (http)/imgs/pe.iso (cd)
            chainloader (cd-1)
            boor
  例如:/efi/grub/ext/ntboot (http)/imgs/pe.wim


作者: xiaoy    时间: 2024-12-16 17:36
本帖最后由 xiaoy 于 2024-12-16 18:07 编辑

感谢Yaya更新  终于知道自己哪里有问题不能找到菜单了  开启了代理DHCP就不得行  关了就有菜单了  看能不能解决
/efi/grub/ext/ntboot (http)/wims/boot.wim
boot

title 启动服务端 boot.wim
chainloader  /bootmgfw.efi



实测上面两种启动速度差不了多少  

作者: 2011yaya2007777    时间: 2024-12-16 18:36
只是一个可以是任意的文件名,另一个文件名只能是boot.wim
作者: xiaoy    时间: 2024-12-16 19:59
(http)  只能这样写。。不能写其他的http地址吗
作者: 2011yaya2007777    时间: 2024-12-16 20:17
本帖最后由 2011yaya2007777 于 2024-12-16 20:20 编辑

没有试过。你自己测试一下应该不难吧。动手试一试。
作者: nianyueriPE    时间: 2024-12-16 20:18
谢谢分享
作者: nianyueriPE    时间: 2024-12-16 20:19
下载试试
作者: 江南一根葱    时间: 2024-12-18 10:00
xiaoy 发表于 2024-12-16 19:59
(http)  只能这样写。。不能写其他的http地址吗

记得grub2可以用(http,www.163.com)
作者: wn168cn@163.com    时间: 2024-12-18 10:23
感谢分享
作者: dujinjun    时间: 2024-12-26 13:25
有图吗?一睹风采
作者: liuzhaoyzz    时间: 2024-12-31 08:10
本帖最后由 liuzhaoyzz 于 2024-12-31 08:13 编辑

yaya,你的压缩包里面给的demo菜单,我替换了G4E.EFI文件为最新的grub4dos-for_UEFI-2024-12-16里面的BOOTX64.EFI,tinypxeserver的启动文件设置为BOOTX64.EFI,尝试PXE启动,无法加载grub4dos菜单,进入了命令行。
TinyPXEServer-win服务端\netboot\efi\grub\menu.lst,这是菜单文件,
\TinyPXEServer-win服务端\netboot\BOOTX64.EFI,这是启动文件。
efi\grub\menu.lst属于网络驱动器(pd)的根目录下的相对位置,应该是正确的。启动日志里面没有看到efi\grub\menu.lst菜单文件传输记录。

不知道哪里的问题?

grub2有net_bootp命令进入pxe环境,set net_default_server设置pxeserver的地址;
#grub2-pxe
net_bootp
set net_default_server=192.168.1.8
set root='(http)'
......


g4d也有pxe detect检测pxe环境,那么grub4dos_UEFI是否有类似的命令呢?
#grub4dos-pxe内置菜单
pxe detect
configfile
default 0
timeout 1
......


QQ20241231-080520.png (51.32 KB, 下载次数: 36)

QQ20241231-080520.png

作者: 2011yaya2007777    时间: 2024-12-31 09:17
g4d也有pxe detect检测pxe环境,那么grub4dos_UEFI是否有类似的命令呢?

G4E 没有 pxe detect 命令。
你使用内置菜单,那直接启动就妥了,不用调用外置菜单。
是不是内置菜单调用 \netboot\efi\grub\menu.lst 出现错误?
现在 g4e 和 grub2 已经可以在网起(http)环境,支持中文路径文件名。现在正在排查空格问题。
作者: jnight    时间: 2024-12-31 09:45
感谢分享
作者: liuzhaoyzz    时间: 2024-12-31 18:00
2011yaya2007777 发表于 2024-12-31 09:17
G4E 没有 pxe detect 命令。
你使用内置菜单,那直接启动就妥了,不用调用外置菜单。
是不是内置菜单调 ...

内置菜单不方便修改呀,外置菜单方便。
内置菜单调用 \netboot\efi\grub\menu.lst就没有成功,进入了命令行,上面有截图。
作者: 2011yaya2007777    时间: 2024-12-31 19:00
既然不使用内置菜单,那就不要修改他。使用原始的G4E。问题可能是路径多了netboot,因为他本身就是根。
作者: liuzhaoyzz    时间: 2024-12-31 22:36
2011yaya2007777 发表于 2024-12-31 19:00
既然不使用内置菜单,那就不要修改他。使用原始的G4E。问题可能是路径多了netboot,因为他本身就是根。

(pd)是网络pxe服务器根目录,efi\grub\menu.lst放在(pd)/根目录下面,没有错啊。
(pd)/=bootx64.efi所在的目录。内置菜单没动啊,用的就是原始的g4e。

作者: xiaoy    时间: 2024-12-31 23:06
关注   我之前遇到一样的问题  传输不了菜单  
作者: 2011yaya2007777    时间: 2025-1-1 09:33
(pd)/=bootx64.efi所在的目录。内置菜单没动啊,用的就是原始的g4e。
关注   我之前遇到一样的问题  传输不了菜单

请在命令行执行,然后截图:
root
ls (pd)/efi/grub/

再执行:
configfile (pd)/efi/grub/menu.lst
看看可否进入菜单。
作者: 2011yaya2007777    时间: 2025-1-1 14:52
@liuzhaoyzz:
我记得grub2中文件名有空格,是使用'+'来替代的吧?
在这个网站搜索不到有关信息。
作者: xiaoy    时间: 2025-1-1 18:22
 我是直接下载一楼的模板测试  只要不开DHCP代理就有菜单 ,开了代理就不行了。

捕获.JPG (111.21 KB, 下载次数: 48)

捕获.JPG

作者: liuzhaoyzz    时间: 2025-1-2 07:38
2011yaya2007777 发表于 2025-1-1 09:33
请在命令行执行,然后截图:
root
ls (pd)/efi/grub/

进入不了菜单,看不到(pd)文件。

QQ20250102-073729.png (48.47 KB, 下载次数: 39)

QQ20250102-073729.png

作者: 2011yaya2007777    时间: 2025-1-2 07:48
再执行一下:find
作者: 2011yaya2007777    时间: 2025-1-2 07:51
启动时狂按Q键,出来调试代码后截图。
作者: liuzhaoyzz    时间: 2025-1-2 07:53
2011yaya2007777 发表于 2025-1-1 14:52
@liuzhaoyzz:
我记得grub2中文件名有空格,是使用'+'来替代的吧?
在这个网站搜索不到有关信息。

找不到答案的问题直接问聪明的kimi.ai即可啊,忘掉百度吧。
在处理带有空格的ISO文件名时,GRUB2需要对文件名进行特殊处理,以确保正确识别和加载ISO文件。以下是几种处理方法:

1. **使用引号**:在GRUB2配置中,如果ISO文件名包含空格,可以将文件名用引号括起来。例如:
   ```shell
   loopback loop (hd0,5)"/iso/filename with space.iso"
   ```
   这样可以确保GRUB2将整个带空格的文件名作为一个整体来处理。

2. **使用反斜杠转义**:另一种方法是使用反斜杠(\)来转义空格。例如:
   ```shell
   loopback loop (hd0,5)/iso/filename\ with\ space.iso
   ```
   通过这种方式,空格被转义,GRUB2能够正确解析文件路径。

3. **在配置文件中使用变量**:可以在GRUB2的配置文件中定义一个变量来存储ISO文件的路径,并在需要时引用这个变量。例如:
   ```shell
   set isofile="/iso/filename with space.iso"
   loopback loop (hd0,5)$isofile
   ```
   这样,即使文件名中包含空格,通过变量引用也可以正确处理。

4. **正则表达式处理**:如果需要在更复杂的场景下处理文件名,可以使用GRUB2的正则表达式功能来提取和处理文件名。例如,提取文件名并替换空格:
   ```shell
   regexp --set=name '^.\*\\/(.\*)\\..\*$' "$file";
   ```
   这将把文件名存储在变量`name`中,可以进一步处理空格等特殊字符。

通过上述方法,可以有效地处理GRUB2中带有空格的ISO文件名,确保启动配置的正确性和ISO文件的顺利加载。

第1个、第2个办法我虚拟机测试是可以的。

作者: 2011yaya2007777    时间: 2025-1-2 07:54
可能是没有很好地识别启动设备的路径及句柄。
作者: liuzhaoyzz    时间: 2025-1-2 07:59
2011yaya2007777 发表于 2025-1-2 07:48
再执行一下:find

find只能找到本地盘,找不到pd

QQ20250102-075525.png (49.46 KB, 下载次数: 47)

QQ20250102-075525.png

作者: liuzhaoyzz    时间: 2025-1-2 08:01
2011yaya2007777 发表于 2025-1-2 07:51
启动时狂按Q键,出来调试代码后截图。

虚拟机启动时,狂按q键,看不到调试代码,我一直猛按q键都不行。
要不你发个开启了调试模式的g4e.efi文件上来?
作者: liuzhaoyzz    时间: 2025-1-2 08:03
xiaoy 发表于 2025-1-1 18:22
 我是直接下载一楼的模板测试  只要不开DHCP代理就有菜单 ,开了代理就不行了。

我这边无论是否开启DHCP代理,都加载不了外置菜单。
作者: 2011yaya2007777    时间: 2025-1-2 08:09
请稍等
作者: 2011yaya2007777    时间: 2025-1-2 08:26
本帖最后由 2011yaya2007777 于 2025-1-2 09:43 编辑

请测试,这样的机会难得。

作者: 2011yaya2007777    时间: 2025-1-2 08:44
第1个、第2个办法我虚拟机测试是可以的。

奥,照这样说,空格的处理与 grub4dos 是一样的。怪了,我怎么记得是使用 ‘+’ 代替空格的。
原来 grub2 的 tftp 网起,使用 strconv --gbk 后可以启动中文文件名,但是 http 网起失败。现在已经测试成功。
原来 grub2 的 tftp、http 网起,文件名有空格失败,现在已经测试成功。

g4e 网起,中文文件名及空格问题已经解决,测试成功。
作者: 忧心的启    时间: 2025-1-2 08:59
学习学习,感谢分享。
作者: xiaoy    时间: 2025-1-2 09:20
2011yaya2007777 发表于 2025-1-2 08:26
请测试,这样的机会难得。

下载这个测试一样

捕获.JPG (135.85 KB, 下载次数: 36)

捕获.JPG

作者: 2011yaya2007777    时间: 2025-1-2 09:43
本帖最后由 2011yaya2007777 于 2025-1-2 13:04 编辑

启动时,不安任何键,在进入命令行之前,都应当有调试信息呀!

作者: liuzhaoyzz    时间: 2025-1-2 09:54
2011yaya2007777 发表于 2025-1-2 09:43
启动时,不安任何键,在进入命令行之前,都应当有调试信息呀!

用你发的这个,看不到你说的调试信息。还是找不到pd

QQ20250102-095113.png (48.84 KB, 下载次数: 35)

QQ20250102-095113.png

作者: xiaoy    时间: 2025-1-2 09:55
2011yaya2007777 发表于 2025-1-2 09:43
启动时,不安任何键,在进入命令行之前,都应当有调试信息呀!

一样 没有调试信息
作者: liuzhaoyzz    时间: 2025-1-2 10:00
本帖最后由 liuzhaoyzz 于 2025-1-2 10:05 编辑
2011yaya2007777 发表于 2025-1-2 09:43
启动时,不安任何键,在进入命令行之前,都应当有调试信息呀!

哦,可能是中文目录的原因,我换了个英文目录E:\boot作为pxe服务器根目录,猛按q键可以出现调试信息了,但是一直循环在这个加载ipxe.efi界面。

QQ20250102-095933.png (55.29 KB, 下载次数: 36)

QQ20250102-095933.png

作者: 2011yaya2007777    时间: 2025-1-2 10:04
版本不对。我是 2025-01-02 版本。
我以为上传错了。下载我上传的文件,测试,同样是 2025-01-02 版本。
你怎么是 2024-12-16 版本?
作者: liuzhaoyzz    时间: 2025-1-2 10:05
xiaoy 发表于 2025-1-2 09:20
下载这个测试一样

你这个开启代理DHCP就不对,不应该开启的。
如果要开启代理DHCP,你就要在你的路由器中设置代理DHCP服务器地址才行,一般的SOHO级别(小型办公室/家庭办公室Small Office/Home Office)没有这个功能。
而企业级路由器/三层交换机一般人员根本就进不去,不可能设置这个“代理DHCP”。

作者: 2011yaya2007777    时间: 2025-1-2 10:08
哦,可能是中文目录的原因

你就使用我发的测试版本测试吧。狂按 Q 键可能跳过前面的信息。
仔细排查一下,版本是怎么回事。
作者: liuzhaoyzz    时间: 2025-1-2 10:14
2011yaya2007777 发表于 2025-1-2 10:04
版本不对。我是 2025-01-02 版本。
我以为上传错了。下载我上传的文件,测试,同样是 2025-01-02 版本。
...

我下载的是56楼的版本测试的。
结果就是59楼的截图,加载ipxe.efi之后,一直循环,进入不了g4e环境。

之前测试的是2024-12-16版本的。
作者: 2011yaya2007777    时间: 2025-1-2 10:19
加载ipxe.efi之后,一直循环

不要加载 ipxe.efi 。直接启动 G4E .
排除不必要的干扰项。
作者: 2011yaya2007777    时间: 2025-1-2 10:22
本帖最后由 2011yaya2007777 于 2025-1-2 10:27 编辑
我下载的是56楼的版本测试的。
结果就是59楼的截图

肯定是哪里弄错了,仔细看看怎么回事。我从56楼下载的没有问题。

作者: liuzhaoyzz    时间: 2025-1-2 10:34
本帖最后由 liuzhaoyzz 于 2025-1-2 10:42 编辑
2011yaya2007777 发表于 2025-1-2 10:22
肯定是哪里弄错了,仔细看看怎么回事。我从56楼下载的没有问题。
可能是之前的tinypxeserver没有完全退出,有干扰。
我把tinypxeserver和虚拟机重启了下,测试结果:还是找不到pd。
BOOTX64.EFI not found,好象没有传输这个启动文件过去。

menu.lst也没有传递过去。

tinypxeserver的日志:
10:30:19 ROOT=E:\boot\
10:30:19 DHCPd 192.168.1.5:67 started...
10:30:19 TFPTd 192.168.1.5:69 started...
10:30:42 DHCPd:DISCOVER received, MAC:00-0C-29-2F-BE-9C, XID:4F06982E
10:30:42 DHCPd:OFFER sent, IP:192.168.1.6, XID:4F06982E
10:30:45 DHCPd:REQUEST received, MAC:00-0C-29-2F-BE-9C, XID:4F06982E
10:30:45 DHCPd:ACK sent, IP:192.168.1.6, XID:4F06982E
10:30:45 TFTPd:DoReadFile:BOOTX64.EFI B:1468 T:0



pxe-2025-01-02-10-31-26.png (10.31 KB, 下载次数: 54)

pxe-2025-01-02-10-31-26.png

pxe-2025-01-02-10-31-59.png (12.96 KB, 下载次数: 47)

pxe-2025-01-02-10-31-59.png

pxe-2025-01-02-10-32-11.png (11.62 KB, 下载次数: 43)

pxe-2025-01-02-10-32-11.png

作者: 忧心的启    时间: 2025-1-2 12:13
学习学习,感谢分享。
作者: 2011yaya2007777    时间: 2025-1-2 13:04
本帖最后由 2011yaya2007777 于 2025-1-2 15:12 编辑
可能是之前的tinypxeserver没有完全退出,有干扰。

试一试这个,修改了一个地方。
不显示调试信息,看看可否网起成功。

作者: liuzhaoyzz    时间: 2025-1-2 14:11
本帖最后由 liuzhaoyzz 于 2025-1-2 14:23 编辑
2011yaya2007777 发表于 2025-1-2 13:04
试一试这个,修改了一个地方。
不显示调试信息,看看可否网起成功。

还是不行啊,进入了命令行,找不到pd,日志没见到menu.lst传输记录。
14:09:20 ROOT=E:\boot\
14:09:20 DHCPd 192.168.1.5:67 started...
14:09:20 TFPTd 192.168.1.5:69 started...
14:09:35 DHCPd:DISCOVER received, MAC:00-0C-29-2F-BE-9C, XID:C832D8A0
14:09:35 DHCPd:OFFER sent, IP:192.168.1.6, XID:C832D8A0
14:09:39 DHCPd:REQUEST received, MAC:00-0C-29-2F-BE-9C, XID:C832D8A0
14:09:39 DHCPd:ACK sent, IP:192.168.1.6, XID:C832D8A0
14:09:39 TFTPd:DoReadFile:bootx64.efi B:1468 T:0
上面的没有开启tinypxeserver的httpd服务,我用的是EasyWebSvr提供的http服务,在浏览器中输入pxeserver地址,192.168.1.5可以看到pd下面的文件,我确定http服务是开启了的。
我试了直接开启tinypxeserver的httpd服务,也不行,结果一样,进入命令行。
14:21:07 ROOT=E:\boot\
14:21:07 DHCPd 192.168.1.5:67 started...
14:21:07 TFPTd 192.168.1.5:69 started...
14:21:07 HTTPd:80 started...
14:21:22 DHCPd:DISCOVER received, MAC:00-0C-29-2F-BE-9C, XID:C08CF117
14:21:23 DHCPd:OFFER sent, IP:192.168.1.6, XID:C08CF117
14:21:26 DHCPd:REQUEST received, MAC:00-0C-29-2F-BE-9C, XID:C08CF117
14:21:26 DHCPd:ACK sent, IP:192.168.1.6, XID:C08CF117
14:21:26 TFTPd:DoReadFile:bootx64.efi B:1468 T:0

grub2x64.efi只能搭配EasyWebSvr提供的http服务启动,跟tinypxeserver自带的httpd服务好像不能适配,启动不了。

pxe-2025-01-02-14-10-01.png (9.66 KB, 下载次数: 35)

pxe-2025-01-02-14-10-01.png

QQ20250102-141818.png (64.28 KB, 下载次数: 41)

QQ20250102-141818.png

作者: 2011yaya2007777    时间: 2025-1-2 15:14
本帖最后由 2011yaya2007777 于 2025-1-7 11:07 编辑

可能是网卡驱动问题。这个有调试代码,请测试。

作者: liuzhaoyzz    时间: 2025-1-2 15:17
2011yaya2007777 发表于 2025-1-2 15:14
可能是网卡驱动问题。这个有调试代码,请测试。

直接上图


作者: 2011yaya2007777    时间: 2025-1-2 15:42
设备路径类型是通讯设备路径 3,设备路径子类型是MAC地址设备子路径 b。路径没有问题呀。
暂时没招了,先放一放。谢谢测试。
作者: mygamexxx    时间: 2025-1-3 16:16
本帖最后由 mygamexxx 于 2025-1-3 16:25 编辑

使用1楼的PXE网启PE成功。修改了菜单menu.txt,去掉win864的注释符,在/wims目录中放入pe64.WIM。[attach]552658[/attach][attach]552658[/attach]

Tiny Pxe Server Install Win.jpg (699.69 KB, 下载次数: 44)

Tiny Pxe Server Install Win.jpg

作者: liuzhaoyzz    时间: 2025-1-4 08:06
本帖最后由 liuzhaoyzz 于 2025-1-4 08:33 编辑
mygamexxx 发表于 2025-1-3 16:16
使用1楼的PXE网启PE成功。修改了菜单menu.txt,去掉win864的注释符,在/wims目录中放入pe64.WIM。

截图中,你这个启动文件用的是undionly.kpxe?menu.txt是ipxe的网启菜单。
我们讨论的是用g4e.efi网启,他的网启菜单应该是/efi/grub/menu.lst。
作者: mygamexxx    时间: 2025-1-4 13:10
本帖最后由 mygamexxx 于 2025-1-4 13:22 编辑
liuzhaoyzz 发表于 2025-1-4 08:06
截图中,你这个启动文件用的是undionly.kpxe?menu.txt是ipxe的网启菜单。
我们讨论的是用g4e.efi网启, ...

实际运行时这两个参数都改了,启动文件是g4e.efi。

微信截图_20250104132123.png (198.07 KB, 下载次数: 53)

微信截图_20250104132123.png

微信截图_20250104132036.png (230.74 KB, 下载次数: 50)

微信截图_20250104132036.png

微信截图_20250104131953.png (277.91 KB, 下载次数: 45)

微信截图_20250104131953.png

作者: liuzhaoyzz    时间: 2025-1-4 13:54
本帖最后由 liuzhaoyzz 于 2025-1-4 13:59 编辑
mygamexxx 发表于 2025-1-4 13:10
实际运行时这两个参数都改了,启动文件是g4e.efi。

你的第二个截图也是ipxe启动的样子。
你这第三个截图里面,就是ipxe启动啊,标题不是写得很清楚“ipxe boot menu”了吗?g4e启动菜单不是这样子的。
一楼那个demo网启包里面的config.ini内容要修改下。
[arch]
;will over rule the bootp filename or opt67 if the client arch matches one of the below
;Legacy
00000=undionly.kpxe
;efi64
00007=G4E.EFI
;efi64&32 (vertual machine)
00009=G4E.EFI
tinypxeserver有点问题,它的界面上的配置跟配置文件有时候有优先级的问题,不是“所见即所得”的,所以我们要搞免配置,用批处理自动生成config.ini,实际上你这是ipxe启动。

如果不相信的话,你把undionly.kpxe、ipxe.pxe等文件删除再试试看。

作者: mygamexxx    时间: 2025-1-4 14:09
本帖最后由 mygamexxx 于 2025-1-4 14:11 编辑
liuzhaoyzz 发表于 2025-1-4 13:54
你的第二个截图也是ipxe启动的样子。
你这第三个截图里面,就是ipxe启动啊,标题不是写得很清楚“ipxe b ...

确实如此,删除undionly.kpxe,网启显示找不到undionly.kpxe。改config.ini和界面上启动文件选择G4E.EFI都不起作用。
14:07:01 ROOT=G:\PXE\TinyPXEServer-win\netboot\
14:07:01 DHCPd 192.168.184.1:67 started...
14:07:01 TFPTd 192.168.184.1:69 started...
14:07:02 HTTPd:80 started...
14:07:14 DHCPd:DISCOVER received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:07:14 DHCPd:OFFER sent, IP:192.168.184.2, XID:2ABC0F09
14:07:16 DHCPd:REQUEST received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:07:16 DHCPd:ACK sent, IP:192.168.184.2, XID:2ABC0F09
14:07:16 TFTPd:DoReadFile OpenError:undionly.kpxe Cannot open file "G:\PXE\TinyPXEServer-win\netboot\undionly.kpxe". 系统找不到指定的文件。
14:07:16 TFTPd:DoReadFile OpenError:undionly.kpxe Cannot open file "G:\PXE\TinyPXEServer-win\netboot\undionly.kpxe". 系统找不到指定的文件。



作者: mygamexxx    时间: 2025-1-4 14:18
本帖最后由 mygamexxx 于 2025-1-4 14:28 编辑

config.ini修改:
[arch]
;will over rule the bootp filename or opt67 if the client arch matches one of the below
;00000=undionly.kpxe
00007=G4E.efi
00009=G4E.efi
;00007=bootx64.efi
;00009=bootx64.efi

这样,可能从G4E.EFI启动了,界面停止在如图所示(用70楼的文件替换G4E.EFI,没变化,也是如此)
14:22:21 ROOT=G:\PXE\TinyPXEServer-win\netboot\
14:22:21 DHCPd 192.168.184.1:67 started...
14:22:21 TFPTd 192.168.184.1:69 started...
14:22:21 HTTPd:80 started...
14:22:29 DHCPd:DISCOVER received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:22:29 DHCPd:OFFER sent, IP:192.168.184.2, XID:2ABC0F09
14:22:31 DHCPd:REQUEST received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:22:31 DHCPd:ACK sent, IP:192.168.184.2, XID:2ABC0F09
14:22:31 TFTPd:DoReadFile:G4E.EFI B:1456 T:0
14:26:51 DHCPd:DISCOVER received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:26:51 DHCPd:OFFER sent, IP:192.168.184.2, XID:2ABC0F09
14:26:53 DHCPd:REQUEST received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:26:53 DHCPd:ACK sent, IP:192.168.184.2, XID:2ABC0F09
14:26:53 TFTPd:DoReadFile:G4E.EFI B:1456 T:0
14:27:11 DHCPd:DISCOVER received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:27:11 DHCPd:OFFER sent, IP:192.168.184.3, XID:2ABC0F09
14:27:13 DHCPd:REQUEST received, MAC:00-0C-29-BC-0F-09, XID:2ABC0F09
14:27:13 DHCPd:ACK sent, IP:192.168.184.3, XID:2ABC0F09
14:27:13 TFTPd:DoReadFile:G4E.EFI B:1456 T:0


微信截图_20250104141848.png (224.43 KB, 下载次数: 52)

微信截图_20250104141848.png

作者: mygamexxx    时间: 2025-1-4 14:42
config.ini改成下面也一样。

[arch]
;will over rule the bootp filename or opt67 if the client arch matches one of the below
00000=G4E.efi
;00000=undionly.kpxe
00007=G4E.efi
00009=G4E.efi
;00007=bootx64.efi
;00009=bootx64.efi
作者: mygamexxx    时间: 2025-1-4 14:52
config.ini改成如下,放入0pe的grldr,好像正常从grldr启动了。是否是由于虚拟机就是以BIOS启动的。我想进虚拟机改为UEFI启动,手速太慢,来不及按F2(联想的机器要按Fn和F2).
[arch]
;will over rule the bootp filename or opt67 if the client arch matches one of the below
00000=grldr
;00007=G4E.efi
;00009=G4E.efi
;00000=undionly.kpxe
00007=bootx64.efi
00009=bootx64.efi
作者: liuzhaoyzz    时间: 2025-1-4 15:09
mygamexxx 发表于 2025-1-4 14:42
config.ini改成下面也一样。

[arch]

这就是我们为什么要玩批处理生成config.ini免配置的原因咯。
作者: mygamexxx    时间: 2025-1-4 15:10
UEFI支持虚拟机版本必须是VMware workstation11或更高版本。
我是10的,高级选项中没有UEFI
作者: liuzhaoyzz    时间: 2025-1-4 15:25
本帖最后由 liuzhaoyzz 于 2025-1-4 18:59 编辑
mygamexxx 发表于 2025-1-4 14:52
config.ini改成如下,放入0pe的grldr,好像正常从grldr启动了。是否是由于虚拟机就是以BIOS启动的。我想进 ...

虚拟机设置uefi启动,不是这样子玩的。
可以在高级设置中直接设置进入UEFI启动。
另外电源→开机进入UEFI设置,不是要靠快捷键F2进入,跟实体机有区别。直接上图。

vmware虚拟机设置UEFI启动.png (157.55 KB, 下载次数: 45)

vmware虚拟机设置UEFI启动.png

vmware虚拟机开机进入BIOS设置.jpg (91.35 KB, 下载次数: 40)

vmware虚拟机开机进入BIOS设置.jpg

作者: liuzhaoyzz    时间: 2025-1-4 15:29
mygamexxx 发表于 2025-1-4 15:10
UEFI支持虚拟机版本必须是VMware workstation11或更高版本。
我是10的,高级选项中没有UEFI

https://liuzhaoyzz.lanzouq.com/b00nnn5uf
vm12只有46MB。

作者: mygamexxx    时间: 2025-1-4 15:50
liuzhaoyzz 发表于 2025-1-4 15:29
https://liuzhaoyzz.lanzouq.com/b00nnn5uf
vm12只有46MB。

谢谢,已升级到最新版了
作者: wn168cn@163.com    时间: 2025-1-4 15:55
感谢分享
作者: mygamexxx    时间: 2025-1-4 16:13
本帖最后由 mygamexxx 于 2025-1-4 16:14 编辑

UEFI下PXE均不成功:Downloading NBP file 后返回截图界面。

16:11:45 ROOT=G:\PXE\TinyPXEServer-win\netboot\
16:11:45 DHCPd 192.168.184.1:67 started...
16:11:45 TFPTd 192.168.184.1:69 started...
16:11:46 HTTPd:80 started...
16:12:02 DHCPd:DISCOVER received, MAC:00-0C-29-76-2E-20, XID:71C1D547
16:12:02 DHCPd:OFFER sent, IP:192.168.184.2, XID:71C1D547
16:12:06 DHCPd:REQUEST received, MAC:00-0C-29-76-2E-20, XID:71C1D547
16:12:06 DHCPd:ACK sent, IP:192.168.184.2, XID:71C1D547
16:12:06 TFTPd:DoReadFile:G4E.EFI B:1468 T:0
16:12:25 TFTPd:DoReadFile:G4E.EFI B:1468 T:0

微信截图_20250104160259.png (73.57 KB, 下载次数: 41)

微信截图_20250104160259.png

作者: 2011yaya2007777    时间: 2025-1-4 17:46
UEFI下PXE均不成功:Downloading NBP file 后返回截图界面。

截图说明没有进入G4E环境。
我感觉是主机与客户机通讯问题。
我的config.ini设置:
[arch]
;will over rule the bootp filename or opt67 if the client arch matches one of the below
;Legacy
00000=undionly.kpxe
;efi64
00007=g4e.efi
;efi64&32 (vertual machine)
00009=g4e.efi
[dhcp]
;needed to tell TFTPd where is the root folder
root=netboot
;bootp filename as in http://tools.ietf.org/html/rfc951
;;;;;filename=undionly.kpxe
;alternative bootp filename if request comes from ipxe or gpxe
;;;;;altfilename=menu.txt
;start HTTPd
httpd=1



作者: liuzhaoyzz    时间: 2025-1-4 19:08
本帖最后由 liuzhaoyzz 于 2025-1-4 19:11 编辑
2011yaya2007777 发表于 2025-1-4 17:46
截图说明没有进入G4E环境。
我感觉是主机与客户机通讯问题。
我的config.ini设置:

我在33楼问你的就是,我感觉g4e没有进入pxe环境,所以find和root一直找不到(pd)。

类比下grub2的net_bootp命令,有这条命令就告诉grub2从pxe启动,否则就从本地启动。
`net_bootp` 是 GRUB2 中用于网络启动的一个重要命令,其具体作用如下:

### 1. **获取网络配置信息**
`net_bootp` 命令通过 DHCP 协议从 DHCP 服务器获取网络配置信息,包括 IP 地址、子网掩码、网关、DNS 服务器等。这些信息对于后续的网络启动过程至关重要,因为它们确保客户端计算机能够正确地连接到网络并访问网络上的资源。

### 2. **加载网络驱动**
在获取网络配置信息后,`net_bootp` 会加载网络驱动,使得 GRUB2 能够通过网络接口进行通信。这包括初始化网络接口、设置网络参数等操作,确保网络接口处于正常工作状态。

### 3. **搜索配置文件**
`net_bootp` 会根据获取的网络配置信息,搜索网络上的 GRUB 配置文件(`grub.cfg`)。GRUB2 会按照一定的规则搜索配置文件,优先查找与客户端机器相关的配置文件,如基于 UUID、MAC 地址或 IP 地址的配置文件。例如,如果客户端机器的 UUID 是 `7726a678-7fc0-4853-a4f6-c85ac36a120a`,MAC 地址是 `52:54:00:ec:33:81`,IP 地址是 `10.0.0.130`,则 GRUB2 会按照以下顺序搜索配置文件:
- `(FWPATH)/grub.cfg-7726a678-7fc0-4853-a4f6-c85ac36a120a`
- `(FWPATH)/grub.cfg-52-54-00-ec-33-81`
- `(FWPATH)/grub.cfg-0A000082`
- `(FWPATH)/grub.cfg-0A00008`
- `(FWPATH)/grub.cfg-0A0000`
- `(FWPATH)/grub.cfg-0A000`
- `(FWPATH)/grub.cfg-0A00`
- `(FWPATH)/grub.cfg-0A0`
- `(FWPATH)/grub.cfg-0A`
- `(FWPATH)/grub.cfg-0`
- `(FWPATH)/grub.cfg`

其中,`FWPATH` 是由 `grub-mknetdir` 命令生成的路径。

### 4. **加载启动文件**
一旦找到合适的配置文件,`net_bootp` 会根据配置文件中的指令加载启动文件,如内核(`linux`)和初始 RAM 磁盘(`initrd`)。这些文件通常存储在 TFTP 服务器上,`net_bootp` 会通过 TFTP 协议从服务器下载这些文件到客户端计算机。

### 5. **提供环境变量**
`net_bootp` 还会提供一些环境变量,用于检查或修改 PXE 设备的行为。这些变量包括:
- `net_<interface>_ip`:网络接口的 IP 地址(只读)
- `net_<interface>_mac`:网络接口的 MAC 地址(只读)
- `net_<interface>_clientid`:DHCP 提供的客户端 ID(只读)
- `net_<interface>_clientuuid`:DHCP 提供的客户端 UUID(只读)
- `net_<interface>_hostname`:DHCP 提供的客户端主机名(只读)
- `net_<interface>_domain`:DHCP 提供的域名(只读)

在这个示例中,`net_bootp` 用于获取网络配置信息并加载网络驱动,然后搜索并加载网络上的 GRUB 配置文件和启动文件。

通过这些步骤,`net_bootp` 确保 GRUB2 能够通过网络启动操作系统,从而实现网络启动的功能。

g4d的内置菜单第一条就是pxe detect命令检测pxe启动环境。

如果g4e没有这样子的命令,那g4e怎么判断是从本地启动,还是从pxe环境启动呢?假设同一个/efi/grub/menu.lst菜单,g4e怎么知道怎么启动的?


作者: 2011yaya2007777    时间: 2025-1-4 19:46
他这个截图是没有进入G4E环境。你的截图什么已经进入G4E环境,网卡信息已经获得,不知怎么设置pd为根目录失败。我怀疑是find函数的问题。这个函数是有问题,但是我这里执行失败后,可以继续往下执行configfile  /efi/grub/menu.lst,可以启动成功。可是你那里不行。明天就可以提供一个测试版本了。
作者: 2011yaya2007777    时间: 2025-1-4 19:49
G4E也有类似函数,基本上是从grub2移植的,可能简略一点吧。
作者: 江南一根葱    时间: 2025-1-6 19:09
proxydhcp路歪了,搞二十年也搞不好的。
作者: mygamexxx    时间: 2025-1-7 08:06
本帖最后由 mygamexxx 于 2025-1-7 10:14 编辑

不知大家有没有用TingPXE在UEFI网启成功的?我更改config.ini,启动文件使用undionly.kpxe、bootx64.efi、G4E.EFI、ipxe.pxe均没有成功,停在BootManager界面。

只使用QEMU启动测试器启动成功。

1.jpg (58.06 KB, 下载次数: 31)

1.jpg

作者: cqsky    时间: 2025-1-7 09:33
建议真机测试pxe 虚拟机pxe的tftpd通信不稳定
作者: 2011yaya2007777    时间: 2025-1-7 11:04
本帖最后由 2011yaya2007777 于 2025-1-7 11:18 编辑
只使用QEMU启动测试器启动成功。

我这里使用QEMU测试,众多QEMU,只有一个启动到菜单,选择菜单执行后,提示磁盘不存在。
可否上传你的QEMU?
关于停在BootManager界面,我这里遇到两种情况:
1. 当 c 盘空闲容量 2G 以下时,总是这样的。删除一些文件后,解决。
2. VMware 虚拟机使用后会增加一些文件及文件夹。删除这些增加的文件,只保留一开始的基础文件及文件夹,解决。

作者: 2011yaya2007777    时间: 2025-1-7 11:06
本帖最后由 2011yaya2007777 于 2025-1-11 20:07 编辑
我在33楼问你的就是,我感觉g4e没有进入pxe环境,所以find和root一直找不到(pd)。

今天再上传一个,请看看。

作者: liuzhaoyzz    时间: 2025-1-7 11:21
本帖最后由 liuzhaoyzz 于 2025-1-7 11:23 编辑
2011yaya2007777 发表于 2025-1-7 11:06
今天再上传一个,请看看。

About  to enter the menu.然后进入了命令行。日志没有看到尝试读取menu.lst的记录。

11:18:58 ROOT=F:\TinyPXEServer-win\netboot\
11:18:58 DHCPd 192.168.1.5:67 started...
11:18:58 TFPTd 192.168.1.5:69 started...
11:18:58 HTTPd:80 started...
11:19:19 DHCPd:DISCOVER received, MAC:00-0C-29-2F-BE-9C, XID:D35793D0
11:19:19 DHCPd:OFFER sent, IP:192.168.1.6, XID:D35793D0
11:19:23 DHCPd:REQUEST received, MAC:00-0C-29-2F-BE-9C, XID:D35793D0
11:19:23 DHCPd:ACK sent, IP:192.168.1.6, XID:D35793D0
11:19:23 TFTPd:DoReadFile:BOOTX64.EFI B:1468 T:0



QQ20250107-112009.png (49.29 KB, 下载次数: 33)

QQ20250107-112009.png

作者: 2011yaya2007777    时间: 2025-1-7 12:18
本帖最后由 2011yaya2007777 于 2025-1-7 12:21 编辑

网卡没有驱动起来。谢谢测试。
尝试执行:
configfile /efi/grub/menu.lst
估计也不行

作者: liuzhaoyzz    时间: 2025-1-7 13:42
2011yaya2007777 发表于 2025-1-7 12:18
网卡没有驱动起来。谢谢测试。
尝试执行:
configfile /efi/grub/menu.lst

加载不了菜单。

QQ20250107-134122.png (50.59 KB, 下载次数: 23)

QQ20250107-134122.png

作者: mygamexxx    时间: 2025-1-7 15:24
本帖最后由 mygamexxx 于 2025-1-7 15:40 编辑
2011yaya2007777 发表于 2025-1-7 11:04
我这里使用QEMU测试,众多QEMU,只有一个启动到菜单,选择菜单执行后,提示磁盘不存在。
可否上传你的QE ...

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=412834下载的QEMU启动测试器x64

将TinyPXEServer-win移至空闲136GB的分区,启动文件设置为QEMU启动成功的bootx64.efi,WMware虚拟机还是一样启动不成功。
至于WMware虚拟机运行后增加的文件,不知道如何操作,没试,我用的是最新的VMWARE 17.6.2完整版。


config.ini如下:
;[arch]
;用英文;注释第一行[arch],不自动选择启动文件。
;will over rule the bootp filename or opt67 if the client arch matches one of the below
;00000=grldr
;00007=G4E.efi
;00009=G4E.efi
;00007=ipxe-x86_64-snponly.efi
;0000b=ipxe-arm64-snponly.efi
00000=undionly.kpxe
00007=bootx64.efi
00009=bootx64.efi
[dhcp]
;needed to tell TFTPd where is the root folder
root=netboot
;bootp filename as in http://tools.ietf.org/html/rfc951
;filename=undionly.kpxe,启动文件文件名,可在界面选择
filename=bootx64.efi
;alternative bootp filename if request comes from ipxe or gpxe,Gpxe/Ipxe启动脚本,可在界面选择
altfilename=menu.txt
;start HTTPd
httpd=1
binl=0
start=0
dnsd=0
proxydhcp=0
;default=1
bind=1
;tftpd=1 by default
;will share (netbios) the root folder as PXE
smb=0
;will log to log.txt
log=0
;opt1=
;opt3=
;opt6=
;opt28=
;opt15=
;opt17=
;opt43=
;opt51=
;opt54=
;opt67=
;opt66=
;opt252=
;poolstart=
;poolsize=
;alternative bootp filename if request comes thru proxydhcp (udp:4011)
;proxybootfilename=,“代理DHCP”时需要设置
;any extra dhcp options
;my gpxe / ipxe dhcp options
optextra=175.6.1.1.1.8.1.1
;the below will be executed when clicking on the online button
;cmd=_test.bat
;if log=1, will log to log.txt
log=0
;设置共享参数,share_ip留空则获取本机ip地址
share_ip=
share_name=tool$
share_username=everyone
share_password=
[frmDHCPServer]
top=86
left=95




作者: cqsky    时间: 2025-1-8 08:25
Vmware测试pxe的方法:使用tftpd32/64做tftp服务器,tiny pxe server1.0.0.23做dhcp服务器和http服务器,关闭tftpd(config.ini里面设置tftpd=0).
作者: cqsky    时间: 2025-1-8 08:29
Vmware测试pxe:把tiny pxe server的dhcp 起始地址在测试pxe启动失败后改一下,可以提高成功率




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3