江南一根葱 发表于 2017-7-11 21:29:32

可以用chainloader (bd)/grldr这样调用新版么?

本帖最后由 江南一根葱 于 2017-7-11 21:47 编辑

我想在菜单中调用,免得热键切换grldr版本。。

结果boot后,ls查看路径会变成可见区的文件,变成只能调用可见区的lst了

怎么才能切换grldr后再能够调用ud区的lst?



u盘默认启动的是skyldr 属于旧版grldr   调用的是(ud)/axpe/menu.lst


然后我需要用新版grldr的是(ud)/axpe/ipxe/ipxe.lst这个菜单,我在(ud)/axpe/menu.lst里写了chainloader (bd)/grldr 这个是新版的grldr,我让这个grldr的内置菜单用configfile指向了(ud)/axpe/ipxe/ipxe.lst,但不成功。。。。。

这个ipxe.lst菜单是这样的(只是说明我想用新grldr来实现这些功能)
title                               wim启动32位win10pe (注入外置)
kernel (bd)/wimboot/wimboot

initrd @bcd=(bd)/wimboot/bcd @boot.sdi=(bd)/wimboot/boot.sdi @bootmgr=(bd)/wimboot/bootmgr @ip.txt=(bd)/tools/ip.txt @boot.wim=(hd0,0)/pxe/pxewin8/win10.wim

title                               进入ipxe网络启动安装【本地无盘启动】
      kernel (bd)/axpe/ipxe/ipxe.lkrn
      
      
title                               嵊州ipxe远程维护菜单 【内网】
      kernel (bd)/axpe/ipxe/ipxe.krn
          initrd(bd)/axpe/ipxe/bootlan.ipxe
title                               嵊州ipxe远程维护菜单 【调用内网菜单】
      kernel (bd)/axpe/ipxe/ipxe.krn
         initrd(bd)/axpe/ipxe/bootmenulan.ipxe
title                               嵊州ipxe远程维护菜单 【外网】
      kernel (bd)/axpe/ipxe/ipxe.krn
         initrd(bd)/axpe/ipxe/bootwan.ipxe
还有些菜单项项能是本地调用ipxe的,

为了实现wimboot的新功能,把ip.txt写到pe的X:\windows\system32中,老版本wimboot不行,老版本grldr也不支持wimboot....

又因为现在不能默认用新版grldr,,,所以比较纠结

不点 发表于 2017-7-12 07:13:50

说来话长。主要是想谈谈我在此处的开发理念,让开发者了解我当时的想法。
ud 引导扇区在内存中临时写了一个标记,当 grldr 获得控制后,首先会检查这个标记,如果发现了这个标记,就认为是从 ud 启动。然而这个标记也有坏处,当以后从别的设备启动 grldr,比如说从 img 启动时,新的 grldr 发现内存中有 ud 标记,就误认为 ud 仍是启动盘,从而让 img 自己的根目录下的启动盘地位丢失,造成 menu 失效的结果。因此,后续版本中,当 ud 启动以后,就抹掉了内存残留的 ud 标记,因此,chainloader 之后,新的 grldr 将不会发现 ud 了。只有当 ud 扇区接管控制时,才可能承认 ud 区。

我觉得 chenall 或 yaya 可以考虑改进的办法。

比如说,修改 ud 驱动程序,让 ud 区永远可以访问,而不是仅仅在 ud 启动的情况下才能访问。目前情况是,只有从 ud 启动的时候,才承认 ud 区,否则,即使 ud 区存在,也不承认它。这不太合理。因此,我觉得需要修改 ud 驱动,让 ud 区的存在与是否从 ud 启动无关,这就 ok 了。换句话说,用户可以从别的设备启动,但 ud 区仍然应该被发现,而不是被屏蔽。

具体应该怎么办,那就看目前开发者的想法了。我早已脱离开发,而且目前兴趣已经彻底转向 arm 体系结构,不再对 x86 有兴趣了。我最多只是谈谈想法,提供力所能及的帮助;别的就不要指望我了。

