无忧启动论坛

标题: [我不是网管]分享个ipxe、grub2-http协议启动PE的免配置网启模板 [打印本页]

作者: liuzhaoyzz    时间: 2019-12-25 21:09
标题: [我不是网管]分享个ipxe、grub2-http协议启动PE的免配置网启模板
本帖最后由 liuzhaoyzz 于 2020-11-12 12:00 编辑

[我不是网管]分享个ipxe、grub2-http协议启动PE的免配置网启模板
https://liuzhaoyzz.lanzoux.com/b00n6291c

主机运行\boot\pxe目录下的任何一个批处理即可作为pxe服务器,在同一个局域网内的客户机BIOS开启PXE,启动到logo时按F12、F9、F8、F11或ESC这样的快捷键选择从pxe启动即可。
可选用tftpd32或者TinyPXEServer方案,随便扔个PE.ISO到\boot\imgs目录下,运行免配置批处理,就可以自动把该PE加入到ipxe/grub/grub2启动菜单。VM虚拟机测试,需要把虚拟机网络设置模式设置为自定义(U):特定虚拟网络VMnet0(自动桥接)。
由于tftp传输速度太慢,随着ipxe项目的发起,可以选用速度更快的http协议来进行网络启动,\boot\pxe目录提供了以下几种方案:
(1)03[BIOS][UEFI]TinyPXEServer免配置网启http服务器ipxe.pxe和ipxe.efi
BIOS下采用ipxe.pxe,UEFI下采用ipxe.efi,TinyPXEServer免配置,运行批处理可自动把pe.iso/wim加入到ipxe启动菜单\boot\ipxemenu.ipxe中,客户机BIOS/UEFI-pxe自动适配。UEFI-PXE用的是sanboot方案。
(2)04[BIOS][UEFI]TinyPXEServer免配置网启http服务器undionly.kpxe和ipxe.efi
BIOS下采用undionly.kpxe,UEFI下采用ipxe.efi,TinyPXEServer免配置,运行批处理可自动把pe.iso/wim加入到ipxe启动菜单\boot\ipxemenu.ipxe中,客户机BIOS/UEFI-pxe自动适配。UEFI-PXE用的是sanboot方案。
(3)05[BIOS]TinyPXEServer免配置网启http服务器启动ipxegrldr
采用chenall的ipxegrldr模块,从ipxe转到grldr启动,运行批处理可自动把pe.iso/wim加入到pxe启动菜单\boot\menu.lst中,只支持BIOS-pxe启动。
(4)【06[BIOS]tftpd32免配置网启tftp服务器启动grldr】
批处理会自动设置好tftpd32起始IP,地址池大小,子网掩码,并可自动把pe.iso/wim加入到grub4dos启动菜单\menu.lst中,只支持BIOS-pxe启动。
(5)【07[UEFI]TinyPXEServer免配置网启http服务器启动grub2x64.efi】
UEFI下采用grub2x64.efi,批处理会自动配置好TinyPXEServer,并可自动把pe.iso/wim加入到grub2启动菜单\boot\grub2\grub2pxe.cfg中,只支持UEFI-pxe启动。感觉grub2的http传输速度不快,不能跑满网速,而且grub2-pxe启动似乎和lang中文字体有冲突,所以PE最好不要用中文名字。另外TinyPXEServer的httpd似乎和grub2不能很好地适配,UEFI+TinyPXEServer(http)+grub2x64.efi+pe.iso可以启动,但是UEFI+TinyPXEServer(http)+grub2x64.efi+pe.wim组合就不行,用UEFI+TinyPXEServer(tftp)+EasyWebSvr(http)+grub2x64.efi+pe.wim组合就可以绕路解决(需要注意采用win7的bootmgfw.efi)。等待grub2的更新解决问题。
(6)【08[UEFI]TinyPXEServer免配置网启http服务器ipxe.efi-grub2x64.efi】
UEFI下采用ipxe.efi作为第一引导,进而引导grub2x64.efi,这样做的目的是可以让grub2的http传输达到满速,批处理会自动配置好TinyPXEServer,并可自动把pe.iso/wim加入到grub2启动菜单\boot\grub2\grub2pxe.cfg中,只支持UEFI-pxe启动,UEFI-grub2-pxe启动问题可以采取类似上面的方案绕路解决。grub2-pxe启动似乎和lang中文字体有冲突,现在用的loopback -m ramdisk (tftp)/grub2/unicode.xz到内存的办法,参见\boot\grub2\grub2pxe.cfg里面的内容。
温馨提示:
★tftpd32/haneWinDHCP+grub4dos方案只支持tftp协议,不支持http协议,不能跑满网速,不建议采用;建议采用TinyPXEServer+ipxe/grub2+webserver方案,支持tftp/http/ftp等传输协议,可以跑满网速,千兆网下速度较为理想。webserver可以采用王宝剑大神用VC++SDK编写的的绿色软件EasyWebSvr,只有惊人的67KB,配置简单。
★wimboot启动pe.wim,pe.wim不建议使用特殊字符和中文。wimboot启动pe.wim需要涉及的文件太多,细节不注意很容易导致启动失败,我更喜欢用pe.iso启动方案。
★BIOS-pxe启动,如果想换个PE,除了用批处理自动写菜单的办法之外,还有个办法是用sratlf的run模块只需要把PE的ISO镜像文件拷贝到\boot\imgs目录下,运行【05生成ISO文件列表.bat】更新dir.txt(PXE启动需要),grub4dos菜单选择“run mem automenu by sratlf”就能从这个PE启动,run模块版本是20141206,实测与grldr20161224或者更早的版本匹配较好,可以遍历文件并启动,由于run模块已几年不更新,已经不能匹配最新版grub4dos,所以不推荐使用,推荐用批处理自动写菜单的办法。




QQ截图20191225210339.png (13.57 KB, 下载次数: 461)

QQ截图20191225210339.png

vm设置VMnet0自动桥接.jpg (53.27 KB, 下载次数: 631)

vm设置VMnet0自动桥接.jpg

Windows 10-2019-12-26-08-28-36.png (5.09 KB, 下载次数: 577)

Windows 10-2019-12-26-08-28-36.png

作者: liuzhaoyzz    时间: 2019-12-25 21:09
本帖最后由 liuzhaoyzz 于 2019-12-26 09:59 编辑

tftpd32/hanewinDHCP+grldr/pxelinux.0的方案速度太慢,现已不推荐。
TinyPXEServer+ipxegrldr/ipxe/lpxelinux.0+http服务器的方案可能大家都会了。
我介绍下TinyPXEServer+wintoflash大神修改的grub2+http服务器的新方案,BIOS下面方案已经很成熟了,我主要把grub2用在UEFI下面。
下载wintoflash大神修改的grub2,网址http://wuyou.net/forum.php?mod=v ... 7233&extra=page%3D1,grub2x64pxe.efi启动文件的定制命令如下,模块可以根据自己的需要增加,我放在\boot\目录下,tinypxeserver用它作为启动文件,网启根目录设置为\boot\。
@echo off
grub-mkimage -d x86_64-efi -p /grub2 -c bootconfigpxe.cfg -o grub2x64pxe.efi -O x86_64-efi blocklist boot chain configfile disk echo efi_gop efi_uga efiload exfat extcmd fat halt iso9660 ls minicmd normal ntfs part_gpt part_msdos progress reboot search terminal udf map font gfxterm linux linux16 vhd loopback regexp probe wimboot multiboot multiboot2 test help ext2 net tftp http efinet efi_netfs cat cpio

内置菜单bootconfigpxe.cfg内容如下,为了保持文件夹的分类清晰,我放在\boot\grub2\目录下。
#用于pxe启动的grub2内置菜单:
if search --no-floppy -f --set=root /boot/grub2/grub.cfg; then
configfile (tftp)/grub2/grub2pxe.cfg
fi

\boot\grub2\grub2pxe.cfg是pxe启动菜单,grub2x64pxe.efi会自动搜索\boot\grub2\grub2pxe.cfg菜单文件,也就是说客户机启动流程是接收http服务器传来的grub2x64pxe.efi→加载内置菜单bootconfigpxe.cfg(已编译进入grub2x64pxe.efi)→查找外置菜单(tftp)/grub2/grub2pxe.cfg,这里http没有初始化,似乎只能用(tftp),用下面的菜单启动PE.ISO成功,用wimboot启动PE.WIM成功,需要注意的是,UEFI-ipxe-wimboot启动模式下BCD中默认文件名为boot.wim,boot.wim可以放在boot/imgs/下的任何一个子目录,批处理会遍历wim文件并加入到相应的启动菜单中;BIOS-ipxe-wimboot对于wim文件名字可以任意修改,但不建议使用特殊字符和中文。wimboot启动pe.wim需要涉及的文件太多,细节不注意很容易导致启动失败,我更喜欢用pe.iso启动方案。

set default=0
set fallback=1
set timeout=2
set pager=20

#设定菜单字体及背景颜色
set menu_color_normal=white/black
set menu_color_highlight=white/blue

#中文字体似乎和pxe启动有冲突?因此PE.ISO文件名里面不能包含中文。
#if loadfont /grub2/fonts/unicode.pf2;then
#set locale_dir=/grub2/locale
#set lang=zh_CN
#set gfxmode=auto,800x600,1024x768
#terminal_output gfxterm
#fi

net_bootp
set net_default_server=10.7.20.78
set root='(http)'

menuentry "Win10_16299_PE_x86_x64_10.31.iso" "Win10_16299_PE_x86_x64_10.31.iso" {
map --mem --type=CD (http)/imgs/Win10_16299_PE_x86_x64_10.31.iso
}

menuentry "SXWIN10PEX64_17763_NET20191205.iso" "SXWIN10PEX64_17763_NET20191205.iso" {
map --mem --type=CD (http)/imgs/SXWIN10PEX64_17763_NET20191205.iso
}

menuentry "WePE_64_V2.0.iso" "WePE_64_V2.0.iso" {
map --mem --type=CD (http)/imgs/WePE_64_V2.0.iso
}

