无忧启动论坛

标题: 菜单无法显示完整内容 [打印本页]

作者: nttwqz    时间: 2018-12-31 19:48
标题: 菜单无法显示完整内容
本帖最后由 nttwqz 于 2019-1-2 20:18 编辑

grldr.7z (168.64 KB, 下载次数: 20)

从之前的菜单里复制粘贴到最新版,然后就不正常了,恢复旧版grldr也不正常,原来一切正常,哪里错了?


问题已解决,内置菜单太长,超过了4K,去掉嵌入字模后压缩保存正常了,现在已改为外置菜单。


  1. default 0
  2. timeout 10
  3. hotkey
  4. graphicsmode -1 640:1024 480:768 24:32
  5. font /unifont.hex.gz

  6. # 背景图片
  7. # splashimage=/boot/grub/splashimage.jpg
  8. # 开启字符轮廓显示模式。当背景图片启用,菜单字体显示不清时建议开启
  9. # outline on
  10. # 设置菜单语言为中文,字间距1,行间距10,整行高亮,版本号显示关
  11. setmenu --lang=zh --font-spacing=1:10 --highlight-full --ver-off
  12. # color 未选菜单 被选菜单 帮助 标题,(前景色/背景色) ,顺序不可乱,不设置可用n替换
  13. color light-gray/black black/light-gray white/black white/black

  14. # 列数=图像水平像素/(字符宽+字符间距)     字符宽=8
  15. # 行数=图像垂直像素/(字符高+行间距)       字符高=10
  16. # setmenu --box x=[x] y=[y] w=[w] h=[h] l=[l] 菜单项标题起始列,起始行,每行最大字符数,最大菜单项数,菜单框线条宽度(像素)
  17. # 注:w=0 表示水平居中。此时 w 应当在 x 之后;l=0 表示不显示菜单框;
  18. # 按黄金分割比例设置菜单框宽度:1024/(8+1)=113.78;113*0.618=70.31 70/2=35,故居中时x=35
  19. setmenu --box x=35 y=6 w=0 l=0
  20. # 居中位置计算:例如1024宽,列数:1024/(8+1)=113.78,“DOS菜单”应该是7个字符,(113-7)/2=53,故--string=53
  21. # 2018-3-15后,省略x自动居中
  22. setmenu --string==3=0xffffff="DOS菜单" --timeout=75=5=0xffff00


  23. title ^F1 F1  MHDD硬盘坏道检测 \n
  24.         map --floppies=1
  25.         find --set-root /Boot/GRUB/mhdd46.img
  26.         map --mem /Boot/GRUB/mhdd46.img (fd0)
  27.         map --hook
  28.         chainloader (fd0)+1
  29.         rootnoverify (fd0)

  30. title ^F2 F2  HDDReg硬盘再生器 \n
  31.         map --floppies=1
  32.         find --set-root /Boot/GRUB/HDDREG2013.img
  33.         map --mem /Boot/GRUB/HDDREG2013.img (fd0)
  34.         map --hook
  35.         chainloader (fd0)+1
  36.         rootnoverify (fd0)

  37. title ^F3 F3  DiskGenius \n
  38.         map --floppies=1
  39.         find --set-root /Boot/GRUB/DiskGenius.img
  40.         map --mem /Boot/GRUB/DiskGenius.img (fd0)
  41.         map --hook
  42.         chainloader (fd0)+1
  43.         rootnoverify (fd0)

  44. title ^F4 F4  DOS 7.1 \n纯DOS环境
  45.         map --floppies=1
  46.         find --set-root /Boot/GRUB/DiskGenius.img
  47.         map --mem /Boot/GRUB/MSDOS71B.img (fd0)
  48.         map --hook
  49.         chainloader (fd0)+1
  50.         rootnoverify (fd0)

  51. title ^F5 F5  DOSTOOLS \nDOS工具集
  52.         map --floppies=1
  53.         find --set-root /Boot/GRUB/DOSTOOLS.img
  54.         map --mem /Boot/GRUB/DOSTOOLS.img (fd0)
  55.         map --hook
  56.         chainloader (fd0)+1
  57.         rootnoverify (fd0)

  58. title ^F6 F6  内存测试 \nmemtest86+ 5.01内存测试工具\n内存测试时间一般十分漫长,慎用!
  59.         find --set-root /Boot/GRUB/memtest86+-5.01.iso
  60.         map --mem /Boot/GRUB/memtest86+-5.01.iso (0xff)
  61.         map --hook
  62.         chainloader (0xff)
  63.         boot

  64. title ^F7 F7  Windows账户工具 \nchntp.iso,支持Win10,请优先使用PE中的NTPWEdit\n密码重置、更改组、禁用启用,注册表编辑
  65.         find --set-root /Boot/GRUB/chntp.iso
  66.         map --mem /Boot/GRUB/chntp.iso (0xff)
  67.         map --hook
  68.         chainloader (0xff)
  69.         boot

  70. # title ^F7 F7  重置Windows登录密码 \npassword.img,可能不支持Win8以上系统\n请优先使用PE中的NTPWEdit
  71.         map --floppies=1
  72.         find --set-root /Boot/GRUB/password.img
  73.         map --mem /Boot/GRUB/password.img (fd0)
  74.         map --hook
  75.         chainloader (fd0)+1
  76.         rootnoverify (fd0)

  77. title ^F8 F8  绕过Windows登录密码 \nPassPass自动检测\n永久绕过,支持WinXP~Win8
  78.         find --set-root /Boot/GRUB/PassPass
  79.         insmod /Boot/GRUB/PassPass
  80.         insmod /Boot/GRUB/wenv
  81.         /Boot/GRUB/PassPass
  82.         boot

  83. title ^F9 F9  临时绕过Windows登录密码,重启失效 \nKonBoot\n支持Win10
  84.         map --floppies=1
  85.         find --set-root /Boot/GRUB/konboot.img
  86.         map --mem /Boot/GRUB/konboot.img (fd0)
  87.         map --hook
  88.         chainloader (fd0)+1
  89.         map (hd1) (hd0)
  90.         map --hook
  91.         rootnoverify (fd0)

  92. title ^F10 F10 03PE \n支持256M内存
  93.         errorcheck off
  94.         find --set-root /crystal.sys
  95.         pause --wait=3 三秒内按 空格键 加载USB2.0驱动
  96.         if "%@retval%"=="32" usb --init
  97.         chainloader /ldrxpe || chainloader setupldr.bin
  98.         boot

  99. title ^F11 F11 保护系统系列 \n进入保护系统系列子菜单
  100.         find --set-root /crystal.sys
  101.         configfile /edumenu.lst

  102. title ^F12 F12 加载USB驱动并返回 \n提高加载速度,加载USB驱动并返回Windows 启动管理器
  103.         usb --init
  104.         find --set-root /crystal.sys
  105.         chainloader /bootmgr
  106.         boot

  107. # 当[]内的条件成立时显示菜单,否则不显示
  108. iftitle [find --set-root /android.iso] Android-x86 \n
  109.         find --set-root /android.iso
  110.         map --mem /android.iso (0xff)
  111.         map --hook
  112.         chainloader (0xff)
  113.         boot

  114. # 仅当根目录下存在temp.iso时此菜单才会显示
  115. iftitle [find --set-root /temp.iso] 启动temp.iso \n加载根目录下的temp.iso到内存(如果能的话)并引导启动 \n
  116.         find --set-root /temp.iso
  117.         map --mem /temp.iso (0xff) || map /temp.iso (0xff)
  118.         map --hook
  119.         chainloader (0xff)
  120.         boot

  121. title
  122.         clear

  123. title ^Q Q 返回 \n返回Windows 启动管理器
  124.         find --set-root /crystal.sys
  125.         chainloader /bootmgr

  126. title ^R R 重启 \n
  127.         reboot

  128. title ^S S 关机 \n
  129.         halt --no-apm || halt --force-sci || halt --no-acpi

