无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: liuzhaoyzz
打印 上一主题 下一主题

[我不是网管]分享个ipxe、grub2-http协议启动PE的免配置网启模板

    [复制链接]
31#
 楼主| 发表于 2019-12-29 17:46:53 | 显示全部楼层
看了你的解释,为了加载中文,迫不得已绕了很多弯弯啊!
大概的意思,就是因为set lang=zh_CN不支持pxe,所以建个“本地”的内存盘,然后:
set locale_dir=(ramdisk)/grub2/locale
set lang=zh_CN
这里的山路十八弯啊!
@wintoflash能看看从代码层级做出一些改进吗?

点评

对于网络方面,我只能说,还是另请高明吧。 网络的文件系统在grub2下不好用,文件随机读取容易出问题。 内存盘多好,稳定,快速,而且支持安全写入。  详情 回复 发表于 2019-12-29 18:55
其实是tinypxe比较“烂”,我传统bios机房网启实战中从不用tinypxe。。。 ramdisk方式挺好啊,可以把一些不需要更改的脚本弄进去,通过参数来修改就行了。  详情 回复 发表于 2019-12-29 18:46
回复

使用道具 举报

32#
 楼主| 发表于 2019-12-29 19:14:16 | 显示全部楼层
本帖最后由 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,搞什么中文吗!

点评

给grub2官方bug-grub@gnu.org发一封EMAIL 杳无音讯。。。  详情 回复 发表于 2020-1-10 15:01
用官方版的测试一下有没有这个问题。这个不是字体的问题,是gettext/locale方面的问题。 这个编码问题我后面可能会看一下。 不过这个确实属于软件艹蛋,不用utf-8,那繁体中文还要big5转码,日文还要jit转码..  详情 回复 发表于 2019-12-29 19:18
回复

使用道具 举报

33#
 楼主| 发表于 2019-12-29 19:36:55 | 显示全部楼层
本帖最后由 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

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

使用道具 举报

34#
 楼主| 发表于 2019-12-29 20:04:34 | 显示全部楼层
本帖最后由 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
}


回复

使用道具 举报

35#
 楼主| 发表于 2019-12-29 21:49:08 | 显示全部楼层
本帖最后由 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

点评

dhcp不行,多台机启动会崩溃,平常试着玩倒是没事的。。 现在我用linux的dnsmasq 好像直接架个虚拟机也很稳,  详情 回复 发表于 2019-12-29 21:54
回复

使用道具 举报

36#
 楼主| 发表于 2019-12-30 07:33:38 | 显示全部楼层
本帖最后由 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虚拟机里面能够跑满网速。

点评

是把ramdisk.img压缩成gz,以前ramdisk.mod的时候我这么弄的,按理loopback -m应该也支持  详情 回复 发表于 2019-12-30 08:21
支持gz需要gzio模块 xz需要xzio模块  详情 回复 发表于 2019-12-30 08:21
回复

使用道具 举报

37#
 楼主| 发表于 2019-12-30 10:38:54 | 显示全部楼层
本帖最后由 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的。
        


回复

使用道具 举报

38#
 楼主| 发表于 2019-12-30 11:08:09 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-12-30 11:10 编辑

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

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

msyh.rar

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

点评

效果惨不忍睹 [attachimg]408267[/attachimg] [attachimg]408268[/attachimg]  详情 回复 发表于 2019-12-30 11:26
回复

使用道具 举报

39#
 楼主| 发表于 2019-12-30 11:39:06 | 显示全部楼层
本帖最后由 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, 下载次数: 245)

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

使用道具 举报

40#
 楼主| 发表于 2019-12-30 13:55:44 | 显示全部楼层
本帖最后由 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在哪个模块里面的?

点评

用 grub-mkimage -c 参数内嵌的启动脚本不支持复杂语句。 有需要,内存盘里面搞。  详情 回复 发表于 2019-12-30 14:02
回复

使用道具 举报

41#
 楼主| 发表于 2019-12-30 20:33:52 | 显示全部楼层
内置菜单这样似乎可以:
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

回复

使用道具 举报

42#
 楼主| 发表于 2019-12-30 22:45:39 | 显示全部楼层
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, 下载次数: 246)

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

使用道具 举报

43#
 楼主| 发表于 2019-12-31 09:30:13 | 显示全部楼层
排查了很久,似乎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可有时间看看?
        
回复

使用道具 举报