menuentry "/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim" "/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim" {
wimboot @:bootmgfw.efi:(http)/ms/EFI/boot/bootx64.efi        @:bcd:(http)/grub2/wimboot/bcd @:boot.sdi:(http)/boot.sdi        @:boot.wim:(http)/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim
}

menuentry "0.Windows" "/EFI/Microsoft/Boot/bootmgfw.efi" --hotkey=0 {
        search --no-floppy --set --file $2
        chainloader $2
}

menuentry "1.grubfm_iso_wim_img" --hotkey=1 {
        export grub_file=/boot/imgs
        configfile /boot/grub2/grubfm.cfg
}

menuentry "2.Reboot" --hotkey=2 {reboot}

menuentry "3.Halt" --hotkey=3 {halt}

TinyPXEServer+wintoflash大神修改的grub2+http服务器这个pxe启动方案,我测试#中文字体似乎和pxe启动有冲突?因此PE.ISO文件名字里面不能包含中文。
另外,grub2官方http://www.gnu.org/software/grub/manual/grub/grub.html没有任何关于grub2支持pxe-http协议的介绍,我在论坛看了jie_china转发的帖子http://wuyou.net/forum.php?mod=viewthread&tid=411143有个(http),试了下可以,但是速度不能跑满网速,原因不明,看来grub2在http协议方面还有待提升。

然后我又试了下,TinyPXEServer+ipxe.efi引导启动后,chain grub2x64pxe.efi,进入grub2菜单grub2pxe.cfg,选择启动pe.iso,http传输速度达到了满速,这跟ipxe启动后转grldr,让grub4dos支持http协议情况类似。

如果上面的内容看不懂,下载一楼的附件,直接运行
【07[UEFI]TinyPXEServer免配置网启http服务器启动grub2x64pxe.efi】
【08[UEFI]TinyPXEServer免配置网启http服务器ipxe.efi-grub2x64.efi】
任何一个就可以自动把pe.iso/wim加入到grub2启动菜单\boot\grub2\grub2pxe.cfg中(只支持UEFI-pxe启动),并一键配置好webserver。


特别鸣谢:
不点、bean、chenall、2011yaya2007777(grub4dos开发者们)、pauly(bootice、XorbootUEFI作者)、jianliulin(FbinstTool)、adef(DetectEFI)、CxDir(2012jiashanni)、sratlf(RUN模块作者)、歌理(PXE免配菜单)、ljycslg(tinypxeserver汉化分享)、芈员外(一键RAMOS框架)、tmplinshi(concmd作者)、wintoflash(UEFI-grub2_map、ntboot)、hilsonma、极限驱动、2011hiboy(Grub2定制UEFI模板)、captain_g(IPXE-UEFI网启小工具)、yigeren(TinyPXEServer自动识别BIOS/UEFI的配置文件)、江南一根葱、jie_china(grub2-pxe文章推送)...等等等等。


作者: liuzhaoyzz    时间: 2019-12-25 21:09
本帖最后由 liuzhaoyzz 于 2019-12-26 08:09 编辑

就是说UEFI-grub2-pxe启动,目前已知的问题有:

1、中文字体加载失败,会冲突,大家看看是不是这样子。
2、如果只用grub2x64pxe.efi作为主引导文件,不能跑满网速,但是先用ipxe.efi作为主引导,再引导grub2x64pxe.efi就能跑满网速了。这是为什么?grub2的http传输协议是不是还有优化的空间,@wintoflash。




作者: liuzhaoyzz    时间: 2019-12-25 21:09
本帖最后由 liuzhaoyzz 于 2019-12-26 08:31 编辑

下载的模板文件boot_muban文件夹名字要改成boot,放在根目录下,当然也可用01-PE安装器by双心20191225一路回车一键建立。

随便扔个pe.iso到\boot\imgs\里面,不需要懂太多的pxe启动知识,一键启动http服务器即可,选2可以一键把pe.iso,pe.wim加到启动菜单,支持多种pxe启动模式。

文件目录结构:(可用01-PE安装器by双心20191225一键建立)
X:\
  │  grldr
  │  menu.lst
  ├─BOOT\(Legacy BIOS启动用)
  │   ├─BOOTICE\(存放bootice工具)
  │   ├─FbinstTool\(存放FbinstTool工具)
  │   ├─imgs\(存放PE的ISO镜像文件,各种软件img镜像文件)
  │   ├─grub\(内有grldr.*、menu.lst的备份,批处理会自动把备份拷贝到根目录,还存放font字库、sratlf的run模块和网启服务器tftpd32.*)
  │   └─grub2\(存放grubx64.efi、grub.cfg、unicode.pf2、zh_CN.mo等)  
  │   └─pxe\(存放pxe启动免配置批处理及引导器相关文件,可把pe.iso/wim加入到ipxe/grub2/grub4dos启动菜单中)




作者: liuzhaoyzz    时间: 2019-12-25 21:10
本帖最后由 liuzhaoyzz 于 2019-12-26 08:17 编辑

上传个客户机BIOS-pxe相关设置截图。

1、高级→内置设备→PXE Option ROM要开启


2、高级→网络堆栈→要开启,并且开启IPV4 6  PXE支持。

3、启动→网络堆栈驱动程序支持→开启。


4、从网络设备启动可以选择LEGACY ROM或者UEFI ROM优先。

5、以上设置好之后,客户机启动出现logo时按F12 F8 F9 F11,shift+F10之类的按键,选择从PXE启动即可。当然在启动选项里面把PXE设置为第一位也行。


不同品牌电脑的启动项快捷键 - Windows To Go - 无忧启动论坛 - Powered by Discuz! http://wuyou.net/forum.php?mod=v ... 0907&extra=page%3D1
感谢t5481194





作者: 心零    时间: 2019-12-25 21:21
怎么下载的是MDIE?
作者: 心零    时间: 2019-12-25 21:23
本帖最后由 心零 于 2019-12-25 21:28 编辑
liuzhaoyzz 发表于 2019-12-25 21:10
55555

上传错了附件?

是个文件管理器

MDIE双心封装版0.3.0.0RC6V3.exe (535.97 KB, 下载次数: 37)



作者: liuzhaoyzz    时间: 2019-12-25 21:30
本帖最后由 liuzhaoyzz 于 2019-12-25 21:34 编辑

手滑点错了文件夹,一楼下载地址已更新.


作者: ksafei    时间: 2019-12-25 22:29
介绍的好详细,感谢分享
作者: 江南一根葱    时间: 2019-12-25 23:00
网启取文件是gbk的,所以菜单显示要utf8,取文件要转码gbk,
作者: liuzhaoyzz    时间: 2019-12-25 23:06
本帖最后由 liuzhaoyzz 于 2019-12-26 09:04 编辑
江南一根葱 发表于 2019-12-25 23:00
网启取文件是gbk的,所以菜单显示要utf8,取文件要转码gbk,

我试了cfg无论用ansi或者utf-8带BOM,不带BOM的似乎都不行,不是文件格式的问题,文件格式我用VC改写的有个命令行小工具,随意转换,不应该是文件格式这个问题。

另外为了和葱大【史上最伟大网管】呼应,应景,娱乐,我加了头衔[我不是网管]

作者: 2010sya    时间: 2019-12-26 07:22
xiexie
作者: 江南一根葱    时间: 2019-12-26 11:24
liuzhaoyzz 发表于 2019-12-25 23:06
我试了cfg无论用ansi或者utf-8带BOM,不带BOM的似乎都不行,不是文件格式的问题,文件格式我用VC改写的有 ...

grub2菜单文件是要utf-8的,但路径里的中文需要转换成gbk,然后网启才能正确地读到文件。
作者: liuzhaoyzz    时间: 2019-12-26 11:26
本帖最后由 liuzhaoyzz 于 2019-12-26 11:27 编辑
江南一根葱 发表于 2019-12-26 11:24
grub2菜单文件是要utf-8的,但路径里的中文需要转换成gbk,然后网启才能正确地读到文件。

我知道grub2的菜单要用utf-8无BOM的,我也试过了,所有的路径里面,包括文件名字F:\boot\grub2\grub2pxe.cfg都没有中文,出错在loadfont这一句。

作者: 江南一根葱    时间: 2019-12-26 11:35
liuzhaoyzz 发表于 2019-12-26 11:26
我知道grub2的菜单要用utf-8无BOM的,我也试过了,所有的路径里面,包括文件名字F:\boot\grub2\grub2pxe. ...

我好像是生成文件列表用的就是gbk,加chcp 936
然后从列表中读取的菜单项要转成utf8来显示,但网启实际读的依旧还是gbk

这样应该就可以支持启动中文文件名的iso了。
作者: wintoflash    时间: 2019-12-26 12:01
本帖最后由 wintoflash 于 2019-12-26 12:08 编辑
liuzhaoyzz 发表于 2019-12-26 11:26
我知道grub2的菜单要用utf-8无BOM的,我也试过了,所有的路径里面,包括文件名字F:\boot\grub2\grub2pxe. ...

之前江南一根葱和我讨论过这个问题。
win10等系统里面,文件名是utf-8的,但是经过网启或者生成文件列表,在grub2里面必须要转成gbk编码文件名,才能读取。
好像是这样的,我记不太清了。

在grub2里面用strconv命令可以gbk/utf-8互相转换。
lua里面也有相关函数。


作者: 江南一根葱    时间: 2019-12-26 12:29
如果不是用的grubfm,且都用批处理了,干脆直接生成完整菜单算了
我以前好像就这么搞的,比如

@echo off
chcp 65001
echo #>iso.cfg

for /f "delims=. tokens=1-2"  %%a in ('dir /b %cd%\*.iso') do (
echo menuentry "%%a.%%b" --class %%b {
echo map --mem --type=CD (http^)//${1}
echo }
)>> iso.cfg


加些判断,就能完整生成ipxe菜单,g4d菜单,grub2菜单了。


作者: liuzhaoyzz    时间: 2019-12-26 14:53
本帖最后由 liuzhaoyzz 于 2019-12-26 14:57 编辑