复制代码

grldr.png (15.61 KB, 下载次数: 125)

grldr.png

作者: 不点    时间: 2018-12-31 20:05
怀疑你在其他地方有个 menu.lst 抢先执行了。图片显示的是那个抢先执行的 menu.lst 的情况。


作者: chishingchan    时间: 2018-12-31 20:29
会不会跟文件编码格式有关?
作者: nttwqz    时间: 2018-12-31 22:08
本帖最后由 nttwqz 于 2018-12-31 22:26 编辑
不点 发表于 2018-12-31 20:05
怀疑你在其他地方有个 menu.lst 抢先执行了。图片显示的是那个抢先执行的 menu.lst 的情况。


可是,菜单最前面没有configfile,这个外置带单也会优先于内置有效?

关键是,根本就没有menu.lst,更没有完全一样的,这样的菜单只有这一个。虽然电脑的隐藏分区也有个grldr,但是那个下面也有返回重启关机,即使错误定位的话,也显示不正确,何况我这个U盘的菜单和电脑的不同,什么都没动就不正常了。

这个情况已经出现过好几次了,不知道是不是重了MBR之类的病毒所致,上次连快捷键都失效了,中文也显示异常,最后重建mbr好了,这次外置命令快捷键能载入,但是依然不正常,杀毒软件用的国外的Avast,没有查到此类病毒(开机全盘查杀)。内置外置都试了,都一样,好神奇,之前明明是好好的。

