无忧启动论坛

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

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

    [复制链接]
1#
发表于 2019-12-25 23:00:41 | 显示全部楼层
网启取文件是gbk的,所以菜单显示要utf8,取文件要转码gbk,

点评

我试了cfg无论用ansi或者utf-8带BOM,不带BOM的似乎都不行,不是文件格式的问题,文件格式我用VC改写的有个命令行小工具,随意转换,不应该是文件格式这个问题。  详情 回复 发表于 2019-12-25 23:06
回复

使用道具 举报

2#
发表于 2019-12-26 11:24:09 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-25 23:06
我试了cfg无论用ansi或者utf-8带BOM,不带BOM的似乎都不行,不是文件格式的问题,文件格式我用VC改写的有 ...

grub2菜单文件是要utf-8的,但路径里的中文需要转换成gbk,然后网启才能正确地读到文件。

点评

我知道grub2的菜单要用utf-8无BOM的,我也试过了,所有的路径里面,包括文件名字都没有中文,出错在loadfont这一句。  详情 回复 发表于 2019-12-26 11:26
回复

使用道具 举报

3#
发表于 2019-12-26 11:35:21 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-26 11:26
我知道grub2的菜单要用utf-8无BOM的,我也试过了,所有的路径里面,包括文件名字F:\boot\grub2\grub2pxe. ...

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

这样应该就可以支持启动中文文件名的iso了。
回复

使用道具 举报

4#
发表于 2019-12-26 12:29:32 | 显示全部楼层
如果不是用的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菜单了。

回复

使用道具 举报

5#
发表于 2019-12-26 20:38:49 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-26 14:53
不应该是grub2pxe.cfg菜单的问题,菜单是utf-8无BOM的,已经加载了,没有提示出错,怎么会是菜单的问题呢? ...

貌似你说的是菜单显示中文?那就和启非中文iso是两码事
pxe加载的字体和本地启是不一样的,貌似pxe下是zh_CN.gmo
你用tinypxe启,看下加载日志就知道了

点评

我把问题详细描述下,menuentry里面有3处都是用的同一个带有中文pe.iso,"TonPE_V3.3中文.iso" 这是批处理自动遍历添加生成的 1、F:\boot\grub2\grub2pxe.cfg如果是这样子,全部注释掉字体相关文件,那么菜单会出现  详情 回复 发表于 2019-12-26 21:20
回复

使用道具 举报

6#
发表于 2019-12-26 21:52:04 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-26 21:20
我把问题详细描述下,menuentry里面有3处都是用的同一个带有中文pe.iso,"TonPE_V3.3中文.iso" 这是批处 ...

我下了你那个,发现启不来,(http)失效,哈哈,我是越活越回去了。

点评

你用批处理加载PE.ISO到菜单没有?另外你是ISO还是WIM?路径不能随便改,grub2编译的时候就决定了的。http失效,是不是next-server地址不对?你不是用的批处理自动添加PE到菜单?  详情 回复 发表于 2019-12-26 22:03
回复

使用道具 举报

7#
发表于 2019-12-26 22:29:27 | 显示全部楼层
终于启成功了,就是gbk的问题。。

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

222222222222.png

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

222222222222.png
回复

使用道具 举报

8#
发表于 2019-12-26 22:31:38 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-26 22:03
你用批处理加载PE.ISO到菜单没有?另外你是ISO还是WIM?路径不能随便改,grub2定制的时候就决定了的。h ...

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

回复

使用道具 举报

9#
发表于 2019-12-26 23:03:36 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-26 23:00
你说的中文名字gbk,具体应该怎么解决,我还没搞懂。

菜单文件依然用utf8
执行map mem ,也就是选择菜单执行启动时,要先把路径“中文.iso”这段字符串转换成gbk的。
我之前是直接用的grubfm,用lua转的
回复

使用道具 举报

10#
发表于 2019-12-26 23:06:26 | 显示全部楼层
我举个栗子吧
menuentry "TonPE_V3.3中文.iso" "TonPE_V3.3中文.iso" {
map --mem --type=CD (http)/imgs/TonPE_V3.3^ω^h←_←一堆中文gbk乱码.iso
}


这样好理解吧

  
回复

使用道具 举报

11#
发表于 2019-12-27 09:53:37 | 显示全部楼层
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}
}


回复

使用道具 举报

12#
发表于 2019-12-27 10:13:16 | 显示全部楼层
楼主批处理比较牛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脚本我还不会弄。。
回复