cchessbd 发表于 2017-7-12 08:27:19

不点 发表于 2017-7-12 07:13
说来话长。主要是想谈谈我在此处的开发理念,让开发者了解我当时的想法。
ud 引导扇区在内存中临时写了一 ...

以前的疑惑终于明白了,反正我都是一次性启动,只用 chainloader /...的形式,反正也就不用修改菜单了。

2011yaya2007777 发表于 2017-7-12 08:50:00

怎么才能切换grldr后再能够调用ud区的lst?
重新设置根分区:
find --set-root /menu.lst
这个menu.lst是UD分区的菜单。

然后我需要用新版grldr的是(ud)/axpe/ipxe/ipxe.lst这个菜单
不修改grldr内置菜单,是找不到ipxe.lst的。当然,也可以在能找到的菜单新建项:
title新菜单
configfile /menu1.lst
或者
configfile /axpe/ipxe/ipxe.lst


之所以执行 chainloader (bd)/grldr 后根为可见区,可能是没有找到菜单,或者可见区有菜单,或者是因为 (bd),直接 chainloader /grldr。

不点 发表于 2017-7-12 09:23:58

本帖最后由 不点 于 2017-7-12 09:25 编辑

感觉 yaya 的答复,可能不是楼主想要的。注意:在 chainloader 之后的 grldr 环境中,UD 区已经无法访问了,也就是说,相当于不存在了。注意,楼主的目的是想让 ud 根目录下的 menu.lst 起作用。也就是说,想让新的 grldr 依旧认为 ud 是根分区。目前这是做不到的,前面已经解释过了。如果楼主把 menu.lst 放在可见区,那么 yaya 的这个答复就是合适的了。

特别注意:chainloader 之后,grldr 不承认 ud 区了。———— 否则,答复就没答到关键点上。在前一楼我给出了一种解决办法,我觉得是可行的、恰当的办法。当然,要不要解决,以及能否投入精力和时间去解决,则是另外一个话题。

2011yaya2007777 发表于 2017-7-12 10:30:59

没有答到点子上。                              

2011yaya2007777 发表于 2017-7-12 10:31:06

目前情况是,只有从 ud 启动的时候,才承认 ud 区,否则,即使 ud 区存在,也不承认它。这不太合理。

2011yaya2007777 发表于 2017-7-12 10:31:47

看到了。抽时间看看代码。

江南一根葱 发表于 2017-7-12 10:37:20

不点 发表于 2017-7-12 09:23
感觉 yaya 的答复,可能不是楼主想要的。注意:在 chainloader 之后的 grldr 环境中,UD 区已经无法访问了 ...

嗯,我需要的就是chainloader以后认到ud,可见区的lst可以调用我试过,
,因为这边好多人的u启都是我做的,遇到问题用热键切换的方式不太灵活,平时不用会忘记又来问我,所以我想在菜单上切换。。。
自己用用是肯定没什么大不了的了

cchessbd 发表于 2017-7-12 10:53:14

江南一根葱 发表于 2017-7-12 10:37
嗯,我需要的就是chainloader以后认到ud,可见区的lst可以调用我试过,
,因为这边好多人的u启都是我做的 ...

其实这样也好解决,就是在ud区,可见区直接都拷贝一份pe文件。
直接chainloader /...就可,缺点是多占了一部分空间。

其实以前有些主板有时候不认ud的时候,是这么干的。
貌似现在没遇到过了。不过接触得也少。

江南一根葱 发表于 2017-7-12 10:56:31

本帖最后由 江南一根葱 于 2017-7-12 10:58 编辑

cchessbd 发表于 2017-7-12 10:53
其实这样也好解决,就是在ud区,可见区直接都拷贝一份pe文件。
直接chainloader /...就可,缺点是多占了 ...

那。。。。。。。UD,我要这铁棒有何用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我可见区有个独立的菜单的的,用来测试网上下的pe,平时不用,因为人家的pe好多工具都不是自己想要的
我接触装机比较多,多种环境多种机型,一年少说也有上千台。。