作者: nttwqz    时间: 2018-12-31 22:08
chishingchan 发表于 2018-12-31 20:29
会不会跟文件编码格式有关?

都试过了,无效,如果这么简单我就不发帖了。。。
作者: 不点    时间: 2019-1-1 01:11
可能性太多了,只有你,通过各种试验研究,才能知道究竟是哪种问题。比如说,有可能某个隐藏的 grldr 在起作用。

你用 qemu 也能重现你的问题?究竟是真实机出问题了,还是虚拟机里面出问题了?

虚拟机里面也有病毒?不太可能吧?

作者: 2011yaya2007777    时间: 2019-1-1 11:48
如果图像分辨率低,菜单项又多,当然一屏显示不全。当移动到尾项时会滚屏,显示后续菜单项。

graphicsmode -1 640:1024 480:768 24:32
这样设置的好处是适应性强。缺点是分辨率不同时,菜单可能不一样。

setmenu --box x=35 y=6 w=0 l=0
你可以减少y试一试。

--font-spacing=1:10
你可以改变比例试一试。比如1:2.


作者: nttwqz    时间: 2019-1-1 12:52
2011yaya2007777 发表于 2019-1-1 11:48
如果图像分辨率低,菜单项又多,当然一屏显示不全。当移动到尾项时会滚屏,显示后续菜单项。

graphicsmo ...

同一台电脑和显示器,之前能,现在不能,不应该是分辨率问题,因为无法滚屏

将下面的全部删掉也无法显示完整,发帖前试过了
  1. # 背景图片
  2. # splashimage=/boot/grub/splashimage.jpg
  3. # 开启字符轮廓显示模式。当背景图片启用,菜单字体显示不清时建议开启
  4. # outline on
  5. # 设置菜单语言为中文,字间距1,行间距10,整行高亮,版本号显示关
  6. setmenu --lang=zh --font-spacing=1:10 --highlight-full --ver-off
  7. # color 未选菜单 被选菜单 帮助 标题,(前景色/背景色) ,顺序不可乱,不设置可用n替换
  8. color light-gray/black black/light-gray white/black white/black

  9. # 列数=图像水平像素/(字符宽+字符间距)     字符宽=8
  10. # 行数=图像垂直像素/(字符高+行间距)       字符高=10
  11. # setmenu --box x=[x] y=[y] w=[w] h=[h] l=[l] 菜单项标题起始列,起始行,每行最大字符数,最大菜单项数,菜单框线条宽度(像素)
  12. # 注:w=0 表示水平居中。此时 w 应当在 x 之后;l=0 表示不显示菜单框;
  13. # 按黄金分割比例设置菜单框宽度:1024/(8+1)=113.78;113*0.618=70.31 70/2=35,故居中时x=35
  14. setmenu --box x=35 y=6 w=0 l=0
  15. # 居中位置计算:例如1024宽,列数:1024/(8+1)=113.78,“DOS菜单”应该是7个字符,(113-7)/2=53,故--string=53
  16. # 2018-3-15后,省略x自动居中
  17. setmenu --string==3=0xffffff="DOS菜单" --timeout=75=5=0xffff00