不应该是grub2pxe.cfg菜单的问题,菜单是utf-8无BOM的,已经加载了,没有提示出错,怎么会是菜单的问题呢?类似的菜单,在UEFI硬盘启动的时候就不会出错,证明grub2pxe.cfg没有问题。

grub2pxe.cfg里面:
#loadfont /grub2/fonts/unicode.pf2
#set locale_dir=/grub2/locale
#set lang=zh_CN
#terminal_output gfxterm
上面的这几句,我逐句排查,逐句取消注释,最终排查到这一句出错:
set lang=zh_CN
看样子是因为加载\grub2\locale\zh_CN.mo的时候,不支持pxe环境所以出错,这一语句如果从本地硬盘启动不会出错的。


看了官方的说明,说是需要gettext模块,我定制的时候加上gettext模块反而出错,显示gettext已经加载,只有去掉了。

测试GPT-2019-12-26-14-51-00.png (3.78 KB, 下载次数: 438)

测试GPT-2019-12-26-14-51-00.png

作者: 江南一根葱    时间: 2019-12-26 20:38
liuzhaoyzz 发表于 2019-12-26 14:53
不应该是grub2pxe.cfg菜单的问题,菜单是utf-8无BOM的,已经加载了,没有提示出错,怎么会是菜单的问题呢? ...

貌似你说的是菜单显示中文?那就和启非中文iso是两码事
pxe加载的字体和本地启是不一样的,貌似pxe下是zh_CN.gmo
你用tinypxe启,看下加载日志就知道了
作者: gnuxwy    时间: 2019-12-26 20:55
教程很详细。。。标记备用之。



作者: 心零    时间: 2019-12-26 21:14
第一次耍网启,对PE.ISO 有什么特别要求吗,怎么试了几个都无法启动。

大佬给推荐个!
作者: liuzhaoyzz    时间: 2019-12-26 21:20
本帖最后由 liuzhaoyzz 于 2019-12-26 21:46 编辑
江南一根葱 发表于 2019-12-26 20:38
貌似你说的是菜单显示中文?那就和启非中文iso是两码事
pxe加载的字体和本地启是不一样的,貌似pxe下是z ...

我把问题详细描述下,menuentry里面有3处都是用的同一个带有中文pe.iso,"TonPE_V3.3中文.iso" 这是批处理自动遍历添加生成的
1、F:\boot\grub2\grub2pxe.cfg如果是这样子,全部注释掉字体相关文件,那么菜单会出现空格。直接上图。文件名字显示不全,也启动不了。:
#if loadfont /grub2/fonts/unicode.pf2;then
#set locale_dir=/grub2/locale
#set lang=zh_CN
#set gfxmode=auto,800x600,1024x768
#terminal_output gfxterm
#fi

menuentry "TonPE_V3.3中文.iso" "TonPE_V3.3中文.iso" {
map --mem --type=CD (http)/imgs/TonPE_V3.3中文.iso
}




2、F:\boot\grub2\grub2pxe.cfg如果是这样子,只注释掉#set lang=zh_CN,那么菜单中文可以正常显示,但是带中文带PE.ISO无法启动:
if loadfont /grub2/fonts/unicode.pf2;then
set locale_dir=/grub2/locale
#set lang=zh_CN
terminal_output gfxterm
fi

menuentry "TonPE_V3.3中文.iso" "TonPE_V3.3中文.iso" {
map --mem --type=CD (http)/imgs/TonPE_V3.3中文.iso
}


3、F:\boot\grub2\grub2pxe.cfg如果是这样子,全部保留,包括set lang=zh_CN,那么菜单无法显示,加载到zh_CN.mo就出错了,从这个过程来看,F:\boot\grub2\grub2pxe.cfg明显是已经加载成功了到,怎么是F:\boot\grub2\grub2pxe.cfg的文件编码到问题呢?出错在于F:\boot\grub2\grub2pxe.cfg内部的set lang=zh_CN这一语句。
if loadfont /grub2/fonts/unicode.pf2;then
set locale_dir=/grub2/locale
set lang=zh_CN
terminal_output gfxterm
fi

menuentry "TonPE_V3.3中文.iso" "TonPE_V3.3中文.iso" {
map --mem --type=CD (http)/imgs/TonPE_V3.3中文.iso
}



4、显示带中文到文件名字和加载到内存,确实是两个问题,但是为了保证文件名字和显示到一样,实际上我把他们都搞成一样的名字了。我感觉loadfont /grub2/fonts/unicode.pf2是用来菜单界面显示中文字体用的。对应菜单里面的$2
menuentry "TonPE_V3.3中文.iso" "TonPE_V3.3中文.iso"
zh_CN.mo是用来传递文件名字给webserver到,对应菜单里面的$1.
关键问题就在于set lang=zh_CN,我看了pxe启动记录,确实是zh_CN.mo,不是gmo,好像mo找不到才会找gmo或者gz。




作者: liuzhaoyzz    时间: 2019-12-26 21:41
本帖最后由 liuzhaoyzz 于 2019-12-26 22:23 编辑
心零 发表于 2019-12-26 21:14
第一次耍网启,对PE.ISO 有什么特别要求吗,怎么试了几个都无法启动。

大佬给推荐个!

对于PE.ISO基本没什么要求,内存大点就行,pxe很多方案是把pe.iso或者wim加载到内存启动的,航母级别的PE不推荐用于网启,推荐软件全部内置到wim里面的这种PE,省事儿,不会存在找不到外置的情况,全内置PE占用启动内存稍微大点。
不知道你是那种启动方式,只要内存大,基本上任何一个PE.ISO都可以。PXE启动PE所需的内存大概等于ISO大小+2倍WIM大小+1GB的样子,sanboot方案启动的PE启动的内存小点,你用的是那种启动模式?ISO还是wim?BIOS还是UEFI?推荐采用pe.iso。
你看下1楼 4楼 5楼到帖子吧。已经够傻瓜了,一键开启pxe服务器,一键把pe.iso加入到启动菜单,不需要懂得什么pxe启动知识。你需要检查下webserver是否开启(托盘绿色),tinypxeserver是否启动。
有什么问题来个截图撒。

作者: 江南一根葱    时间: 2019-12-26 21:52
liuzhaoyzz 发表于 2019-12-26 21:20
我把问题详细描述下,menuentry里面有3处都是用的同一个带有中文pe.iso,"TonPE_V3.3中文.iso" 这是批处 ...

我下了你那个,发现启不来,(http)失效,哈哈,我是越活越回去了。
作者: liuzhaoyzz    时间: 2019-12-26 22:03
本帖最后由 liuzhaoyzz 于 2019-12-26 22:08 编辑
江南一根葱 发表于 2019-12-26 21:52
我下了你那个,发现启不来,(http)失效,哈哈,我是越活越回去了。


你用批处理加载PE.ISO到菜单没有?另外你是ISO还是WIM?路径不能随便改,grub2定制的时候就决定了的。http失效,是不是next-server地址不对?你不是用的批处理自动添加PE到菜单?

还有mywebserver托盘区是不是绿色的开启状态?
作者: 江南一根葱    时间: 2019-12-26 22:29
终于启成功了,就是gbk的问题。。

222222222222.png (53.41 KB, 下载次数: 474)

222222222222.png

222222222222.png (53.41 KB, 下载次数: 437)

222222222222.png

作者: 江南一根葱    时间: 2019-12-26 22:31
liuzhaoyzz 发表于 2019-12-26 22:03
你用批处理加载PE.ISO到菜单没有?另外你是ISO还是WIM?路径不能随便改,grub2定制的时候就决定了的。h ...

http失效,我删了tinypxe配置再启就ok了,不过启iso确实就是gbk的问题


作者: liuzhaoyzz    时间: 2019-12-26 23:00
你说的中文名字gbk,具体应该怎么解决,我还没搞懂。
作者: 江南一根葱    时间: 2019-12-26 23:03
liuzhaoyzz 发表于 2019-12-26 23:00
你说的中文名字gbk,具体应该怎么解决,我还没搞懂。

菜单文件依然用utf8
执行map mem ,也就是选择菜单执行启动时,要先把路径“中文.iso”这段字符串转换成gbk的。
我之前是直接用的grubfm,用lua转的
作者: 江南一根葱    时间: 2019-12-26 23:06
我举个栗子吧
menuentry "TonPE_V3.3中文.iso" "TonPE_V3.3中文.iso" {
map --mem --type=CD (http)/imgs/TonPE_V3.3^ω^h←_←一堆中文gbk乱码.iso
}


这样好理解吧

  
作者: liuzhaoyzz    时间: 2019-12-26 23:12
本帖最后由 liuzhaoyzz 于 2019-12-27 07:21 编辑

这样子一堆中文乱码,菜单看起来不是很乱吗?还不如用批处理直接修改原文件中的汉字改成英文,然后自动生成菜单,然后这个问题就绕过去了。

wintoflash有时间有兴趣的话,看看能不能有所改进,文件名直接用utf-8来传输就好了。
作者: 江南一根葱    时间: 2019-12-27 09:53
liuzhaoyzz 发表于 2019-12-26 23:12
这样子一堆中文乱码,菜单看起来不是很乱吗?还不如用批处理直接修改原文件中的汉字改成英文,然后自动生成 ...

加strconv模块转成gbk后正常,
也能启动
menuentry "uefiWin10pe中文.iso" "uefiWin10pe中文.iso" {
strconv --gbk --set=file "${1}"; map --mem --type=CD (http)/imgs/${file}
}



作者: 江南一根葱    时间: 2019-12-27 10:13
楼主批处理比较牛b,我提个建议

批处理在目录 搜索iso wim efi等 文件

如果搜到的后缀为iso,就自动生成iso相关的菜单条,像
menuentry "/imgs/uefiWin10pe中文.iso" --class iso {
strconv --gbk --set=file "${1}"; map --mem --type=CD (http)/${file}
}
像昨天我发过的类似就可以写成
for /f "delims=. tokens=1-2"  %%a in ('dir /b D:\ppxxee\imgs\') do (
echo menuentry "imgs/%%a.%%b" --class %%b {
echo strconv --gbk --set=file "${1}"; map --mem --type=CD ^(http^)/imgs/${file}
echo }
)>>xxoo.cfg