2011yaya2007777 发表于 2017-7-12 11:07:20

我确实不理解为什么有些人喜欢隐藏分区。自己折腾u盘,还怕误删吗?

江南一根葱 发表于 2017-7-12 11:14:12

2011yaya2007777 发表于 2017-7-12 11:07
我确实不理解为什么有些人喜欢隐藏分区。自己折腾u盘,还怕误删吗?

隐藏分区有个好处,就是u盘非正常拔插后数据不容易坏,有自己用是无所谓的,关键是要给同事用,有同事都想把ghost镜像和常用软件放ud去了,一根铁棒撸天下,当然,这同事的u盘经常中毒{:2_134:}

江南一根葱 发表于 2017-7-12 11:20:15

其实就是想偷点懒,ud的fba六年来没变过容量,我都是把里面的pe和功能改来改去,主要是导入方便,可见区备用了一个自由天空完整的官方pe,这个我都设成只读和隐藏了,但也经常被搞“坏”的、、

2011yaya2007777 发表于 2017-7-12 11:24:49

看来隐藏还是有一定作用的。

2011yaya2007777 发表于 2017-7-12 14:17:09

本帖最后由 2011yaya2007777 于 2017-7-12 14:18 编辑

修改 ud 驱动程序,让 ud 区永远可以访问,而不是仅仅在 ud 启动的情况下才能访问。目前情况是,只有从 ud 启动的时候,才承认 ud 区,否则,即使 ud 区存在,也不承认它。这不太合理。
在虚拟机测试,使用 fat16.img 启动,挂载 ud.vmdk,在命令行使用 ls (hd1)/ 可以查看ud隐藏分区的内容。说明不从ud启动,也可以访问ud分区。

楼主应当重视4#建议。把新 grldr 内置菜单的内容修改为:
title find /ipxe.lst, /axpe/ipxe/ipxe.lst, /grub/ipxe.lst
        errorcheck off
        configfile /axpe/ipxe/ipxe.lst
        configfile /grub/ipxe.lst
        if "%@root%"=="(ud)" && calc *0x82A0=*0x82b9&0xff
        if "%@root:~1,1%"=="f" && find --set-root --devices=f /ipxe.lst && configfile /ipxe.lst
        find --set-root --ignore-floppies --ignore-cd /ipxe.lst && configfile /ipxe.lst
        find --set-root --ignore-floppies --ignore-cd /axpe/ipxe/ipxe.lst && configfile /axpe/ipxe/ipxe.lst
        find --set-root --ignore-floppies --ignore-cd /grub/ipxe.lst && configfile /grub/ipxe.lst
        configfile http://b.chenall.net/ipxe.lst
        errorcheck on
        commandline

江南一根葱 发表于 2017-7-12 14:23:43

2011yaya2007777 发表于 2017-7-12 14:17
在虚拟机测试,使用 fat16.img 启动,挂载 ud.vmdk,在命令行使用 ls (hd1)/ 可以查看ud隐藏分区的内容。 ...

我测试下

江南一根葱 发表于 2017-7-12 14:36:06

2011yaya2007777 发表于 2017-7-12 14:17
在虚拟机测试,使用 fat16.img 启动,挂载 ud.vmdk,在命令行使用 ls (hd1)/ 可以查看ud隐藏分区的内容。 ...

好像是能找到ipxe,也能boot,不过字和背景丢了,写上原来菜单的调用字体代码也没生效,这倒也不是大问题,我再编辑下看看

而且好像这样读那个ipxe菜单的wim都不卡32兆了,这什么情况我勒个去。

难道说卡32兆是字体的关系

江南一根葱 发表于 2017-7-12 14:45:27

不过我是默认新版调用新版,先去弄个网络,老版本调用新的我再试试

江南一根葱 发表于 2017-7-12 15:44:24

2011yaya2007777 发表于 2017-7-12 14:17
在虚拟机测试,使用 fat16.img 启动,挂载 ud.vmdk,在命令行使用 ls (hd1)/ 可以查看ud隐藏分区的内容。 ...