复制代码

作者: 不点    时间: 2019-1-1 12:53
frg521 发表于 2018-12-31 23:36
...
最后再告知1件事  GHOST 使用后会破坏 MBR一些扇区数据   - 同理其他 磁盘工具也有这种破坏的可能性。

谢谢这个告知。


不要动不动就病毒。病毒都想活久些  弄坏启动  没好处。

谢谢提供这个合乎逻辑的精彩分析。学到了。

作者: 2011yaya2007777    时间: 2019-1-1 13:27
你是内置菜单吧。请把grldr传上来。
作者: nttwqz    时间: 2019-1-1 14:12
本帖最后由 nttwqz 于 2019-1-1 14:17 编辑
2011yaya2007777 发表于 2019-1-1 13:27
你是内置菜单吧。请把grldr传上来。


已上传!附件在1楼顶部。

问题已解决,但原因未知!

重新分区格式化,清除引导扇区,重建MBR,后问题依旧。U盘使用BOOTMGR引导,故从PE的ISO内复制所有相关引导文件到U盘,并重新下载编辑grldr文件,现在正常了,菜单内容未改动。如果不是病毒的话,那怀疑可能是bootmgr相关文件被破环所致。U盘插拔次数过多,估计是伤着了,有时候需要动动才认。

弱弱的问一句,更推荐优先使用内置还是外置菜单?

捕获.PNG (14.88 KB, 下载次数: 129)

捕获.PNG

作者: 2011yaya2007777    时间: 2019-1-1 14:21
普通菜单就用外置菜单吧,修改方便。
作者: nttwqz    时间: 2019-1-1 14:27
2011yaya2007777 发表于 2019-1-1 14:21
普通菜单就用外置菜单吧,修改方便。

哪些情况下建议使用内置菜单呢?
作者: 2011yaya2007777    时间: 2019-1-1 14:42
本帖最后由 2011yaya2007777 于 2019-1-1 15:05 编辑

这纯粹是个人习惯。怎样都行。我觉得比如超过4k大段的批处理,并且压缩。或者是不想让人修改或解读的菜单。

你上传的 grldr 有问题。就如1#附图显示的那样,不全,且不能滚屏。
你最好还是使用外置菜单吧。

与 BOOTMGR 毫无关系。测试就一个文件 grldr。
作者: 2011yaya2007777    时间: 2019-1-1 16:13
本帖最后由 2011yaya2007777 于 2019-1-1 16:14 编辑

你的内置菜单长度超过4k,菜单从4k处截断!!!!!
必须压缩!!!!!
作者: nttwqz    时间: 2019-1-1 22:09
2011yaya2007777 发表于 2019-1-1 16:13
你的内置菜单长度超过4k,菜单从4k处截断!!!!!
必须压缩!!!!!

这是测试的缘故,好久之前好过教程,忘了是什么原因,必须使用UTF-8 LMZA压缩保存,后来就一直是这样保存的,直到出了问题(不排除是点错了),让后就测试,看是不是压缩的缘故。记得之前测试过,用原始的grldr重新编辑压缩保存然后也显示不全,或许是默认嵌入字模的缘故,反正有外置字库,以后如果用内置取消嵌入。
作者: nttwqz    时间: 2019-1-1 22:24
frg521 发表于 2019-1-1 15:59
...

如果使用数字快捷键,超过10项时,比如11,12,怎么按?我试过,快速按两下1不管用。
作者: 2011yaya2007777    时间: 2019-1-2 06:12
应当可以




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