44#
 楼主| 发表于 2019-12-31 09:32:25 | 显示全部楼层
本帖最后由 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结合起来用?请给个示例菜单。

点评

这个wimboot.gz是grubfm包里的,里面的bcd是ipxe官网wimboot有得下载的,非自煮盐发 和ramdisk.img用法一样,是loopback不加-m loopback wimboot /wimboot.gz 生成(wimboot)“设备” 我自己之前用的是  详情 回复 发表于 2019-12-31 09:41
回复

使用道具 举报

45#
 楼主| 发表于 2019-12-31 09:52:54 | 显示全部楼层
本帖最后由 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
回复

使用道具 举报

46#
 楼主| 发表于 2019-12-31 11:16:42 | 显示全部楼层
江南一根葱 发表于 2019-12-31 11:11
就是同个东西啊,,一样的菜单啊,

同一个东西,一样的菜单,那区别是为什么?wintoflash的grub2里面也有wimboot模块啊,是他修改过匹配UEFI-grub2的。
前面我们讨论的是UEFI-grub2-wimboot启动wim能否改名的问题,你说你的这个可以改名字?wintoflash的不能改名字?

点评

没区别啊,好像我uefi下启没遇到不能改名的情况。。。 因为我的wim都是改名的  详情 回复 发表于 2019-12-31 11:42
回复

使用道具 举报

47#
 楼主| 发表于 2019-12-31 16:39:05 | 显示全部楼层
本帖最后由 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, 下载次数: 241)

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

点评

把你这一堆wimboot的命令换成上面我说的vfat命令。  详情 回复 发表于 2019-12-31 17:40
回复

使用道具 举报

48#
 楼主| 发表于 2019-12-31 18:03:52 来自手机 | 显示全部楼层
江南一根葱 发表于 2019-12-31 17:30
强迫症表示你为啥不把bcd boot.sdi,bootmgfw.efi这几个文件放一块去啊。。。

因为同一个文件,在其他的地方都有了啊。文件多了有点乱,比如bcd都有几个,内容不同,我试了有时候能启动,有时候不能。感觉不稳定。

点评

说不定和字体同个问题,加载到内存是万能方案  详情 回复 发表于 2019-12-31 18:50
回复

使用道具 举报

49#
 楼主| 发表于 2019-12-31 18:04:37 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-12-31 19:24 编辑
wintoflash 发表于 2019-12-31 17:40
把你这一堆wimboot的命令换成上面我说的vfat命令。

还能这样用吗?你发的这几个命令,我还以为是你给我方便理解用的呢,晚点试下。vfat在哪个模块里?哦,看了command.lst,似乎在wimboot里面。
回复

使用道具 举报

50#
 楼主| 发表于 2019-12-31 19:26:11 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-12-31 19:27 编辑
江南一根葱 发表于 2019-12-31 18:50
说不定和字体同个问题,加载到内存是万能方案

1、与set lang=zh_CN没有关系,因为我已经把字体和zh_CN.mo放到内存盘里面去了。76楼:
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
2、我去掉那几条中文语句,结果一样,证明和他们关系不大。
可能和http下面文件名字的编码用的是gbk编码有一定的关系。


点评

我是说把这些bcd之类的文件也弄到内存盘去,  详情 回复 发表于 2019-12-31 19:34
回复

使用道具 举报

51#
 楼主| 发表于 2019-12-31 19:40:50 | 显示全部楼层
wintoflash 发表于 2019-12-31 12:07
加 -m 是复制到内存。
在 vfat --boot 之前可以执行 vfat --ls 查看虚拟盘里面的文件。
这样就比 w ...

menuentry "/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim-vfat" "/imgs/SXWIN10PEX64_17763_NET20191205/boot.wim" {
vfat --create
vfat --add=bootmgfw.efi -m /pxe/bootmgfw.efi
vfat --add=bcd -m /grub2/bcd
vfat --add=boot.sdi -m /boot.sdi
vfat --add=boot.wim -m /imgs/SXWIN10PEX64_17763_NET20191205/boot.wim
vfat --install
vfat --boot
}
结果卡在不能加载bootmgfw.efi,这个文件我用win7 10的都试了,不行,结果一样。


GPT_test-2019-12-31-19-39-26.png (12.11 KB, 下载次数: 230)

GPT_test-2019-12-31-19-39-26.png
回复

使用道具 举报

52#
 楼主| 发表于 2019-12-31 19:41:46 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-12-31 19:44 编辑
