无忧启动论坛

标题: 希望grub4dos在pxe启动时能够支持http协议 [打印本页]

作者: liuzhaoyzz    时间: 2019-12-19 16:31
标题: 希望grub4dos在pxe启动时能够支持http协议
本帖最后由 liuzhaoyzz 于 2019-12-21 10:13 编辑

grub4dos在pxe启动时目前是不是只支持tftp协议,不支持http协议?希望以后(一年、两年、或者更久,等chenall、2011yaya2007777有时间有兴趣)能够支持,tftp传输太慢了,不论百兆网还是千兆网,只有1-3MB/s左右,http或者ftp能够充分利用网速,能够达到12MB/s~100MB/s,现有的pxe高速启动PE.ISO方案,无论是lpxelinux.0,ipxe,对于整体仿真PE.ISO启动都是用的memdisk,感觉没有grub4dos的map --mem强大稳定,比如说memdisk似乎只能仿真一个磁盘并启动,不支持仿真多个磁盘,如果grub4dos支持http协议,BIOS下的pxe启动,也不用学习那么多启动软件了。


作者: 江南一根葱    时间: 2019-12-19 17:18
你用ipxe来启g4d就支持的,还支持https
作者: liuzhaoyzz    时间: 2019-12-19 17:26
本帖最后由 liuzhaoyzz 于 2019-12-19 18:01 编辑
江南一根葱 发表于 2019-12-19 17:18
你用ipxe来启g4d就支持的,还支持https

那何必用ipxe和g4d之间来回调用倒腾呢,不如直接用ipxe+memdisk+http+pe.iso方案好了。
作者: 江南一根葱    时间: 2019-12-19 17:31
liuzhaoyzz 发表于 2019-12-19 17:26
那何必用ipxe和g4d之间来回调用倒腾呢,不如直接用ipxe+memdisk+http+pe.iso方案好了。

问题是你ipxe能启ramos?
ipxe启g4d才能map --mem启ramos啊。。。ipxe也不支持zh.CN

作者: liuzhaoyzz    时间: 2019-12-19 17:53
本帖最后由 liuzhaoyzz 于 2019-12-19 18:02 编辑
江南一根葱 发表于 2019-12-19 17:31
问题是你ipxe能启ramos?
ipxe启g4d才能map --mem启ramos啊。。。ipxe也不支持zh.CN

你说的ramos指的是什么?admin登录的PE吗?还是真正的操作系统?
ipxe启动PE.ISO没问题啊,BIOS下用ipxe+memdisk+http+pe.iso方案即可。不需要依赖grub4dos的任何组件。
lpxelinux.0+memdisk+http+pe.iso也可以,lpxelinux.0支持中文菜单。不需要依赖grub4dos的任何组件。

pxe启动真正的操作系统,vhd这种,需要firadisk/winvblock/svbus这样子的驱动支持才行,这一类驱动似乎只适用于g4d,不适用于memdisk吧。



作者: wintoflash    时间: 2019-12-19 18:30
扯点题外的, map --mem和memdisk应该没什么区别吧.
作者: 江南一根葱    时间: 2019-12-19 19:17
wintoflash 发表于 2019-12-19 18:30
扯点题外的, map --mem和memdisk应该没什么区别吧.

有的吧,win下的蛆动不一样
作者: 江南一根葱    时间: 2019-12-19 19:20
本帖最后由 江南一根葱 于 2019-12-19 19:42 编辑

近几年在机房用过来,ipxe+g4d算是比较完美,也方便修改菜单                                                                    
而且g4d环境再转ipxe,也会有意想不到的加载提速(千兆环境)。。。
不过,如果要讲兼容性,只能是g4d的tftp兼容最好。。


作者: liuzhaoyzz    时间: 2019-12-19 21:20
本帖最后由 liuzhaoyzz 于 2019-12-19 21:25 编辑
wintoflash 发表于 2019-12-19 18:30
扯点题外的, map --mem和memdisk应该没什么区别吧.