有新进展。。。。
我默认用新的grldr再chainloader新的grldr,卡在读取的问题居然解决了,但chainloader后的菜单怎么弄都丢失背景和字体(可能是我方式有问题)
我默认用旧的grldr再chainloader新的grldr,背景和字体都加载正常,但有卡在读取的问题(不过无所谓了,别的机上能正常)

2011yaya2007777 发表于 2017-7-12 16:36:05

希望你能提供必要的重现文件。比如新旧grldr,新旧菜单等。打包上传。以便我测试。

江南一根葱 发表于 2017-7-12 17:56:35

2011yaya2007777 发表于 2017-7-12 16:36
希望你能提供必要的重现文件。比如新旧grldr,新旧菜单等。打包上传。以便我测试。

https://share.weiyun.com/423c9de238ccad1d720ea32a97a7c24d
传上去了,一个是整个fba文件,其它大文件删了,一个是ud目录结构文件


默认是skyldr旧grldr启动的,菜单chainloader到skyldrnew新grldr,菜单正常,用我的u盘是卡在读wim文件,包括map iso,
按F7是从testldr新grldr启动的,菜单chainloader到skyldrnew新grldr,菜单缺背景和字体,用我的u盘完全不再卡读wim,读取也快

江南一根葱 发表于 2017-7-12 18:45:26

https://share.weiyun.com/48e8af87abe60f23be273dec91240469
这个是我测试的视频

cchessbd 发表于 2017-7-13 07:44:47

江南一根葱 发表于 2017-7-12 17:56
https://share.weiyun.com/423c9de238ccad1d720ea32a97a7c24d
传上去了,一个是整个fba文件,其它大文件 ...

直接configfile 菜单文件好一点吧,要不就一次调用新版或者旧版。
FB包内采用不同快键。

chenall 发表于 2017-7-13 14:46:07

不管有没有从ud启动都可以通过 (hdx)或(fdx)来访问

通过PXE启动ipxegrldr时在网络可用的情况下总是优先使用网络上的最新版本.

2011yaya2007777 发表于 2017-7-13 20:42:14

在 skypenew 里,修改
splashimage (ud)/axpe/vbe/BG.lzma
font (ud)/axpe/vbe/MENU.HEX

splashimage (hd0)/axpe/vbe/BG.lzma
font (hd0)/axpe/vbe/MENU.HEX
即可以显示中文。

江南一根葱 发表于 2017-7-13 20:55:48

2011yaya2007777 发表于 2017-7-13 20:42
在 skypenew 里,修改
splashimage (ud)/axpe/vbe/BG.lzma
font (ud)/axpe/vbe/MENU.HEX


{:2_133:}还真可以,这啥原理啊,多谢了,我这问题u盘算变相解决了,,我这样加载两次新版grldr居然能解决卡mapmem的问题,真是太神奇了{:2_132:}

2011yaya2007777 发表于 2017-7-13 21:17:57

可以解释一下
set /a a=29<<2+*0x8304set /a b=*%a%+8
set /a c=*%b%&0x00000000
write %b% %c%
批处理的作用吗?

江南一根葱 发表于 2017-7-14 09:22:52

2011yaya2007777 发表于 2017-7-13 21:17
可以解释一下
set /a a=29

skype都有这几个,我也不太理解,貌似是调整界面边框宽度的,去掉这个菜单界面会变得很诡异,和字体不相称,去掉貌似就变成四个窗口了,像DVD的多画面一样

江南一根葱 发表于 2017-7-14 09:45:43

2011yaya2007777 发表于 2017-7-13 21:17
可以解释一下
set /a a=29

好神奇,我用第一次启动的grldr内置菜单的方式重复调用另一个grldr再调用主菜单,会卡iso,
用内置菜单调用外置菜单再重复调用grldr,读iso速度很顺利:dizzy:
郁闷 了,
页: [1] 2
查看完整版本: 可以用chainloader (bd)/grldr这样调用新版么?