江南一根葱 发表于 2019-12-31 19:34
我是说把这些bcd之类的文件也弄到内存盘去,

哦,把这些也放进内存盘?没想过啊,好主意啊!不过放进去有好的地方,也有不好的地方。因为其他的方案里面也会用到他们。比如本地启动文件需要补全的时候需要,还有ipxe也需要boot.sdi,bcd,bootmgfw.efi这些,grub4dos通过wimboot启动也需要。

点评

grub4dos我也用这个方式啊,map --mem,然后本地调用,不是很爽。 调用一次,一路受益。。  详情 回复 发表于 2019-12-31 19:44
回复

使用道具 举报

53#
 楼主| 发表于 2019-12-31 19:46:32 | 显示全部楼层
江南一根葱 发表于 2019-12-31 19:44
grub4dos我也用这个方式啊,map --mem,然后本地调用,不是很爽。

调用一次,一路受益。。

我这个工具包,还有个作用是可以用来补齐或者说修复缺失、不配套的本地启动文件,可以在空白硬盘建立引导文件系列并部署PE,所以还是解开调用的好。

点评

那更好办啊,可以写个批处理,作用是解开gz包,然后修复。。缺失。。。(好像接下去像七点钟方向陈旧性**)  详情 回复 发表于 2019-12-31 19:49
回复

使用道具 举报

54#
 楼主| 发表于 2020-1-2 09:32:13 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-1-2 09:36 编辑
2012kwy 发表于 2020-1-1 13:14
楼主能不能抽空用这台原来可以后来有问题的机器测一下W大grubfmx64.efi的V6.02和V6.10版,用这两个版本分别 ...

刚才试了下,用grubfm启动wim格式的PE没问题。如果用我一楼的包,需要修改下grubfm.cfg:89行

        if regexp '^[wW][iI][mM]$' "${name_ext}"; then
                wimboot @:bootmgfw.efi:/boot/ms/EFI/boot/bootx64.efi \
                                @:bcd:/boot/grub2/bcd \
                                @:boot.sdi:/boot/boot.sdi \
                                @:boot.wim:"${grub_file}"


要确保/boot/grub2/bcd文件存在。(我原来放在/boot/grub2/wimboot/bcd)

wimboot有很多细节,有一个细节做得不到位就不能启动,我不喜欢wimboot,我喜欢ISO格式的PE启动,稳定性较好。


grubfm我似乎是提取自wintoflash大神里面的,也可能是hilsonma包里的。记不清了。大家都是基于wintoflash大神的grubfm修改的。

点评

其实wimboot启wim格式的pe的优势就是可以注入文件 可以把任意pe的winpeshl.ini外置,启动过程中不解包修改任意pe的桌面, 如果嫌太慢,还可以用ntboot或bootmgfw.efi原生启动, iso的pe我不用好多年了  详情 回复 发表于 2020-1-2 09:50
回复

使用道具 举报

55#
 楼主| 发表于 2020-1-2 11:08:25 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-18 15:24 编辑
星体投射 发表于 2020-1-2 09:57
TinyPXE最新版支持php动态加载菜单,批处理都不需要用

不用批处理,不同的方案,启动文件不一定相同,多一个方案多一个选择,不是什么坏处。比如说有的需要undionly.kpxe,有的需要ipxe.pxe,有时候一个不行,启动不了,必须要换另一个,ipxe.efi不行就换snponly.efi,虽然BIOS/UEFI可以自动适配,但是批处理的好处是可以一键启动pxeserver,可以解决http端口冲突问题、不同方案ini文件设置问题(比如ipxe/grub2启动模式下的tinypxeserver.ini设置),遍历wim/iso文件加入自动化菜单编写的问题,对于没有接触过pxe启动的人来说,大大简化了其流程,只需要双击个批处理即可,基本不需要了解很多pxe启动的细节知识;对于熟手,用起来也很方便,这不是一个php动态加载菜单能够搞定的事情。

即使BIOS下run模块,或者UEFI下的grubfm模块,也还是要遍历iso,层层选择菜单(要熟悉作者菜单的用途和用法),遍历wim/iso文件加入自动化菜单对于pxe启动还是挺好的,因为imgs下面就那几个固定的iso,随时更换也很方便,相对于run或者grubfm,我更喜欢自动化编写原始菜单的模式,因为可读性和易维护性似乎更好。run模块已经不更新了,不能适配最新版的grub4dos了,采用最新版的grub4dos很有必要,因为新版grub4dos在不断地修复bug并增强功能,而run模块因为无人维护,可以抛弃。