如果是wim就写另一个菜单

上面是我瞎写,不知道哪里还要加转义符,只是有这个想法,之前好像折腾过。。忘光光了


如果用lua取列表,菜单倒是可以直接用dir.txt来生成菜单的,用grub2脚本我还不会弄。。

作者: liuzhaoyzz    时间: 2019-12-27 10:22
本来就是针对iso wim 写了不同的启动菜单啊!你试下不就知道了?都写到同一个cfg里面了的。
作者: 江南一根葱    时间: 2019-12-27 10:27
liuzhaoyzz 发表于 2019-12-27 10:22
本来就是针对iso wim 写了不同的启动菜单啊!你试下不就知道了?都写到同一个cfg里面了的。

那倒没细看,看不懂,那你稍改下就能启中文iso了,
还有就是win10下貌似是取不到ip的

作者: liuzhaoyzz    时间: 2019-12-27 11:23
本帖最后由 liuzhaoyzz 于 2019-12-27 11:36 编辑

grub2启动中文iso,晚点我抽空试下。请问下strconv在哪个模块里面?
win10下获取ip地址,没问题啊?WIN7 WIN10我都试了,没问题啊?而且获取ip地址是双保险的方案,route获取不到,会自动采用ipconfig的方案。
route需要windows系统中有find和findstr命令的支持才行,你的系统没有精简吧?
ipconfig的方案只考虑了win7和win10中文版,难道你的英文版/繁体版?






作者: 江南一根葱    时间: 2019-12-27 11:40
liuzhaoyzz 发表于 2019-12-27 11:23
grub2启动中文iso,晚点我抽空试下。请问下strconv在哪个模块里面?
win10下获取ip地址,没问题啊?WIN7 W ...

模块就叫这个的
win10 1903的
作者: liuzhaoyzz    时间: 2019-12-27 11:45
本帖最后由 liuzhaoyzz 于 2019-12-27 11:56 编辑

strconv我没搜到这个模块啊?是grub2的内置命令吗?还是外置命令?我没看到。我倒是依稀记得linux里面有个strconv命令。
另外,你上面的菜单,是否还需要在前面set lang=zh_CN?我开启了set lang=zh_CN就会卡死啊?

WIN10 1903我没用过。我用过最高版本的只有LTSC2019.17763.316.

作者: wintoflash    时间: 2019-12-27 12:00
liuzhaoyzz 发表于 2019-12-27 11:45
strconv我没搜到这个模块啊?是grub2的内置命令吗?还是外置命令?我没看到。我倒是依稀记得linux里面有个s ...

模块是 conv
在 command.lst 里面搜命令,就知道在哪个模块了。



作者: 江南一根葱    时间: 2019-12-27 12:09
ip显示是“默认"

ip.png (45.94 KB, 下载次数: 304)

ip.png

作者: liuzhaoyzz    时间: 2019-12-27 12:15
本帖最后由 liuzhaoyzz 于 2019-12-27 12:17 编辑
wintoflash 发表于 2019-12-27 12:00
模块是 conv
在 command.lst 里面搜命令,就知道在哪个模块了。

我加载了conv模块,用下面的菜单,webserver上面显示的传输TonPE_V3.3中文.iso成功,但是没有启动。
menuentry "/imgs/TonPE_V3.3中文.iso" --class iso {
strconv --gbk --set=file "${1}"; map --mem --type=CD (http)${file}
}
我没有set lang=zh_CN,因为只要set lang=zh_CN启动就会卡死。

WIN10 1903获取ip晚点看下。
你注释掉这几行试试看?
rem 如果系统中有route命令,优先采用方案1:
for /f "tokens=3,4" %%a in ('route print^|find "0.0.0.0          0.0.0.0"') do (  set "Gateway=%%a" & set "ip=%%b")
for /f "tokens=2" %%a in ('route print^|findstr "在链路上.*%ip%"') do (if not defined mask set "mask=%%a" )
for /f "tokens=2" %%a in ('route print^|find "在链路上    %ip%"') do (if not defined mask set "mask=%%a" )

我不清楚原因。


作者: 江南一根葱    时间: 2019-12-27 13:56
本帖最后由 江南一根葱 于 2019-12-27 14:19 编辑


用xorboot里的光盘制作工具弄了个小的uefi镜像测试 ,可以启
应该没问题。。
应该是iso本身要支持uefi启动,不支持的可以用loopback启吧

作者: liuzhaoyzz    时间: 2019-12-27 15:28
本帖最后由 liuzhaoyzz 于 2019-12-27 16:12 编辑

我上面的菜单无法启动是什么原因?你的怎么能启动呢?奇怪得很。ISO是支持UEFI启动的啊。同一个pe.iso用ipxe测试都可以。menuentry "TonPE_V3.3中文.iso" "TonPE_V3.3中文.iso" {
strconv --gbk --set=file "${1}"; map --mem --type=CD (http)/imgs/${file}
}


15:39:32 HTTPd:Client: 10.7.20.83 [GET] /imgs/TonPE_V3.3中文.iso
15:39:32 HTTPd:Server : Returning /imgs/TonPE_V3.3中文.iso
15:39:47 DHCPd:INFORM received, MAC:20-1A-06-A1-17-D0, XID:BDF85E96
15:40:01 HTTPd:DisConnect: TID=3068
15:40:02 HTTPd:Connect: 10.7.20.83, TID=2680
15:40:02 HTTPd:Client: 10.7.20.83 [GET] /imgs/TonPE_V3.3中文.iso
15:40:02 HTTPd:Server : Returning /imgs/TonPE_V3.3中文.iso
15:40:02 HTTPd:Exception: , Connection Closed Gracefully.
15:40:02 HTTPd:DisConnect: TID=2680

另外,你WIN10.1903电脑上面,cmd里面运行下route print截图。然后执行ipconfig命令截图。我想看看为什么获取不到ip?





作者: 江南一根葱    时间: 2019-12-27 17:21
本帖最后由 江南一根葱 于 2019-12-27 17:24 编辑
liuzhaoyzz 发表于 2019-12-27 15:28
我上面的菜单无法启动是什么原因?你的怎么能启动呢?奇怪得很。ISO是支持UEFI启动的啊。同一个pe.iso用ipx ...

我有数张虚拟网卡,估计有关 这是禁用虚拟网卡后的截图,看批处理貌似是取得了"默认“作为ip了

作者: liuzhaoyzz    时间: 2019-12-27 22:46
一楼的已更新,获取ip地址应该没问题了。
但是grub2-pxe启动带有汉字的pe.iso似乎还是不行,只支持全部是英文的pe.iso。

作者: 江南一根葱    时间: 2019-12-28 22:00
liuzhaoyzz 发表于 2019-12-27 22:46
一楼的已更新,获取ip地址应该没问题了。
但是grub2-pxe启动带有汉字的pe.iso似乎还是不行,只支持全部是 ...

可以了,两台机上试了下确实获取正确了,
怎么不用获取管理员权限的那段批处理,一键ramos那个的,我加上了貌似是会报毒,不过
反正bootice也要报毒的,索性让它报毒报个痛快
作者: liuzhaoyzz    时间: 2019-12-29 07:58
本帖最后由 liuzhaoyzz 于 2019-12-29 08:21 编辑

获取管理员权限那段代码在PE下有问题,似乎会自动退出,似乎只适用于正常的操作系统,而我写的PE安装器除了在正常系统下使用,还想要在PE下部署使用,为什么能进PE还要想部署PE?因为原来PE可能是从优盘、网络等介质启动的,我使用PE总是喜欢部署到硬盘启动,可以达到格式化C盘以后PE仍然能够从其他盘启动的效果,部署到硬盘之后这台电脑大多数情况下可以抛弃USB启动,而能在PE下部署到硬盘,就没必要重启之后在正常系统下部署到硬盘、优盘或者PXEserver,USB启动和网络启动对我来说一直都是备胎方案。为了想在PE里面运行批处理,所以我放弃了自动添加管理员运行的代码,主要是bcdedit需要管理员权限,如果不涉及到bcdedit,一般来说没必要用管理员权限。        
作者: 江南一根葱    时间: 2019-12-29 11:56
很久以前倒也喜欢本地部署pe,我部署机房也是先把几十台客户端网络ghost成一个pe,这样即使还原c盘失败也可以直接快速进pe重来,
后来更新太快,就么有折腾了
作者: liuzhaoyzz    时间: 2019-12-29 12:12
你说你用UEFI-grub2-pxe启动带有中文名字的PE.ISO成功了,怎么我不成功,菜单也是按照你的菜单来的,你把关键的几个文件打包发来我试试,包括grub2.efi,grub2.cfg,要包括目录结构,zh_CN.mo,unifont.pf2等。      
作者: 江南一根葱    时间: 2019-12-29 12:26
本帖最后由 江南一根葱 于 2019-12-29 12:29 编辑
liuzhaoyzz 发表于 2019-12-29 12:12
你说你用UEFI-grub2-pxe启动带有中文名字的PE.ISO成功了,怎么我不成功,菜单也是按照你的菜单来的,你把 ...

这个我怀疑是打包的iso格式问题

你用xorboot的光盘制作工具打包个非udf的iso看看是不是中文
能启
我那个包是grubfm做的,就之前分享的那个包,是用的lua脚本,批处理只生成gbk的dir.txt,然后转成utf8的菜单
作者: liuzhaoyzz    时间: 2019-12-29 12:32
本帖最后由 liuzhaoyzz 于 2019-12-29 16:31 编辑

如果是ISO制作模式的问题,就不好办了,因为大家都是用通常的办法制作的PE.ISO啊,不能说别人发布的PE.ISO都去打包一遍。你的包里面倒底加载了set lang=zh_CN这一句没有?我只要加载这一句就卡死,从本地加载这一句就没事,这个是关键点。
你分享的很多方案,文件很多,方案也很多,我没搞清楚怎么用呢,我看很多有的是是在tinycore linux上面建立服务器的?还没看懂你的方案里面pxe启动流程。不知道该加载哪个文件作为启动文件,不知道webserver的根目录怎么设置,这些对于pxe启动很关键,设置不对就启动不了。