g4d的map --mem感觉要比memdisk还是强大些,兼容性应该也好些,不点、chenall、yaya做了不少改进,国内国外用的人多,提出的问题,经过十几年的问题修正和技术积累,map --mem的bug很少了,代码已经锤炼得很健壮,memdisk似乎是winvblock的作者Shao Miller的作品,他同时也参与了syslinux的开发,memdisk似乎不怎么更新了,比如memdisk只能仿真一个镜像到内存,map --mem就可以仿真多个。
作者: 不点    时间: 2019-12-19 22:36
PXE 是主板(或者说是网卡,不用细究)支持的,是在启动阶段就支持的,属于 BIOS 层面的东西。

但是,http 就不同了,它是属于 OS 级别的东西,即,先有 OS,然后才有 http。我这么说,可能不太严谨。不过没关系,你懂我的大致意思就行。在 BIOS (通电自检)阶段,主板不提供 http 协议的支持,只提供 pxe 之类的协议支持。所以我说,让 grub4dos 去支持 http,那工作量大了去了,不是现有的几个开发者能完成的任务。要是能完成的话,chenall 早把它搞定了。

我估计没人愿意做这个工作。BIOS 正在淘汰,谁愿意再去费那么大的劲、轰轰烈烈地像干革命似的“大动干戈”?小概率事件,不能抱什么希望。

作者: liuzhaoyzz    时间: 2019-12-20 07:50
本帖最后由 liuzhaoyzz 于 2019-12-20 16:39 编辑

一分为二地看问题,pxe+http启动有服务器端和客户端,服务器端用的是webserver+tineypxeserver这样的支持http协议的传输软件,webserver的http协议的确是跑在OS之上;客户端用的是ipxe/lpxelinux.0这样的引导器,引导器只是OS loader,或者说是个ROM环境,不能算作是OS,只需要能够对服务器发起post和get交互就行了,就类似于bootmgr之于windows的关系,OS loader只是OS很小的一部分,毕竟已经有ipxe/lpxelinux.0支持http协议成功的先例摆在那里,他们也就200~300多KB,跟grldr差不多,不能算作是OS,代码也是开源的,不知道能不能借鉴。

不点大,grub4dos是您的心血之作啊,让他完善功能不是更好吗,您怎么能泼冷水说BIOS即将被淘汰这样的话呢,至少10~20年BIOS/UEFI都会共存吧,一个作品写出来了才能知道他倒底有没有用处吧,grub4dos由于基于中断架构的原因,已经不可能转向UEFI了,或者说成本和难度太大,那就继续增加功能,做好BIOS的引导就好了。


chenall的ipxegrldr似乎是把ipxe和grldr捆绑在一起,似乎内核还是用的ipxe,两个环境切换会不会带来问题?我的意思是幻想着有一天,grub4dos能够借鉴吸收ipxe的部分代码,用于pxe的时候,菜单能够这样子:
title WINPE (WePE_64_V2.0.iso)
find --ignore-floppies --ignore-cd --set-root /boot/imgs/WePE_64_V2.0.iso
map --mem --top http://192.168.1.1/boot/imgs/WePE_64_V2.0.iso (0xff)
map --e820cycles=-1
map --hook
chainloader (0xff)


grub4dos有firadisk/winvblock/svbus这一类驱动的加持,对于软件外置这种PE,不会出现找不到外置程序的问题,memdisk则做不到,memdisk作为syslinux的组件,早已不更新,syslinux的最后一个正式版6.03是2014年8月6日发布,测试版6.04是2016年3月4日发布的,一直停留在测试版,所以memdisk/syslinux处于无人维护状态,没什么指望了,只有ipxe还在活跃开发期,但是ipxe启动PE.ISO也是要依赖于memdisk,memdisk有bug也无人维护,我发现memdisk有时候加载PE就失败,这是个问题

纯属个人臆想,不对之处请见谅。   







作者: chenall    时间: 2019-12-20 09:01
本帖最后由 chenall 于 2019-12-20 09:05 编辑