点评

这个run好像比较新 http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=418198&pid=3941413&fromuid=487838  详情 回复 发表于 2020-1-2 11:58
回复

使用道具 举报

56#
 楼主| 发表于 2020-1-2 12:24:46 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-1-2 12:26 编辑
wintoflash 发表于 2020-1-2 11:58
这个run好像比较新
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=418198&pid=39414 ...


        run模块,sratlf好像2014年以后就没有更新了,不单单是里面的wimboot不是最新版,run里面的map --map pe.iso本身就不能很好地匹配最新版的grub4dos了。  
回复

使用道具 举报

57#
 楼主| 发表于 2020-1-2 17:05:15 | 显示全部楼层
江南一根葱 发表于 2020-1-2 13:08
siso里的run模块是可以改的,貌似只是用了run的脚本

我知道5大的siso用了sratlf的run模块,我不知道5大对于run模块有没有改进,我使用过程中NVME SSD遇到run模块较多问题。我基本不推荐使用run模块。
http://wuyou.net/forum.php?mod=r ... 8349&fromuid=298214
回复

使用道具 举报

58#
 楼主| 发表于 2020-1-5 11:02:19 来自手机 | 显示全部楼层
没玩过WDS,也没有玩过server版本
回复

使用道具 举报

59#
 楼主| 发表于 2020-1-6 16:54:05 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-1-7 08:21 编辑

UEFI-grub2-pxe-wimboot启动pe.wim过程中,发现存在以下问题:
1.似乎与wimboot搭配的bootmgfw.efi只能用win7的,不能用win10的,感觉win7的bootmgfw.efi兼容性较差,要想启动WIN10PE.WIM感觉要靠人品;可是ipxe-wimboot搭配win10的bootmgfw.efi没问题,反而用win7的bootmgfw.efi不能pxe启动pe.wim。从兼容性角度来说,一般地高版本的bootmgfw.efi能够启动低版本的WIN7 8 10,是不是应该想办法适配高版本的bootmgfw.efi?
2.bcd如果用MSDN_WIN.ISO里面的bcd,grub2的wimboot模块似乎不能很好地patch winload.exe和winload.efi,而ipxe-wimboot模块可以自动修改匹配。
3.pe.wim放在webserver服务器上面,webserver似乎不能用tinypxeserver搭建,会导致pe.wim传输失败,如果用EasyWebSvr搭建webserver就可以。而ipxe-wimboot搭配tinypxeserver或者EasyWebSvr作为webserver可以正常启动pe.wim。
4.似乎pe.wim不支持长目录,不太稳定,有时候可以,有时候又不行,要看人品。
5.UEFI-grub2-pxe-wimboot传输pe.wim在vmware里面似乎不能跑满网速(实体机上面接近满速,有时候又显示30TB/S的速度,似乎异常),ipxe-wimboot在vmware里面似乎可以跑满网速(实体机上面也能够满速)。


以上问题,我不知道是不是因为我对于UEFI-grub2-pxe-wimboot的一些参数不熟悉导致的。所以我更喜欢用pe.iso启动,没有那么多破事儿,但是为了保证方案的完整性,所以也尝试着对
UEFI-grub2-pxe-wimboot启动pe.wim做一些探讨。
这个帖子主要是涉及到grub2-http-pxe网启,为了保证帖子的连续性,所以我就在这里发帖了,wintoflash大神有空的时候请看看您移植的wimboot.mod模块能否优化改进下。








回复

使用道具 举报

60#
 楼主| 发表于 2020-1-6 20:22:54 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-1-6 20:36 编辑
江南一根葱 发表于 2020-1-6 19:59
反正实际应用中是绝不会用tinypxeserver来搞的,那玩意儿,仅只是测试用途。。。

tinypxeserver挺好用的啊!功能要比tftpd32和hanewindhcp强大。我测试了支持多播。


【Serva32】集成FTP,HTTP,DHCP,TFTP,-网络启动区
http://wuyou.net/forum.php?mod=viewthread&tid=344866
Serva32怎么样?有没有和谐版?



点评

等你一次性要网络启动50台电脑时就知道不怎么好用了  详情 回复 发表于 2020-1-6 21:07
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-29 14:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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