作者: 江南一根葱    时间: 2019-12-29 13:46
本帖最后由 江南一根葱 于 2019-12-29 13:49 编辑
liuzhaoyzz 发表于 2019-12-29 12:32
如果是ISO制作模式的问题,就不好办了,因为大家都是用通常的办法制作的PE.ISO啊,不能说别人发布的PE.ISO ...

之前的包efi下就两个方案,指这个http://bbs.wuyou.net/forum.php?mod=viewthread&tid=417622&extra=你可以试下这个中文iso能不能启我是用vmware测试的,取文件速度巨慢,
原理就启动文件A.ipxeloaderx64.efi,调用的是app/config/tinycore.ipxe 可以改
它会启动grub2目录的grubfmx64.efi根目录就tftpboot

或者直接网启bootmgfw.efi(其实efi下用过来这个最快,一般人我不告诉他)


作者: liuzhaoyzz    时间: 2019-12-29 13:59
本帖最后由 liuzhaoyzz 于 2019-12-29 16:30 编辑

我现在在外面,手机回复,晚点回去看下。bootmghfw.efi用作网启,菜单不好搞,bcd里面指向的wim文件名字,对于bios-pxe可以随意更改,对于uefi-pxe似乎只能是boot.wim吧?修改菜单需要用bcdedit,稍微麻烦,不如ipxe和cfg文本这种方便。启动速度上来说没有什么明显的优势啊,即使改了bcd里面那两个参数也差不多,大家都是跑满网速,差别不大吧。
作者: hkkitlee    时间: 2019-12-29 14:27
本帖最后由 hkkitlee 于 2019-12-29 14:55 编辑
liuzhaoyzz 发表于 2019-12-29 12:32
如果是ISO制作模式的问题,就不好办了,因为大家都是用通常的办法制作的PE.ISO啊,不能说别人发布的PE.ISO ...

查看過grub2手冊,粗略估計:

中文字以‘模組’存放在$locale_dir當中,所以當使用$lang時$locale_dir為必要「變量」。

本地啟動是以磁盤作為根,根下存放模組及其他文件,有需要時加載。
問題應該是pxe啟動:當啟動時「只能」從bootserver加載單一文件,所以其他模組亦忽略了。

除非將「所有」模組、功能編譯成單一文件;但grub2好像不支持。
亦可能因為這樣,所以「你編譯時才報錯」(18樓)。


看看幫不幫到忙?編譯成網絡盤提取伺服器上其他文件:https://www.ibm.com/developerworks/community/blogs/5144904d-5d75-45ed-9d2b-cf1754ee936a/entry/uefi-grub2?lang=en

6. 创建PXE引导
grub2支持EFI环境通过PXE引导操作系统。

需要在PXE server端创建EFI启动需要的目录结构。 利用grub2-mknetdir命令,此命令将会产生一个boot/grub2/x86_64-efi目录,此目录为PXE启动必备目录,将此目录拷贝到tftp server的root目录下。其中efinet、tftp为必备模块,用以支持grub2的tftp传输。

# grub2-mknetdir --modules="fat part_msdos search normal linux font all_video reboot configfile efinet ntfs tftp echo gfxterm" --net-directory=.
image

1) 将grub2-mknetdir生成的core.efi重命名为pxelinux.0,部分PXE引导过程中只识别此文件名。

2) 此版本grub2在PXE引导过程中不支持手动grub命令提示符,即通过grub命令提示符不能找到任何可启动设备。

3)解决方法为将合适的grub.cfg拷贝到服务器对应目录下,grub2能够自动识别启动设备并下载相应启动文件。一般情况下将grub.cfg放置在同pxelinux.0一个目录下。

简易grub.cfg如下:

insmod all_video
set gfxmode=800x600
  set gfxpayload=keep
  set timeout=3
  insmod gfxterm
  terminal_output gfxterm
  menuentry ' kernel EFI-BOOT-grub'{
    linux   /vmlinuz*** root=/dev/ram0 rw
    initrd  /initramfs***
  }

作者: 江南一根葱    时间: 2019-12-29 15:47
liuzhaoyzz 发表于 2019-12-29 13:59
我现在在外面,手机回复,晚点回去看下。bootmghfw.efi用作网启,菜单不好搞,bcd里面指向的wim文件名字, ...

efi下也可以改名的
efi下ipxe启wim改名对应的是 initrd -n boot.wim http://真实.wim
千兆貌似感官上bootmgfw.efi跑满速度比较快,且ipxe的话貌似会要双倍内存

作者: 江南一根葱    时间: 2019-12-29 15:49
hkkitlee 发表于 2019-12-29 14:27
查看過grub2手冊,粗略估計:

中文字以‘模組’存放在$locale_dir當中,所以當使用$lang時$locale_dir ...

https://github.com/a1ive/grub2-filemanager
这个grubfm就是所有东西编译成单一文件的
还能塞整个pe进去做成单一文件,
作者: liuzhaoyzz    时间: 2019-12-29 15:53
本帖最后由 liuzhaoyzz 于 2019-12-29 16:05 编辑

用你的模板试了下,用tinypxeserver加载\tftpboot\A.ipxeloaderx64.efi作为启动文件,菜单选择app\config\tinycore.ipxe,运行了下tftpboot\@1生成文件列表按字母排列.bat,用ipxe转grub2启动,选择\tftpboot\WePE_64_V2.0中文.iso这个文件,加载结束后,启动了WePE_64_V2.0中文.iso.

GPT_test-2019-12-29-15-52-40.png (275.95 KB, 下载次数: 312)

GPT_test-2019-12-29-15-52-40.png

GPT_test-2019-12-29-15-52-47.png (283.66 KB, 下载次数: 323)

GPT_test-2019-12-29-15-52-47.png

GPT_test-2019-12-29-15-52-19.png (288.73 KB, 下载次数: 309)

GPT_test-2019-12-29-15-52-19.png

GPT_test-2019-12-29-15-52-16.png (266.6 KB, 下载次数: 328)

GPT_test-2019-12-29-15-52-16.png

作者: 江南一根葱    时间: 2019-12-29 16:03
你启的速度怎么这么快,我两台win10用vmware都是1M/s。。。菜单不用手动选择的,是定死的

作者: liuzhaoyzz    时间: 2019-12-29 16:12
只是百兆网测试的,10MB/S,这也能较快?
:grub2
isset ${proxydhcp/dhcp-server} && imgexec http://${proxydhcp/dhcp-server}/grub2/grubfmx64.efi proxydhcp=${proxydhcp/dhcp-server} ||
imgexec http://${dhcp-server}/grub2/grubfmx64.efi proxydhcp=${dhcp-server}
goto retryip
你的模块启动流程是ipxe→grub2→grubfmx64.efi,然后调用的是哪个菜单?文件太多了,没有个说明,看不懂
作者: liuzhaoyzz    时间: 2019-12-29 16:18
hkkitlee 发表于 2019-12-29 14:27
查看過grub2手冊,粗略估計:

中文字以‘模組’存放在$locale_dir當中,所以當使用$lang時$locale_dir ...

set lang=zh_CN这一句调用之后,tinypxeserver确实看到文件有加载进程,然后文件加载到100%之后,继续加载到600%多,就出错了,这个zh_CN.mo文件应该没问题,因为本地调用都可以,只是pxe调用失败,感觉没有pxe启动的时候对于中文语言文件没有做特殊处理,所以失败。

你给的帖子里面,grub2-mknetdir方案,我之前也是过的,最终是一样的结果。

作者: liuzhaoyzz    时间: 2019-12-29 16:27
本帖最后由 liuzhaoyzz 于 2019-12-29 16:47 编辑
江南一根葱 发表于 2019-12-29 15:47
efi下也可以改名的
efi下ipxe启wim改名对应的是 initrd -n boot.wim http://真实.wim
千兆貌似感官上bo ...

你说的是uefi-ipxe启动方案,我说的是UEFI-grub2-wimboot-pxe方案来启动wim,wimboot启动wim方案,没有改名的办法吧,你说的 initrd -n boot.wim http://真实.wim是ipxe的语句啊?我试了你说的这个办法,改名字确实有效,感谢!!!

UEFI-grub2-wimboot-pxe方案来启动wim,wimboot的语句大概是这样子的:

menuentry "/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim" "/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim" {
wimboot @:bootmgfw.efi:(http)/ms/EFI/boot/bootx64.efi        @:bcd:(http)/grub2/wimboot/bcd @:boot.sdi:(http)/boot.sdi        @:boot.wim:(http)/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim
}

前面写了@:boot.wim也不管用,文件名字必须为boot.wim,这是bcd里面指定的。(要么就去改BCD,这就太费事儿了!那么多wim,每个去改,烦都烦死了!)
BIOS-PXE-wimboot就没有问题,wim文件名字可以随便改。(应该是vfat盘里自动更改指向了。)
我猜测可能的原因是BIOS下bcdedit修改vfat盘里面的BCD很容易,UEFI下修改vfat盘里的BCD估计有问题,所以不能指向正确的wim名字。



作者: 江南一根葱    时间: 2019-12-29 16:31
本帖最后由 江南一根葱 于 2019-12-29 16:34 编辑
liuzhaoyzz 发表于 2019-12-29 16:27
你说的是uefi-ipxe启动方案,我说的是UEFI-grub2-wimboot-pxe方案来启动wim,wimboot启动wim方案,没有改 ...

可以啊
@:boot.wim:(http)/imgs/SXWIN10PEX64_17763_NET20191205/真实名字.wim相关文件你直接用wimboot.gz,loopback出来就行了。
wimboot.gz (1.09 MB, 下载次数: 15)
作者: 江南一根葱    时间: 2019-12-29 16:35
本帖最后由 江南一根葱 于 2019-12-29 16:37 编辑
liuzhaoyzz 发表于 2019-12-29 16:12
只是百兆网测试的,10MB/S,这也能较快?
:grub2
isset ${proxydhcp/dhcp-server} && imgexec http://${p ...