我觉得

目前已经有了很好用的轮子 (ipxe)了,如果不能造出更完美的轮子还是继续使用它.

目前ipxe提供的环境就是类似于pxe启动的环境,

只是PXE的环境只能访问tftp,而ipxe的环境可以访问各种ipxe支持的协议.

使用ipxe+grldr就可以实现你想要的效果.

楼上的菜单使用ipxe+grldr启动就可以直接使用.


注: grub4dos并不是直接使用了ipxe的内核,只是调用了它提供的接口方法(类似于pxe启动时BIOS提供的访问tftp的接口). 正常情况下不会有什么负作用.

另外ipxegrldr其实也就是ipxe内置了grldr由ipxe直接启动grldr.

也可以分开, 先启动ipxe再根据需要选择启动grub4dos效果是一样的.



作者: liuzhaoyzz    时间: 2019-12-20 09:16
本帖最后由 liuzhaoyzz 于 2019-12-20 09:18 编辑
chenall 发表于 2019-12-20 09:01
我觉得

目前已经有了很好用的轮子 (ipxe)了,如果不能造出更完美的轮子还是继续使用它.
另外ipxegrldr其实也就是ipxe内置了grldr由ipxe直接启动grldr.

也可以分开, 先启动ipxe再根据需要选择启动grub4dos效果是一样的.

请教下chenall大,ipxe启动转grldr可以吗?我只见到ipxe启动转grub.exe的菜单写法。我说的是PE.ISO,不是wimboot+PE.WIM。
:WePE_64_V2.0.iso
  initrd http://${next-server}/imgs/WePE_64_V2.0.iso
  #chain http://${next-server}/pxelinux.cfg/memdisk raw iso
  chain http://${next-server}/grub/grub.exe  --config-file="map (rd)+1 (0xff);map --hook;chainloader (0xff)"

作者: 不点    时间: 2019-12-20 11:27
我印象中,grub4dos 里面的 pxe 代码,是 bean 独立完成的。grub legacy 里面,好像没有这样的功能(究竟有没有,我并不能百分百确定;我是网络外行,不怎么关心这方面的情况,因此也不太了解)。

幸亏我也能看懂其中的一部分代码,而且,我还提供了一点点改进:就是,自动探测 PXE BIOS 所使用的扇区大小,这个探测代码,是我添加的。这个自动探测,解决了我在某台机器上遇到的 pxe 启动失败问题。在那台失败的机器上,pxelinux 也一样是失败的,无法启动。添加了自动探测扇区大小以后,grub4dos 就可以在这样变态的 pxe BIOS 之下启动了。我对此很自豪(我在网络方面是外行,一个敲边鼓的;能有一点点成绩,就喜不自禁,这是可以理解的吧)。可以推测,pxelinux 之所以无法工作,也正是因为缺乏自动探测扇区大小的功能,无法应对变态 BIOS 的实际情况。

chenall 接手以后,又在 pxe 等网络方面做了大量的工作。网络方面就靠 chenall 了。但 chenall 也没多少时间来全力维护 grub4dos。我理解,十分理解。

liuzhaoyzz 很有热情,这个是看得出来的。但似乎缺少一点哲学方面的 “冷静”。事物的发展是有方向的。得看准方向,权衡利弊,最后才作出符合实际的决定。世上的万事万物是互相联系、互相影响的。各种事物、各种情况,都在互相影响。我们不可以完全不考虑外界的影响。在奋力埋头拉车的同时,也要记得时不时地抬头看路。

我现在完全脱离 grub4dos 这个项目。但我还关心这个项目的开发维护者们。我主要考虑的焦点,是避免让他们去做过多的工作,比如浪费了时间、金钱或精力,以及弄坏了身体,等等。

