| 
 | 
 
有极少数电脑在 USB 启动时,其 LBA 支持是有毛病的,如果进行多扇区访问(一次 int13 读取扇区数大于 1),则立即死机。 
 
对于这样的电脑,常规的 grub4dos 接管控制后必然立即死机。任何访问 U 盘的动作,都会导致死机。比如查找 menu.lst 的动作就要死机(不管是否找到)。 
 
因此,我觉得应该仿照 multimbr 项目的处理方式,来改进目前的内置菜单。 
 
我把改进后的内置菜单贴出来,供 chenall、yaya 等维护者们研究、参考。 
 
 
- pxe detect
 
 - geometry --lba1sector
 
 - default 0
 
 - timeout 1
 
  
- title find menu.lst (fast, with geometry --lba127sector)
 
 -         geometry --lba127sector
 
 -         errorcheck off
 
 -         configfile /menu.lst
 
 -         configfile /boot/grub/menu.lst
 
 -         configfile /grub/menu.lst
 
 -         if "%@root%"=="(ud)" && calc *0x82A0=*0x82b9&0xff
 
 -         if "%@root:~1,1%"=="f" && find --set-root --devices=f /menu.lst && configfile /menu.lst
 
 -         find --set-root --ignore-floppies --ignore-cd /menu.lst && configfile /menu.lst
 
 -         find --set-root --ignore-floppies --ignore-cd /boot/grub/menu.lst && configfile /boot/grub/menu.lst
 
 -         find --set-root --ignore-floppies --ignore-cd /grub/menu.lst && configfile /grub/menu.lst
 
 -         errorcheck on
 
 -         commandline
 
  
- title find menu.lst (slow, failsafe, without geometry --lba127sector)
 
 -         errorcheck off
 
 -         configfile /menu.lst
 
 -         configfile /boot/grub/menu.lst
 
 -         configfile /grub/menu.lst
 
 -         if "%@root%"=="(ud)" && calc *0x82A0=*0x82b9&0xff
 
 -         if "%@root:~1,1%"=="f" && find --set-root --devices=f /menu.lst && configfile /menu.lst
 
 -         find --set-root --ignore-floppies --ignore-cd /menu.lst && configfile /menu.lst
 
 -         find --set-root --ignore-floppies --ignore-cd /boot/grub/menu.lst && configfile /boot/grub/menu.lst
 
 -         find --set-root --ignore-floppies --ignore-cd /grub/menu.lst && configfile /grub/menu.lst
 
 -         errorcheck on
 
 -         commandline
 
  
- title commandline
 
 -         commandline
 
  
- title reboot
 
 -         reboot
 
  
- title halt
 
 -         halt
 
  
  复制代码 
 
默认的菜单适用于绝大多数情况。但是默认的菜单在 buggy 机器上会死机。如果用户遇到死机,那么在下次启动时,有机会选择慢速的、可靠的单扇区访问菜单项,从而成功进入 grub4dos,并完成后续一系列启动任务。 
 
上述菜单所可能带来的兼容性问题,有待研究者们深入考察和检验。 
 
 |   
 
 
 
 |