ipxe→grubfmx64.efi,菜单是grubfmx64.efi内置的,本来也可以不用tinycore.ipxe,想到还要用下ipxe菜单
efi下就这三个文件
用你的模板的话,直接启grubfmx64.efi也可以,ipxe仅仅是为了支持proxydhcp

作者: liuzhaoyzz    时间: 2019-12-29 16:40
wimboot.gz怎么搭配loopback使用?知识点太多了!

作者: 江南一根葱    时间: 2019-12-29 16:48
liuzhaoyzz 发表于 2019-12-29 16:40
wimboot.gz怎么搭配loopback使用?知识点太多了!

loopback loop /wimboot.gz   就生成(loop)这个“设备”
加 -m是直接载入内存,
就能 wimboot @:bootmgfw.efi:(loop)/bootmgfw.efi
就能减少文件夹文件了
这个是我取dir.txt的lua文件
congnet.7z (755 Bytes, 下载次数: 6)
要支持lua还得加入lua.mod模块增肥,lua $prefix/congnet.lua
就能取网络上的dir.txt来生成网启菜单了。

作者: liuzhaoyzz    时间: 2019-12-29 16:49
江南一根葱 发表于 2019-12-29 16:35
ipxe→grubfmx64.efi,菜单是grubfmx64.efi内置的,本来也可以不用tinycore.ipxe,想到还要用下ipxe菜单
...

内置菜单是什么样子的?我想要搞清楚出错的原因,只有看相关菜单调用才知道。
UEFI-grub2-pxe你倒底调用了set lang=zh_CN没有?
作者: 江南一根葱    时间: 2019-12-29 16:56
本帖最后由 江南一根葱 于 2019-12-29 17:03 编辑
liuzhaoyzz 发表于 2019-12-29 16:49
内置菜单是什么样子的?我想要搞清楚出错的原因,只有看相关菜单调用才知道。
UEFI-grub2-pxe你倒底调用 ...

http://bbs.wuyou.net/forum.php?m ... 7&page=4#pid3938071
我用的是grubfm纯正原包加“自"己写的congnet.lua.再瞎改一通。
你可以参考#39的grub2定制包做成网启包,把字体之类的打包进去
懒得折腾的话你生成一个软盘,比如ramdisk.img,把字体之类放进去,然后loopback -m ramdisk /ramdisk.img
这样就能本地使用(ramdisk)了,取字体就不会请求一连串tftp,http了
不用纠结原因,估计是文件连续性之类的诡异问题,反正现在有ramdisk方式,把所有文件弄到”本地内存“取是最佳的方法,legacybios下的grub2我也是这样做的,用的是g4d生成ramdisk盘,ipxe->g4d->grubfm,更变态,不过挺好用

作者: liuzhaoyzz    时间: 2019-12-29 17:46
看了你的解释,为了加载中文,迫不得已绕了很多弯弯啊!
大概的意思,就是因为set lang=zh_CN不支持pxe,所以建个“本地”的内存盘,然后:
set locale_dir=(ramdisk)/grub2/locale
set lang=zh_CN
这里的山路十八弯啊!
@wintoflash能看看从代码层级做出一些改进吗?

作者: 江南一根葱    时间: 2019-12-29 18:46
liuzhaoyzz 发表于 2019-12-29 17:46
看了你的解释,为了加载中文,迫不得已绕了很多弯弯啊!
大概的意思,就是因为set lang=zh_CN不支持pxe, ...

其实是tinypxe比较“烂”,我传统bios机房网启实战中从不用tinypxe。。。
ramdisk方式挺好啊,可以把一些不需要常更改的脚本弄进去,通过参数来修改就行了。
作者: wintoflash    时间: 2019-12-29 18:55
本帖最后由 wintoflash 于 2019-12-29 18:58 编辑
liuzhaoyzz 发表于 2019-12-29 17:46
看了你的解释,为了加载中文,迫不得已绕了很多弯弯啊!
大概的意思,就是因为set lang=zh_CN不支持pxe, ...
@wintoflash能看看从代码层级做出一些改进吗?

对于网络方面,我只能说,还是另请高明吧。
网络的文件系统在grub2下不好用,文件随机读取容易出问题。
内存盘多好,稳定,快速,而且支持安全写入。

至于中文路径,估计是 gb2312/gbk/gb18030 之类的问题,它们之间虽然说是兼容但中间有问题。




作者: liuzhaoyzz    时间: 2019-12-29 19:14
本帖最后由 liuzhaoyzz 于 2019-12-29 20:22 编辑
wintoflash 发表于 2019-12-29 18:55
对于网络方面,我只能说,还是另请高明吧。
网络的文件系统在grub2下不好用,文件随机读取容易出问题 ...

1、绕路解决也是很好的解决办法,我抽空摸索下loopback内存盘的做法。
2、另外,我准备给grub2官方bug-grub@gnu.org发一封EMAIL,把我们这个帖子里面讨论的关于UEFI-grub2-PXE启动关于中文字体的问题,向官方反馈看看,看看他们怎么说。虽然wintoflash修改的grub2是官方的分支,但是这个问题可能官方版本的grub2也一样存在这个问题。
3、还有个绕路的解决办法是强制修改PE文件名字为英文名字,一个PE.ISO,搞什么中文吗!

作者: wintoflash    时间: 2019-12-29 19:18
liuzhaoyzz 发表于 2019-12-29 19:14
1、绕路解决也是很好的解决办法,我抽空摸索下loopback内存盘的做法。
2、另外,我准备给grub2官方发一 ...

用官方版的测试一下有没有这个问题。这个不是字体的问题,是gettext/locale方面的问题。

还有个绕路的解决办法是强制修改PE文件名字为英文名字,一个PE.ISO,搞什么中文吗!

这个编码问题我后面可能会看一下。
不过这个确实属于软件艹蛋,不用utf-8,那繁体中文还要big5转码,日文还要jit转码......



作者: liuzhaoyzz    时间: 2019-12-29 19:36
本帖最后由 liuzhaoyzz 于 2019-12-29 19:39 编辑
wintoflash 发表于 2019-12-29 19:18
用官方版的测试一下有没有这个问题。这个不是字体的问题,是gettext/locale方面的问题。

晚点我用官方的grub2测试下看看,给他们反馈也尽可能用他们官方的版本。

我曾经修改了“游兰海”编写的文件编码转换,可以自动判断文件编码,并转换为指定的文件格式,例如gbk,utf-8之类的,但这是文件编码转换,没有涉及到文件名字这样子的字符串编码转换的事情,但是算法应该差不多的。字符串编码转换,github上面有很多用c语言写的范例。文件编码格式转换器encodeconv2.0(命令行工具) - 脚本讨论区 - 无忧启动论坛 - Powered by Discuz! http://wuyou.net/forum.php?mod=v ... 1&extra=#pid3845805

这个字体问题,不用着急,一年、两年、三年之后都可以,因为现在有绕路解决的办法,内存盘的办法、暴力强制修改为英文名字就是其一,虽然麻烦点,但也是一条路。

作者: liuzhaoyzz    时间: 2019-12-29 20:04
本帖最后由 liuzhaoyzz 于 2019-12-29 20:06 编辑

刚才从官网https://ftp.gnu.org/gnu/grub/下载了grub-2.04-for-windows.zip
定制命令:用于UEFI-grub2-pxe启动
@echo off
grub-mkimage -d x86_64-efi -p /grub2 -c bootconfigpxe.cfg -o grub2x64pxe.efi -O x86_64-efi blocklist boot chain configfile disk echo efi_gop efi_uga exfat extcmd fat halt iso9660 ls minicmd normal ntfs part_gpt part_msdos progress reboot search terminal udf font gfxterm linux linux16 loopback regexp probe multiboot multiboot2 test help ext2 net tftp http efinet cat cpio

编码内置菜单bootconfigpxe.cfg(utf-8无BOM)#用于pxe启动的grub2内置菜单:
if search --no-floppy -f --set=root /boot/grub2/grub.cfg; then
configfile (tftp)/grub2/grub2pxe.cfg
fi


grub2x64pxe.efi放在/boot/grub2下面
用tinypxeserver启动grub2x64pxe.efi,官方grub-2.04-for-windows也是出错:





unicode.pf2通过pxe传输速度,显示的是100.87TiB/s


文件传输显示:过早的文件结束(Premature file end)


启动菜单F:\boot\grub2\grub2pxe.cfg如下:
set default=0
set fallback=1
set timeout=5
set pager=20


#设定菜单字体及背景颜色
set menu_color_normal=white/black
set menu_color_highlight=white/blue


#中文字体似乎和pxe启动有冲突?因此PE.ISO里面不能包含中文。
if loadfont /grub2/fonts/unicode.pf2;then
set locale_dir=/grub2/locale
set lang=zh_CN
#set gfxmode=auto,800x600,1024x768
terminal_output gfxterm
fi


net_bootp
set net_default_server=192.168.21.103
set root='(http)'


menuentry "WePE_64_V2.0中文.iso" "WePE_64_V2.0中文.iso" {
map --mem --type=CD (http)/imgs/WePE_64_V2.0中文.iso
}



作者: 江南一根葱    时间: 2019-12-29 21:00
不用tinypxe呢,
传统bios下好像我散装能启的,
作者: liuzhaoyzz    时间: 2019-12-29 21:49
本帖最后由 liuzhaoyzz 于 2019-12-29 21:57 编辑