作者: liuzhaoyzz    时间: 2019-12-20 11:53
本帖最后由 liuzhaoyzz 于 2019-12-20 12:05 编辑
不点 发表于 2019-12-20 11:27
我印象中,grub4dos 里面的 pxe 代码,是 bean 独立完成的。grub legacy 里面,好像没有这样的功能(究竟有 ...

确实如您所说的这样子。grub legacy是没有pxe功能的,bean、不点、chenall在pxe方面都投入过不少精力。其实我理解不点站在开发者角度看问题,想减轻开发者的负担和压力,以及要根据BIOS/UEFI大势所趋,我完全理解,但目前看来,grub4dos似乎没有什么更好的发展方向,仅仅是完善bug,增强稳定性,所以我提议(不太成熟)如果开发者(包括chenall、yaya以及后来可能的参与者)能够增强pxe功能更好了,但是那也是在开发者们有时间、兴趣、精力等方面的先决条件下,如果ipxe/lpxelinux.0的代码能够借鉴一部分最好了,如果难度较大,还是算了。

sysoft时空论坛已经挂了,谨以此贴留念吧:
http://bbs.znpc.net/forum.php?mo ... 1&highlight=%2Bbean
bean发表于 2007-4-18 03:34
GRUB4DOS PXE网络启动版 (v3.2)

2该版本可用于PXE无盘启动。进入grub后,可以用设备(pd)来访问服务器上的文件。

v3.2更新:
* 在启动系统前卸载PXE的运行环境。

v3.1更新:
* 增加内置命令pxe,可用于设置pxe的参数。

v3更新:
* 优化PXE代码,文件下载速度大大增加
* 显示进度条。每下载1M的内容,在屏幕上显示一个"."。
* 修正使用map函数映射网络上的虚拟影像时出现的问题(主要对应于etherboot的PXE ROM,网卡上内置的ROM一般没有问题)

v2更新:
* 完全重写pxe部分的代码。
* pxe和网络部分代码相互独立,pxe成为一个文件系统模块。
* 不再需要pxegrub,grldr可以直接用于无盘启动。
* 采用类似于pxelinux结构的配置文件。

注意1:v2中,使用设备(pd)来访问pxe服务器上文件,它不同于netboot生成的网络设备(nd)。netboot支持需要使用特殊的编译指令,而pxe支持是缺省的。

注意2:v2中,启动文件所在的目录成为文件访问的根目录。例如,启动文件是 tftp/grldr,那么所有的文件名都是相对于tftp目录的,比如说,(pd)/aa.img在服务器上相应的文件是 tftp/aa.img。

注意3:v2中,配置文件采用类似于pxelinux的结构,也就是,程序在开始前将会顺序搜索以下的文件:
        [/mybootdir]/menu.lst/01-88-99-AA-BB-CC-DD
        [/mybootdir]/menu.lst/C000025B
        [/mybootdir]/menu.lst/C000025
        [/mybootdir]/menu.lst/C00002
        [/mybootdir]/menu.lst/C0000
        [/mybootdir]/menu.lst/C000
        [/mybootdir]/menu.lst/C00
        [/mybootdir]/menu.lst/C0
        [/mybootdir]/menu.lst/C
        [/mybootdir]/menu.lst/default

(88:99:AA:BB:CCD是网卡MAC,C000025B是IP地址192.0.2.91)

如果以上的文件都不存在,那么grub会使用内置菜单。

注意4:从v3.1开始,增加内置命令pxe,用于在menu.lst中设置pxe的参数。

pxe
没有任何参数时,显示当前的blksize和basedir设置

pxe blksize N
设置包的大小。N最大值是1432,最小值是512,缺省值是1432。某些很旧的tftp服务器可能不支持大于512的包,这时需要手动把包的大小设置为512。

pxe basedir path
设置tftp的基础目录。比如说,使用命令

pxe basedir /tftp

后,(pd)设备中的文件名都是相对于/tftp目录的:(pd)/aa.img相对于服务器上的 /tftp/aa.img文件。

基础目录的初始值是启动文件所在的目录。比如说,启动的文件是/tftp/grldr,那么basedir的初始值就是/tftp/

注意5:从v3.2开始,增加两个pxe命令,用于管理PXE的运行环境

pxe keep
不卸载PXE的运行环境

pxe unload
立刻卸载PXE的运行环境

程序缺省的处理方式是在boot的时候卸载PXE的运行环境。如果你需要保留PXE(例如需要通过startrom引导PE),可以使用pxe keep。如果需要在boot命令之前卸载PXE,则使用pxe unload。

使用介绍:
1、把grldr文件拷贝到服务器。
2、建立目录 /menu.lst/,在里面存放菜单文件。
3、设置dhcp和tftp服务器,把grldr作为启动文件。
4、启动客户端,PXE ROM会自动从服务器上下载grub并启动。

在Windows平台下,可以使用tftpd32,它同时提供了dhcp和tftp两种服务。网址:

http://tftpd32.jounin.net/

示范的menu.lst:

title Create ramdisk using map
map --mem (pd)/floppy.img (fd0)
map --hook
rootnoverify (fd0)
chainloader (fd0)+1

title Create ramdisk using memdisk
kernel (pd)/memdisk
initrd (pd)/floppy.img

[ 本帖最后由 bean 于 2007-5-26 17:33 编辑 ]

        

作者: liuzhaoyzz    时间: 2019-12-20 12:13
      http://wuyou.net/forum.php?mod=viewthread&tid=342846  看了下,2014.10月份就有网友510819776提出这个需求了。     
作者: wintoflash    时间: 2019-12-20 12:35
liuzhaoyzz 发表于 2019-12-20 11:53
确实如您所说的这样子。grub legacy是没有pxe功能的,bean、不点、chenall在pxe方面都投入过不少精力。其 ...

还有没有其他时空论坛帖子的备份?
如果有的话能不能全部打包上传到某个地方供大家查阅参考?谢谢。



作者: liuzhaoyzz    时间: 2019-12-20 12:52
本帖最后由 liuzhaoyzz 于 2019-12-20 12:58 编辑

当时刚开始接触grub4dos,从sysoft时空论坛到无忧,grub4dos的知识点太多,看了前面忘了后面的,于是我做了一部分笔记,涉及到代码部分的很少,当时bean的帖子我大部分复制了。分享出来,不知道你想要哪些? https://www.cnblogs.com/liuzhaoy ... /01/04/2843592.html   
wintoflash大神如果有兴趣加入grub4dos开发,那就好了!
   

作者: chenall    时间: 2019-12-20 13:05
本帖最后由 chenall 于 2019-12-20 13:07 编辑
liuzhaoyzz 发表于 2019-12-20 09:16
请教下chenall大,ipxe启动转grldr可以吗?我只见到ipxe启动转grub.exe的菜单写法。我说的是PE.ISO,不 ...

使用这个方式来启动

说明对GRUB4DOS的印像还停留是很早期的版本上

新的版本是可以ipxe启动直接chain grldr启动的(必须使用ipxe的kpxe的版本)
chain grldr
简单的测试就是直接使用ipxegrldr

启动后是可以直接使用类似如下语句的
map --mem http://192.168.103.15/test/test.iso (0xff)

ipxegrldr如果没有使用自己的菜单默认情况下加载的是网络的grub4dos菜单,里面都是直接访问http下载启动文件的.





作者: 江南一根葱    时间: 2019-12-20 13:50
我的启动模板就是用的ipxe转grldr,然后http启动,不太有问题啊
作者: 江南一根葱    时间: 2019-12-20 13:51
chenall 发表于 2019-12-20 13:05
使用这个方式来启动

说明对GRUB4DOS的印像还停留是很早期的版本上

ipxeldr好像改内置菜单不太方便,一定得重新编译?
作者: liuzhaoyzz    时间: 2019-12-20 14:13
本帖最后由 liuzhaoyzz 于 2019-12-20 14:23 编辑
chenall 发表于 2019-12-20 13:05
使用这个方式来启动

说明对GRUB4DOS的印像还停留是很早期的版本上

根据chenall大的提示,tinypxeserver+直接用ipxegrldr作为启动文件,ipxegrldr会自动调用同目录下的menu.lst菜单文件,用类似上面的菜单直接起动PE.ISO成功。原来早就实现了啊!我out几年了!
map --mem http://192.168.103.15/test/test.iso (0xff)这一句之前似乎不再需要find语句了,写了find语句会出错。
        

作者: chenall    时间: 2019-12-20 14:26
滥用find的后果^_^,find不一定需要用的,我就很少使用find  正常情况下find一般是菜单最前面使用用于定位特殊文件

大部份的情况下,menu.lst和所需要的文件都是在同一个地方的. 这时完全不需要使用find
直接相对路径就可以使用了.

作者: liuzhaoyzz    时间: 2019-12-20 14:36
本帖最后由 liuzhaoyzz 于 2019-12-20 14:37 编辑

不用find不行啊,因为grldr启动盘符(bd)和PE.ISO不一定是同一个盘符,比如grldr从C盘grldr引导,(bd)=(hd0,0),PE放在F盘,或者不同盘符有多个grldr,不用find怎么确定PE.ISO所在的盘符啊。

用了map --mem http://192.168.103.15/test/test.iso (0xff)这样子的语句,启动本地hd上面的
map --mem /test/test.iso (0xff)和网络启动的PE.ISO的菜单文件就不能统一了,需要提前用批处理之类的进行处理,就是需要提前修改webserver的地址,而这个地址webserver有可能是变化的。可有好的办法,实现本地hd和http启动的pxe菜单统一?搞两套菜单?        
作者: liuzhaoyzz    时间: 2019-12-20 14:39
江南一根葱 发表于 2019-12-20 13:51
ipxeldr好像改内置菜单不太方便,一定得重新编译?

ipxegrldr为什么要用内置菜单?不是会直接搜索同目录的menu.lst吗?menu.lst不是很好编辑的吗?
作者: chenall    时间: 2019-12-20 14:53
liuzhaoyzz 发表于 2019-12-20 14:36
不用find不行啊,因为grldr启动盘符(bd)和PE.ISO不一定是同一个盘符,比如grldr从C盘grldr引导,(bd)=(hd0, ...

不是很明白你具体的需求

我觉得菜单要通用最好是使用相对路径,, 可以了解一下相对路径的概念.

这样不管文件放在哪里都是使用同样的菜单就可以启动了.

像我网络启动和本地启动所使用的菜单是一模一样的.

加载本地启动菜单就是使用本地的文件,加载网络启动菜单就是使用网络上的文件.

比如 menu.lst 和 test.iso 在同一个磁盘
那在menu.lst里面启动只需要如下写法就行了
map --mem /path/test.iso (0xff)
作者: 江南一根葱    时间: 2019-12-20 14:55
本帖最后由 江南一根葱 于 2019-12-20 14:59 编辑
liuzhaoyzz 发表于 2019-12-20 14:39
ipxegrldr为什么要用内置菜单?不是会直接搜索同目录的menu.lst吗?menu.lst不是很好编辑的吗?

不想用menu.lst呗,我需要内置菜单里干很多活不过通常还是喜欢用ipxe来引导g4d

作者: liuzhaoyzz    时间: 2019-12-20 14:58
chenall 发表于 2019-12-20 14:53
不是很明白你具体的需求

我觉得菜单要通用最好是使用相对路径,, 可以了解一下相对路径的概念.

你说的都是本地启动的情况下或者一个本地,一个pxe-tfptd启动的情况,的确可以本地和网络共用同一个菜单。

那pxe-http启动涉及到webserver的地址变化,和本地的菜单是不同的啊,怎么用同一套菜单?
        

作者: 江南一根葱    时间: 2019-12-20 15:01
liuzhaoyzz 发表于 2019-12-20 14:58
你说的都是本地启动的情况下或者一个本地,一个pxe-tfptd启动的情况,的确可以本地和网络共用同一个菜单 ...

加判断就行了 if ***
作者: liuzhaoyzz    时间: 2019-12-20 15:04
江南一根葱 发表于 2019-12-20 15:01
加判断就行了 if ***

我看笨办法还是用两套菜单,简单明了粗暴。      
作者: liuzhaoyzz    时间: 2019-12-20 15:16
chenall 发表于 2019-12-20 14:53
不是很明白你具体的需求

我觉得菜单要通用最好是使用相对路径,, 可以了解一下相对路径的概念.

ipxegrldr的:map --mem http://192.168.103.15/test/test.iso (0xff)这样子的语句具体是什么时候开始支持http的?刚开始(2014-12-28)不支持这样的吧?我想知道我out多久了!        
作者: chenall    时间: 2019-12-20 15:22
看了下我的网站的记录,应该是有ipxegrldr的时候就已经支持了的

http://chenall.net/post/grub4dos_ipxe/

作者: liuzhaoyzz    时间: 2019-12-20 15:57
刚才又试了下,用tinypxeserver+undionly.kpxe+最新版20191028grldr+同目录menu.lst+http启动PE.ISO成功。
undionly.kpxe+最新版20191028grldr在一起会发生神奇的“化学反应”,使grldr支持http协议,真奇妙!这样的用法几年前就有了,我才知道。。。惭愧!
感谢chenall!
        

作者: wintoflash    时间: 2019-12-20 20:40
liuzhaoyzz 发表于 2019-12-20 12:52
当时刚开始接触grub4dos,从sysoft时空论坛到无忧,grub4dos的知识点太多,看了前面忘了后面的,于是我做了 ...

感谢。
wintoflash大神如果有兴趣加入grub4dos开发,那就好了!

这个还是算了,我水平不够,不懂汇编。
我主要是对bean开发的burg比较感兴趣,可惜burgloader的论坛数据应该都没有了。

作者: liuzhaoyzz    时间: 2019-12-20 21:11
本帖最后由 liuzhaoyzz 于 2019-12-21 10:19 编辑
wintoflash 发表于 2019-12-20 20:40
感谢。

这个还是算了,我水平不够,不懂汇编。

bean当时开发burg的时候,我没有关注,没用过(早些年再fbinstool里面有涉及到),也没有做过笔记,没想到burgloader论坛就这么挂了。确实可惜。
作者: 527104427    时间: 2019-12-20 21:17
wintoflash 发表于 2019-12-20 20:40
感谢。

这个还是算了,我水平不够,不懂汇编。

找红毛,他有。红毛看到别打我
作者: 江南一根葱    时间: 2019-12-20 21:56
本帖最后由 江南一根葱 于 2019-12-20 21:57 编辑
liuzhaoyzz 发表于 2019-12-20 15:57
刚才又试了下,用tinypxeserver+undionly.kpxe+最新版20191028grldr+同目录menu.lst+http启动PE.ISO成功。
...

哈哈,你也“来回倒腾”了,我都这样用了好几年了。
不过我遇到很老的机器网启还是要用支持ipxe前的版本,用纯tftp干才能启。

作者: liuzhaoyzz    时间: 2019-12-21 10:11
本帖最后由 liuzhaoyzz 于 2019-12-21 10:24 编辑
江南一根葱 发表于 2019-12-20 21:56
哈哈,你也“来回倒腾”了,我都这样用了好几年了。
不过我遇到很老的机器网启还是要用支持ipxe前的版本 ...

原来,潜意识里面,我觉得,ipxe/lpxelinux.0+http+memdisk+pe.iso似乎更好,因为他们一直就是这样子搭配的,lpxelinux.0和memdisk都是syslinux这同一个体系里面的组件(不过syslinux基本不更新了)。
要么就用grldr+tftp+map --mem+pe.iso,这个组合是grub4dos体系的,似乎搭配挺好。
我没想到的是ipxe和grldr还能够通过ipxe的chain grldr组合能够让grub4dos支持http,真的很奇妙!
原来我看到论坛有chain grldr这样的写法,但是不知道这样搞之后能够
让grub4dos支持http。(看了不点大的回帖,似乎他也没有这样子用过。。。)

葱大,【史上最伟大网管】(这个头衔挺酷啊),网络启动区你搞了很多经验分享啊,ipxe+g4d的组合没见你分享过,或者是我没有注意到。




作者: 江南一根葱    时间: 2019-12-21 20:38
liuzhaoyzz 发表于 2019-12-21 10:11
原来,潜意识里面,我觉得,ipxe/lpxelinux.0+http+memdisk+pe.iso似乎更好,因为他们一直就是这样子搭配 ...

http://bbs.wuyou.net/forum.php?m ... d=417622&extra=

这个包是ipxe+g4d  ipxe+grub2的终极大包
vm不同环境,实机不同环境多次实战通过,只是不适合甲骨文虚拟机网启 你可以折腾折腾
作者: liuzhaoyzz    时间: 2019-12-21 21:48
感谢分享!包里面的知识点很多啊,我看你分享了很多经验,我看得眼花缭乱,目不暇接啊!
作者: liuzhaoyzz    时间: 2019-12-21 22:20
本帖最后由 liuzhaoyzz 于 2019-12-21 22:23 编辑
cckp 发表于 2019-12-21 22:15
ipxegrldr感觉是不是已经没有维护了?或者说没有加入自动编译机制 看最新的grub4dos-0.4.6a-2019-12-20版, ...

潜意识里,我觉得chenall默认加载互联网上的最新版grldr不太好,目前看起来加载速度还行,问题是网站能保持多久啊,让用户自己下载并本地的grldr最好吧,grub4dos国内国外用的人都挺多,http://b.chenall.net/grldr国外的网友不知道访问速度怎么样呢。以上纯属个人臆想,不当之处请chenall大见谅。


关于pxe网启菜单menu.lst,肯定是优先要用本地的啊!怎么能用网上的呢?如果网上的菜单优先,那么本地的菜单永远不可能用得上,chenall大的做法是对的!




作者: liuzhaoyzz    时间: 2019-12-21 22:41
本帖最后由 liuzhaoyzz 于 2019-12-21 22:48 编辑

我想你误解了吧。相对路径优先的前提是grldr所在的盘符与PE所在的盘符一直才好用,否则还是要用find。pxe-tftp也是可以用find的,所以pxe-tftp可以和本地菜单统一为一个。pxe-http就不行,因为webserver地址可能是变化的。

pxe-http启动即使用http://b.chenall.net/grldr,菜单肯定要本地的menu.lst优先,如果不是本地优先的话,你怎么自定义自己的启动菜单?都用http://b.chenall.net/menu.lst这个?谁有权限修改这个?除了chenall,大家都不能修改,是只读的。

作者: chenall    时间: 2019-12-23 09:52
cckp 发表于 2019-12-21 23:00
照教程的说法 应该是在命令行里面简单的设置一下boot filename变量就能改。现在只是不知道哪里被改了, ...

在本地启动系统引导器可以传递启动磁盘信息给 grub4dos

但是网络启动是没有办法的,最多只能告诉你我是从pxe网络启动的.
这时只能通过 pxe的bootfile 来告诉它启动文件的路径.
这个路径一般是在dhcp服务器上设置,比如pxe直接启动grldr那就是tftp服务器.

如果是ipxe中转的,可以在ipxe环境中进行修改
太概就是如下的样子.

isset ${proxydhcp/filename} && set proxydhcp/filename ${grldrurl}
isset ${net0/filename} &&  set net0/filename ${grldrurl}







作者: 江南一根葱    时间: 2020-1-23 17:56
chenall 发表于 2019-12-23 09:52
在本地启动系统引导器可以传递启动磁盘信息给 grub4dos

但是网络启动是没有办法的,最多只能告诉你我是 ...

在折腾ipxe中转传递给grldr的信息,set net0/filename后好像g4d环境的bootfile值没改变




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