使用道具 举报

13#
发表于 2019-12-27 10:27:02 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-27 10:22
本来就是针对iso wim 写了不同的启动菜单啊!你试下不就知道了?都写到同一个cfg里面了的。

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

使用道具 举报

14#
发表于 2019-12-27 11:40:41 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-27 11:23
grub2启动中文iso,晚点我抽空试下。请问下strconv在哪个模块里面?
win10下获取ip地址,没问题啊?WIN7 W ...

模块就叫这个的
win10 1903的
回复

使用道具 举报

15#
发表于 2019-12-27 12:09:53 | 显示全部楼层
ip显示是“默认"

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

ip.png
回复

使用道具 举报

16#
发表于 2019-12-27 13:56:47 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-12-27 14:19 编辑


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

使用道具 举报

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

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

使用道具 举报

18#
发表于 2019-12-28 22:00:55 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-27 22:46
一楼的已更新,获取ip地址应该没问题了。
但是grub2-pxe启动带有汉字的pe.iso似乎还是不行,只支持全部是 ...

可以了,两台机上试了下确实获取正确了,
怎么不用获取管理员权限的那段批处理,一键ramos那个的,我加上了貌似是会报毒,不过
反正bootice也要报毒的,索性让它报毒报个痛快
回复

使用道具 举报

19#
发表于 2019-12-29 11:56:38 | 显示全部楼层
很久以前倒也喜欢本地部署pe,我部署机房也是先把几十台客户端网络ghost成一个pe,这样即使还原c盘失败也可以直接快速进pe重来,
后来更新太快,就么有折腾了
回复

使用道具 举报

20#
发表于 2019-12-29 12:26:21 | 显示全部楼层
本帖最后由 江南一根葱 于 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的菜单
回复

使用道具 举报

21#
发表于 2019-12-29 13:46:59 | 显示全部楼层
本帖最后由 江南一根葱 于 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下用过来这个最快,一般人我不告诉他)

回复

使用道具 举报

22#
发表于 2019-12-29 15:47:41 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-29 13:59
我现在在外面,手机回复,晚点回去看下。bootmghfw.efi用作网启,菜单不好搞,bcd里面指向的wim文件名字, ...

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

使用道具 举报

23#
发表于 2019-12-29 15:49:14 | 显示全部楼层
hkkitlee 发表于 2019-12-29 14:27
查看過grub2手冊,粗略估計:

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

https://github.com/a1ive/grub2-filemanager
这个grubfm就是所有东西编译成单一文件的
还能塞整个pe进去做成单一文件,
回复

使用道具 举报

24#
发表于 2019-12-29 16:03:22 | 显示全部楼层
你启的速度怎么这么快,我两台win10用vmware都是1M/s。。。菜单不用手动选择的,是定死的
回复

使用道具 举报

25#
发表于 2019-12-29 16:31:34 | 显示全部楼层
本帖最后由 江南一根葱 于 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, 下载次数: 14)
回复

使用道具 举报

26#
发表于 2019-12-29 16:35:38 | 显示全部楼层
本帖最后由 江南一根葱 于 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

点评

内置菜单是什么样子的?我想要搞清楚出错的原因,只有看相关菜单调用才知道。 UEFI-grub2-pxe你倒底调用了set lang=zh_CN没有?  详情 回复 发表于 2019-12-29 16:49
回复

使用道具 举报

27#
发表于 2019-12-29 16:48:27 | 显示全部楼层
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来生成网启菜单了。
回复

使用道具 举报

28#
发表于 2019-12-29 16:56:18 | 显示全部楼层
本帖最后由 江南一根葱 于 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,更变态,不过挺好用
回复

使用道具 举报

29#
发表于 2019-12-29 18:46:22 | 显示全部楼层
liuzhaoyzz 发表于 2019-12-29 17:46
看了你的解释,为了加载中文,迫不得已绕了很多弯弯啊!
大概的意思,就是因为set lang=zh_CN不支持pxe, ...

其实是tinypxe比较“烂”,我传统bios机房网启实战中从不用tinypxe。。。
ramdisk方式挺好啊,可以把一些不需要常更改的脚本弄进去,通过参数来修改就行了。
回复

使用道具 举报

30#
发表于 2019-12-29 21:00:18 | 显示全部楼层
不用tinypxe呢,
传统bios下好像我散装能启的,
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-4 07:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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