定制grub2x64pxe.efi的命令:(加上conv模块,因为命令strconv在这个模块
@echo off
grub-mkimage -d x86_64-efi -p /grub2 -c bootconfigpxe.cfg -o grub2x64pxe.efi -O x86_64-efi blocklist boot chain configfile disk echo efi_gop efi_uga efiload exfat extcmd fat halt iso9660 ls minicmd normal ntfs part_gpt part_msdos progress reboot search terminal udf map font gfxterm linux linux16 vhd loopback regexp probe wimboot multiboot multiboot2 test help ext2 net tftp http efinet efi_netfs cat cpio conv

按照葱大的办法,建立个img,把unicode.pf2和zh_CN.mo(简体中文),zh_TW.mo(繁体中文)放进去。

loopback -m ramdisk (tfpt)/grub2/unicode.img
loadfont (ramdisk)/grub2/fonts/unicode.pf2
set locale_dir=(ramdisk)/grub2/locale
set lang=zh_CN
terminal_output gfxterm

menuentry "SXWIN10PEX64_17763_NET20191205中文.iso" "SXWIN10PEX64_17763_NET20191205中文.iso" {
strconv --gbk --set=file "(http)/imgs/SXWIN10PEX64_17763_NET20191205中文.iso";map --mem --type=CD ${file}
}


UEFI-grub2-pxe启动带有中文名字的PE.ISO成功。
有些批处理需要修改和整理下,放到unicode.img之后,文件有重复,过几天我放上来。

你说不用tinypxeserver,那用什么?我试过用EasyWebSvr也是乱码,必须要先strconv --gbk才行。你说的tinypxeserver不好用,主要是哪一方面不行?

另外一个问题,这个unicode.pf2大概2.3MB,能精简吗?中国的常用汉字大概6000个,grub4dos的UNIFONT.HEX只有603KB,为啥grub2的这么大?大了我看着不爽,分享起来占地方。



unicode.rar

770.23 KB, 下载次数: 4, 下载积分: 无忧币 -2


作者: 江南一根葱    时间: 2019-12-29 21:54
本帖最后由 江南一根葱 于 2019-12-29 21:59 编辑
liuzhaoyzz 发表于 2019-12-29 21:49
定制grub2x64pxe.efi的命令:(加上conv模块,因为命令strconv在这个模块)
@echo off
grub-mkimage -d x ...

dhcp不行,多台机启动会崩溃,平常试着玩倒是没事的。。
现在我用linux的dnsmasq  好像直接架个虚拟机也很稳,img可以放很多东西的,用7z压缩成gz就很小很方便了,
传统bios下,grub4dos要用到的wimboot文件也可以一起放进去,然后bios下直接map --mem成软盘之类的,就能调用了

这样文件夹清爽很多

作者: liuzhaoyzz    时间: 2019-12-30 07:33
本帖最后由 liuzhaoyzz 于 2019-12-30 07:56 编辑

我用7z压缩为gz格式,无论是标准压缩,还是极限压缩,似乎没有加载啊?
7z格式也不行。gz格式直接用,需要什么特别的解压缩模块吗?

loopback -m ramdisk (tftp)/grub2/unicode.gz
loadfont (ramdisk)/grub2/fonts/unicode.pf2
set locale_dir=(ramdisk)/grub2/locale
set lang=zh_CN
terminal_output gfxterm

另外,UEFI-grub2-pxe用map --mem方式启动pe.iso,在vmware虚拟机里面总是跑不满网速,但是在实体机测试,能够跑满网速。
UEFI-ipxe用memdisk方式启动pe.iso,在vmware虚拟机里面能够跑满网速。


作者: wintoflash    时间: 2019-12-30 08:21
liuzhaoyzz 发表于 2019-12-30 07:33
我用7z压缩为gz格式,无论是标准压缩,还是极限压缩,似乎没有加载啊?
7z格式也不行。gz格式直接用,需要 ...

支持gz需要gzio模块
xz需要xzio模块
作者: 江南一根葱    时间: 2019-12-30 08:21
liuzhaoyzz 发表于 2019-12-30 07:33
我用7z压缩为gz格式,无论是标准压缩,还是极限压缩,似乎没有加载啊?
7z格式也不行。gz格式直接用,需要 ...

是把ramdisk.img压缩成gz,以前ramdisk.mod的时候我这么弄的,按理loopback -m应该也支持
作者: liuzhaoyzz    时间: 2019-12-30 10:38
本帖最后由 liuzhaoyzz 于 2019-12-30 10:43 编辑
wintoflash 发表于 2019-12-30 08:21
支持gz需要gzio模块
xz需要xzio模块

添加了gzio模块,gz果然可以了!
添加了xzio模块,xz也行,xz比gz压缩比更高!
loopback -m支持gz的。
        



作者: wintoflash    时间: 2019-12-30 10:54
另外一个问题,这个unicode.pf2大概2.3MB,能精简吗?中国的常用汉字大概6000个,grub4dos的UNIFONT.HEX只有603KB,为啥grub2的这么大?大了我看着不爽,分享起来占地方。

unicode.pf2 各国语言字体都有,用 xz 压缩一下也就 740KB 左右。
想自己生成字体,要到 Linux 下用 grub-mkfont 命令。

作者: liuzhaoyzz    时间: 2019-12-30 11:08
本帖最后由 liuzhaoyzz 于 2019-12-30 11:10 编辑

62楼葱分享的wimboot.gz是怎么来的?怎么制作的?跟官方的不同吗?还是你修改来的?
为什么可以在UEFI启动的时候修改wim文件名字?

我没有linux环境,你能在Linux下用 grub-mkfont 命令微软雅黑制作个字体吗?我好奇微软雅黑
grub-mkfont之后有多大。

msyh.rar

986.38 KB, 下载次数: 7, 下载积分: 无忧币 -2


作者: wintoflash    时间: 2019-12-30 11:26
liuzhaoyzz 发表于 2019-12-30 11:08
62楼葱分享的wimboot.gz是怎么来的?怎么制作的?跟官方的不同吗?还是你修改来的?
为什么可以在UEFI启动 ...

msyh.pf2.tar.gz (85.24 KB, 下载次数: 5)
效果惨不忍睹




作者: wintoflash    时间: 2019-12-30 11:33
wintoflash 发表于 2019-12-30 11:26
效果惨不忍睹

配合 dosvga 字体,还行,但是还是缺字符


dosvga.pf2.tar.gz (3.5 KB, 下载次数: 4)
注意要先加载 巨硬雅黑字体,再加载 dosvga 字体,用 dosvga 字体的英文字符覆盖掉微软雅黑的 sb 全角字符
loadfont msyh
loadfont dosvga



作者: liuzhaoyzz    时间: 2019-12-30 11:39
本帖最后由 liuzhaoyzz 于 2019-12-30 16:17 编辑

看了你上面的截图,感觉到true type字体不行啊!可能是字体精简了的原因?我看还是算了,还是老老实实地用unifont.pf2好了!

不过看压缩比挺吃惊的,1.6MB的微软雅黑字体,压缩之后只有85.2KB?有问题吧?
Linux下用 grub-mkfont 命令对于原生字体文件是不是有什么要求啊?

[注意]你最好使用等宽中文字体(推荐使用文泉驿等宽正黑或者等宽微米黑),否则可能会让GRUB2的字体间距过大,十分难看。




不行啊?我这边试了你发的字体,加载不出来啊,还需要什么模块吗?我加了tar gzio了。
哦,名字搞错了,出来了,真的是惨不忍睹的字体。


测试GPT-2019-12-30-11-56-42.png (10.82 KB, 下载次数: 341)

测试GPT-2019-12-30-11-56-42.png

作者: liuzhaoyzz    时间: 2019-12-30 13:55
本帖最后由 liuzhaoyzz 于 2019-12-31 09:36 编辑

问下大家,grub2有没有类似grub4dos的内置菜单那种pxe detect的命令,作用是检测是否存在pxeserver,如果存在就尝试从pxeserver启动,如果不存在再从本地grldr启动。我想要实现的是如果grub2从pxeserver引导失败,自动加载本地的/boot/grub2/grub.cfg配置菜单。定制的办法,似乎不行。
#用于pxe启动的grub2内置菜单:
if search --no-floppy -f --set=root /boot/grub2/grub.cfg; then
configfile (tftp)/grub2/grub2pxe.cfg
fi


提示Unknown command "fi",if then fi在哪个模块里面的?


作者: wintoflash    时间: 2019-12-30 14:02
liuzhaoyzz 发表于 2019-12-30 13:55
问下大家,grub2有没有类似grub4dos的内置菜单那种pxe detect的命令,作用是检测是否存在pxeserver,如果存 ...

用 grub-mkimage -c 参数内嵌的启动脚本不支持复杂语句。
有需要,内存盘里面搞。
作者: liuzhaoyzz    时间: 2019-12-30 20:33
内置菜单这样似乎可以:
F:\boot\grub2\bootconfig.cfg
#用于pxe和本地启动的grub2内置菜单2:
#首先尝试加载tftp服务器上面的grub2pxe.cfg,如果不存在,尝试搜索本地/boot/grub2/grub.cfg配置文件并加载。
configfile (tftp)/grub2/grub2pxe.cfg
search --no-floppy -f --set=root /boot/grub2/grub.cfg
configfile /boot/grub2/grub.cfg


作者: liuzhaoyzz    时间: 2019-12-30 22:45
UEFI-grub2-PXE-wimboot启动的菜单,前几天还可以,怎么现在突然不行了,郁闷啊!用的是2.05.
menuentry "/imgs/boot.wim" "/imgs/boot.wim" {
wimboot @:bootmgfw.efi:(http)/ms/EFI/boot/bootx64.efi        @:bcd:(http)/grub2/bcd @:boot.sdi:(http)/boot.sdi        @:boot.wim:(http)/imgs/boot.wim
}
bootmgfw.efi用win7 10的都不行。咋搞的呢

GPT_test-2019-12-30-22-45-21.png (24.76 KB, 下载次数: 337)

GPT_test-2019-12-30-22-45-21.png

作者: 江南一根葱    时间: 2019-12-31 09:23
会不会boot.wim产生崩坏了。
作者: liuzhaoyzz    时间: 2019-12-31 09:30
排查了很久,似乎tinypxeserver自带的http服务器跟wintoflash修改的UEFI-grub2-wimboot模块不匹配,如果用tinypxeserver自带的http服务器启动就会出现上楼的“could not patch WIM boot.wim”的问题。如果用EasyWebSvr作为webserver,UEFI-grub2-wimboot可以正常工作,但是虚拟机显示传输速度不能跑满网速。
菜单用的是上面的菜单。
tinypxeserver自带的http服务器搭配ipxe或者grub4dos,用wimboot启动,只要文件和目录搞对了就能启动,为什么tinypxeserver自带的http服务器和grub2不匹配呢?
wintoflash可有时间看看?
        

作者: liuzhaoyzz    时间: 2019-12-31 09:32
本帖最后由 liuzhaoyzz 于 2019-12-31 09:33 编辑
江南一根葱 发表于 2019-12-31 09:23
会不会boot.wim产生崩坏了。

不是boot.wim文件本身的问题,这个boot.wim文件,我用UEFI-Ipxe-wimboot启动都可以的,而且也换了电脑试了,不是文件本身的问题。

62楼你分享的wimboot.gz是怎么来的?怎么制作的?跟官方的不同吗?还是你修改来的?
为什么可以在UEFI启动的时候修改wim文件名字?这个怎么和loopback结合起来用?请给个示例菜单。


作者: 江南一根葱    时间: 2019-12-31 09:41
本帖最后由 江南一根葱 于 2019-12-31 09:42 编辑
liuzhaoyzz 发表于 2019-12-31 09:32
不是boot.wim文件本身的问题,这个boot.wim文件,我用UEFI-Ipxe-wimboot启动都可以的,而且也换了电脑试 ...

这个wimboot.gz是grubfm包里的,里面的bcd是ipxe官网wimboot有得下载的,非自煮盐发

和ramdisk.img用法一样,是loopback不加-m         loopback wimboot /wimboot.gz
生成(wimboot)“设备”
我自己之前用的是wimboot.img,把里面的文件放进去,再压成.gz,这样就可以loopback -m了,


作者: liuzhaoyzz    时间: 2019-12-31 09:52
本帖最后由 liuzhaoyzz 于 2019-12-31 10:08 编辑
江南一根葱 发表于 2019-12-31 09:41
这个wimboot.gz是grubfm包里的,里面的bcd是ipxe官网wimboot有得下载的,非自煮盐发

和ramdisk.img用 ...

我说的不是loopback wimboot /wimboot.gz这一句啊,我说的是loopback之后,UEFI-grub2-wimboot后面的菜单怎么用?写法是什么?用的UEFI-ipxe-wimboot的那种写法吗?请给个示例。不是用我上面的菜单吧,上面的菜单是wintoflash大神修改的wimboot模块。

作者: 江南一根葱    时间: 2019-12-31 11:11
liuzhaoyzz 发表于 2019-12-31 09:52
我说的不是loopback wimboot /wimboot.gz这一句啊,我说的是loopback之后,UEFI-grub2-wimboot后面的菜单 ...

就是同个东西啊,,一样的菜单啊,

作者: liuzhaoyzz    时间: 2019-12-31 11:16
江南一根葱 发表于 2019-12-31 11:11
就是同个东西啊,,一样的菜单啊,

同一个东西,一样的菜单,那区别是为什么?wintoflash的grub2里面也有wimboot模块啊,是他修改过匹配UEFI-grub2的。
前面我们讨论的是UEFI-grub2-wimboot启动wim能否改名的问题,你说你的这个可以改名字?wintoflash的不能改名字?
作者: 江南一根葱    时间: 2019-12-31 11:42
liuzhaoyzz 发表于 2019-12-31 11:16
同一个东西,一样的菜单,那区别是为什么?wintoflash的grub2里面也有wimboot模块啊,是他修改过匹配UEFI ...
wimboot模块也需要wimboot.gz.。
没区别啊,好像我uefi下启没遇到不能改名的情况。。。。

因为我的wim都是改名的

作者: wintoflash    时间: 2019-12-31 12:07
本帖最后由 wintoflash 于 2019-12-31 12:09 编辑
  1. vfat --create
  2. vfat --add=bootmgfw.efi -m (xxx)/xxx/bootx64.efi
  3. vfat --add=bcd -m (xxx)/xxx/bcd
  4. vfat --add=boot.sdi -m (xxx)/xxx/boot.sdi
  5. vfat --add=boot.wim -m (xxx)/xxx/xxx.wim
  6. vfat --install
  7. vfat --boot
复制代码



加 -m 是复制到内存。
在 vfat --boot 之前可以执行 vfat --ls 查看虚拟盘里面的文件。
这样就比 wimboot 好理解了吧。
作者: liuzhaoyzz    时间: 2019-12-31 16:39
本帖最后由 liuzhaoyzz 于 2019-12-31 16:44 编辑

menuentry "/imgs/boot.wim" "/imgs/boot.wim" {
wimboot \
  @:bootmgfw.efi:/ms/EFI/boot/bootx64.efi   \
  @:bcd:/grub2/bcd    \
  @:boot.sdi:/boot.sdi    \
  @:boot.wim:/imgs/boot.wim
boot
}

图片显示WIM file too short (0x0 bytes),could not patch WIM file
怎么会是0字节呢?奇怪了,其他的文件都传过来了啊,为什么就只有wim文件无法传送?grub2的pxe_blksize怎么设置的?没看到官网有详细的介绍啊。
GNU GRUB Manual 2.04 http://www.gnu.org/software/grub/manual/grub/grub.html#pxe_005fblksize


下面是tinypxeserver的日志:
16:35:50 ROOT=F:\boot\
16:35:50 DHCPd 10.7.20.78:67 started...
16:35:50 TFPTd 10.7.20.78:69 started...
16:35:50 HTTPd:80 started...
16:35:50 DHCPd:DISCOVER received, MAC:00-0C-29-B9-06-91, XID:5E0B78E6
16:35:50 DHCPd:OFFER sent, IP:10.7.20.80, XID:5E0B78E6
16:35:50 DHCPd:REQUEST received, MAC:00-0C-29-B9-06-91, XID:5E0B78E6
16:35:50 DHCPd:ACK sent, IP:10.7.20.80, XID:5E0B78E6
16:35:55 HTTPd:Connect: 10.7.20.80, TID=1516
16:35:55 HTTPd:Client: 10.7.20.80 [GET] /ms/EFI/boot/bootx64.efi
16:35:55 HTTPd:Server : Returning /ms/EFI/boot/bootx64.efi
16:35:55 HTTPd:Connect: 10.7.20.80, TID=6236
16:35:55 HTTPd:Client: 10.7.20.80 [GET] /grub2/bcd
16:35:55 HTTPd:Server : Returning /grub2/bcd
16:35:55 HTTPd:DisConnect: TID=6236
16:35:55 HTTPd:Connect: 10.7.20.80, TID=6232
16:35:55 HTTPd:Client: 10.7.20.80 [GET] /boot.sdi
16:35:55 HTTPd:Server : Returning /boot.sdi
16:35:55 HTTPd:Connect: 10.7.20.80, TID=6216
16:35:55 HTTPd:Client: 10.7.20.80 [GET] /imgs/boot.wim
16:35:55 HTTPd:Server : Returning /imgs/boot.wim
16:35:55 HTTPd:DisConnect: TID=6216
16:36:17 DHCPd:DISCOVER received, MAC:00-0C-29-B9-06-91, XID:977F4CF6
16:36:17 DHCPd:OFFER sent, IP:10.7.20.79, XID:977F4CF6
16:36:21 DHCPd:REQUEST received, MAC:00-0C-29-B9-06-91, XID:977F4CF6
16:36:21 DHCPd:ACK sent, IP:10.7.20.79, XID:977F4CF6
16:36:21 TFTPd:DoReadFile:grub2x64.efi B:1468 T:0
16:36:22 TFTPd:DoReadFile:/grub2/grub2pxe.cfg B:1024 T:1518
16:36:22 TFTPd:DoReadFile:/grub2/unicode.xz B:1024 T:789164
16:36:23 TFTPd:DoReadFile:/grub2/unicode.xz B:1024 T:789164
16:36:24 DHCPd:DISCOVER received, MAC:00-0C-29-B9-06-91, XID:5E0B7908
16:36:24 DHCPd:OFFER sent, IP:10.7.20.81, XID:5E0B7908
16:36:24 DHCPd:REQUEST received, MAC:00-0C-29-B9-06-91, XID:5E0B7908
16:36:24 DHCPd:ACK sent, IP:10.7.20.81, XID:5E0B7908
16:36:29 HTTPd:Connect: 10.7.20.81, TID=6876
16:36:29 HTTPd:Client: 10.7.20.81 [GET] /ms/EFI/boot/bootx64.efi
16:36:29 HTTPd:Server : Returning /ms/EFI/boot/bootx64.efi
16:36:29 HTTPd:Connect: 10.7.20.81, TID=6820
16:36:29 HTTPd:Client: 10.7.20.81 [GET] /grub2/bcd
16:36:29 HTTPd:Server : Returning /grub2/bcd
16:36:29 HTTPd:DisConnect: TID=6820
16:36:29 HTTPd:Connect: 10.7.20.81, TID=6808
16:36:29 HTTPd:Client: 10.7.20.81 [GET] /boot.sdi
16:36:29 HTTPd:Server : Returning /boot.sdi
16:36:29 HTTPd:Connect: 10.7.20.81, TID=6812
16:36:29 HTTPd:Client: 10.7.20.81 [GET] /imgs/boot.wim
16:36:29 HTTPd:Server : Returning /imgs/boot.wim
16:36:29 HTTPd:DisConnect: TID=6812
16:37:10 HTTPd:Exception: , Connection Closed Gracefully.
16:37:10 HTTPd:DisConnect: TID=1516
16:37:10 HTTPd:Exception: , Connection Closed Gracefully.
16:37:10 HTTPd:DisConnect: TID=6232
16:37:49 DHCPd:INFORM received, MAC:44-37-E6-D2-AD-62, XID:FDB67ECF
16:39:36 DHCPd:INFORM received, MAC:44-37-E6-D2-AD-62, XID:D600497A










测试GPT-2019-12-31-16-36-41.png (7.44 KB, 下载次数: 332)

测试GPT-2019-12-31-16-36-41.png





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