无忧启动论坛

标题: 想实现双热键启动最后分区 [打印本页]

作者: rd268    时间: 2011-7-25 21:10
标题: 想实现双热键启动最后分区
目的:开机显示 "PRESS [F9] TO RECOVERY,[F11] TO WinPE"
按 F9 直接启动最后磁盘分区下 ONEKEY.IMA
按 F11 从最后磁盘分区引导启动
1秒后自动启动 Windows

有经验的老师,分享下制作方法。
作者: rd268    时间: 2011-7-26 13:40
等 待 中 . . .
作者: mygamexxx    时间: 2011-7-26 14:02
标题: 回复 #2 rd268 的帖子
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
作者: rd268    时间: 2011-7-26 18:52
原帖由 mygamexxx 于 2011-7-26 14:02 发表
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=157812&extra=page%3D1


之前试过 XORLDR 也不能实现

要的是开机显示 "PRESS [F9] TO RECOVERY,[F11] TO WinPE"
作者: mygamexxx    时间: 2011-7-27 10:40
标题: 回复 #4 rd268 的帖子
XORLDR 可以实现每个启动项设置热键啊,你可以在启动项中说明热键是什么。
如果一定要按你的规定显示,可以参考一下C大的http://bbs.wuyou.net/forum.php?mod=viewthread&tid=194035&extra=page%3D2
自己动手实现。
MBR使用G4D引导,grldr使用下面的内置菜单可实现你的要求。
debug off
find --set-root /ONEKEY.IMA    ##搜索根目录下ONEKEY.IMA(放置于最后分区,要求其他分区无此文件),确认最后分区位置
default 0
timeout 0
title
echo
echo -P:1225 $[0105]PRESS [F9] TO RECOVERY, [F11] TO WinPE
set key=
pause --test-key --wait=1    ##此处是延时设置
set /A key=*0x4CB00
if "%key%"=="0x4300" goto 1    ##0x4300是F9键扫描码
if "%key%"=="0x8500" goto 2    ##0x8500是F11键扫描码
clear
chainloader (hd0,0)+1    ##此处是延时后或按键错误进入硬盘第一主分区的系统
title start ONEKEY.IMA
clear
map --mem /ONEKEY.IMA (fd0)
map --hook
chainloader (fd0)/io.sys
title start WinPE
clear
chainloader /setupldr.bin    ##此句启动WINPE要根据实际情况更改

[ 本帖最后由 mygamexxx 于 2011-7-27 11:06 编辑 ]
作者: rd268    时间: 2011-7-27 20:55
原帖由 mygamexxx 于 2011-7-27 10:40 发表
XORLDR 可以实现每个启动项设置热键啊,你可以在启动项中说明热键是什么。
如果一定要按你的规定显示,可以参考一下C大的http://bbs.wuyou.net/forum.php?mod=viewthread&tid=194035&;extra=page%3D2
自己动手实现。
MB ...


谢谢 mygamexxx

想实现以下图的功能是: [F9] 启动最后分区 ONEKEY.IMA  [F11] 从最后磁盘分区PBR启动
1秒后自动启动C盘系统

[ 本帖最后由 rd268 于 2011-7-27 21:01 编辑 ]

TEST.jpg (10.78 KB, 下载次数: 122)

TEST.jpg

作者: ali88home    时间: 2011-7-28 18:04
想实现以下图的功能是:
[F9] 启动最后分区 ONEKEY.IMA  
[F10] 从最后磁盘分区PBR启动PE
5秒后自动启动C盘系统
因为F11我试过,没有成功,奇怪???先改成F10操作
找到原因了:我的键盘配备,不支持F11和F12

下载c大的安装WEE,把BOOT/PRELOAD.BAT覆盖

PRELOAD.BAT:

!BAT:PW:--md5 $1$U4c/$IItnjIVV/t/tYd76x14tL1
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
pager on
if exist timeout exit
pager off
terminal console
debug -1
set NTBOOT=%~dp0NTBOOT/NTBOOT
set [email=saveroot=%@root%]saveroot=%@root%[/email]
clear
find --set-root --devices=h /qgho.### makeactive --status && goto :QGHO_FAST
cat --length=1 %~dp0MODBOOT/QGHO/QGHO.SET | set key=
if not "%key%"=="!" goto :QGHO_START
%~dp0grub/vfont %~dp0preload.fnt
echo
echo -P:2120 $[0106]纮羴聜脙膭艆 $[1004]F9  #这个是中文,可以删除
echo -P:2320 $[0107]PRESS [F9] TO RECOVERY, [F10] TO WinPE

echo -P:00-16 $[0103]%@DATE%    #这三个是右上角信息,可以删除
echo -P:01-16 $[0102]F10 $[0107]TO WinPE
echo -P:02-16 $[0102]F9 $[0107]RECOVERY


pause --test-key --wait=5 #设定秒数,1秒太少了。
set /A key=*0x4CB00
%~dp0grub/vfont
clear
debug off
goto %key% || echo Default Boot.
:0x3B00  F1
:0x3C00  F2
:0x3D00  F3
:0x3E00  F4
:0x3F00  F5
:0x4000  F6
:0x4100  F7
:0x4200  F8
:0x8500  F11
:0x8600  F12
::按了非F9/F10/SIFT+F10之外的键都会执行这些,上面的那个只是为了留个示范。
::如果你在按F8的时候执行某些内容,可以把标签:0x4200放到本段EXIT后面再写上执行的命令就可以了。
:default
::如果有存在oemslic.bin文件,则尝试自动加载.
root %~d0
if exist %~dp0oemslic.bin && %~dp0grub/slic %~dp0oemslic.bin
if exist %~dp0SYS_MENU.LST && configfile %~dp0SYS_MENU.LST
find --set-root --devices=h makeactive --status
chainloader +1
boot
exit

#这两个目标自己修改

:0x4300  F9
map --mem /BOOT/IMGS/ONEKEY.IMA (fd0)   

map --hook
chainloader (fd0)/io.sys
exit


:0x4400  F10
find --set-root /WXPE/SETUPLDR.BIN
chainloader /WXPE/SETUPLDR.BIN || chainloader --force (cd)/WXPE/SETUPLDR.BIN
boot
exit


::#显示菜单####自动添加附加的菜单项目###########
:0x5D00  Shift+F10
echo Loading......
color blue/green yellow/red white/magenta white/magenta
command --set-path=(bd)/BOOT/GRUB/
set default=0
set timeout=5
set number=5
map %~dp0GRUB/MENU.LST (rd)
set base_dir=%~dp0ADDONS
ls %~dp0ADDONS/# | call :ADDONS=
configfile (rd)+1
exit
:ADDONS
if "%1"=="" exit
echo -n title %number%.  >> (rd)+1
cat %base_dir%/%1 >> (rd)+1
echo >> (rd)+1
set /a number=%number%+1
shift 1
goto :ADDONS

[ 本帖最后由 ali88home 于 2011-7-29 17:08 编辑 ]
作者: mygamexxx    时间: 2011-7-29 08:45
标题: 回复 #6 rd268 的帖子
更改显示位置只要更改echo -P:1225 $[0105]PRESS [F9] TO RECOVERY, [F11] TO WinPE,这一句中的-P:1225的数字即可,比如改为-P:2425,至于从PBR启动WINPE还不如直接从文件setupldr.bin(可能是其他名称)启动好。

[ 本帖最后由 mygamexxx 于 2011-7-29 08:51 编辑 ]
作者: rd268    时间: 2011-7-29 19:40
原帖由 mygamexxx 于 2011-7-29 08:45 发表
更改显示位置只要更改echo -P:1225 $[0105]PRESS [F9] TO RECOVERY, [F11] TO WinPE,这一句中的-P:1225的数字即可,比如改为-P:2425,至于从PBR启动WINPE还不如直接从文件setupldr.bin(可能是其他名称)启动好。


mygamexxx   请教:

clear
echo -P:2320 $[0107]PRESS [F9] TO RECOVERY, [F10] TO WinPE
pause --test-key --wait=3
set /A key=*0x4CB00
#%~dp0grub/vfont
clear
debug off
goto %key% || echo Default Boot.
:0x3B00  F1
:0x3C00  F2
:0x3D00  F3
:0x3E00  F4
:0x3F00  F5
:0x4000  F6
:0x4100  F7
:0x4200  F8
:0x8500  F11
:0x8600  F12
::按了非F9/F10/SIFT+F10之外的键都会执行这些,上面的那个只是为了留个示范。
::如果你在按F8的时候执行某些内容,可以把标签:0x4200放到本段EXIT后面再写上执行的命令就可以了。
:default
::如果有存在oemslic.bin文件,则尝试自动加载.
root %~d0
#if exist %~dp0oemslic.bin && %~dp0grub/slic %~dp0oemslic.bin
#if exist %~dp0SYS_MENU.LST && configfile %~dp0SYS_MENU.LST
find --set-root --devices=h makeactive --status
chainloader +1
boot
exit
:0x4300                F9
find --set-root /WUPE/IMGS/ONEKEY.IMA || chainloader --force (cd)/WUPE/IMGS/ONEKEY.IMA
map --mem /WUPE/IMGS/ONEKEY.IMA (fd0)
map --hook
rootnoverify (fd0)
chainloader +1
boot
exit
:0x4400                F10
find --set-root /WUPE/SETUPLDR.BIN
chainloader /WUPE/SETUPLDR.BIN || chainloader --force (cd)/WUPE/SETUPLDR.BIN
boot
exit


为何总是显示下图错误

[ 本帖最后由 rd268 于 2011-7-29 22:07 编辑 ]

Test.jpg (16.53 KB, 下载次数: 95)

Test.jpg

作者: mygamexxx    时间: 2011-7-30 11:01
标题: 回复 #9 rd268 的帖子
把中文注释行全部去掉。
作者: rd268    时间: 2011-7-30 15:28
原帖由 mygamexxx 于 2011-7-30 11:01 发表
把中文注释行全部去掉。


F9  F10 总是启动系统, 没有启动: [:0x4300  F9] [:0x4400  F10] 项
帮忙看看,错在哪里。

pager on
if exist timeout exit
pager off
terminal console
debug -1

clear
echo
echo -P:2320 $[0107]PRESS [F9] TO RECOVERY, [F10] TO WinPE
pause --test-key --wait=3
set /A key=*0x4CB00

clear
debug off
goto %key% || echo Default Boot.
:0x3B00  F1
:0x3C00  F2
:0x3D00  F3
:0x3E00  F4
:0x3F00  F5
:0x4000  F6
:0x4100  F7
:0x4200  F8
:0x8500  F11
:0x8600  F12

root %~d0
find --set-root --devices=h makeactive --status
chainloader +1
boot
exit

:0x4300  F9
map --mem /WUPE/IMGS/ONEKEY.IMA (fd0)   
map --hook
chainloader (fd0)/io.sys
boot
exit

:0x4400  F10
find --set-root /WUPE/SETUPLDR.BIN
chainloader /WUPE/SETUPLDR.BIN || chainloader --force (cd)/WUPE/SETUPLDR.BIN
boot
exit

[ 本帖最后由 rd268 于 2011-7-30 15:31 编辑 ]
作者: mygamexxx    时间: 2011-7-30 17:08
标题: 回复 #11 rd268 的帖子
这种形式的只能作为批处理才能正常,作为内置菜单不正常。
将上面的菜单在最前面加上一行:
!BAT
保存为文本文件格式(如名称为1.txt),放于最后分区
grldr 内置菜单
find --set-root /1.txt
command /1.txt


下面作为内置菜单可以正常。
debug -1
default 0
timeout 0
title
echo
echo  -P:2320 $[0107]PRESS [F9] TO RECOVERY, [F10] TO WinPE
set key=
pause --test-key --wait=3
set /A key=*0x4CB00
if "%key%"=="0x4300" goto 1
if "%key%"=="0x4400" goto 2
clear
chainloader (hd0,0)+1

title
clear
find --set-root /ONEKEY.IMA
map --mem /ONEKEY.IMA (fd0)
map --hook
chainloader (fd0)/io.sys

title
clear
find --set-root /WUPE/SETUPLDR.BIN
chainloader /WUPE/SETUPLDR.BIN || chainloader --force (cd)/WUPE/SETUPLDR.BIN

[ 本帖最后由 mygamexxx 于 2011-7-30 17:21 编辑 ]
作者: ali88home    时间: 2011-7-30 17:17
1.boot/grub/grldr是m大的修改内置菜单

2.boot/PRELOAD.BAT是c大修改

两个只能选择其一覆盖,如果常常修改,可以使用第二2.项目,比较方便。
旧的grldr请备份。
当你不想m大的方法时,可以恢复旧的grldr,再把boot/PRELOAD.BAT覆盖,功能一样的。

F10_PRELOAD.7z

1.16 KB, 下载次数: 38, 下载积分: 无忧币 -2

F11_PRELOAD.7z

1.16 KB, 下载次数: 29, 下载积分: 无忧币 -2

F10_grldr.7z

126.11 KB, 下载次数: 26, 下载积分: 无忧币 -2

F11_grldr.7z

126.11 KB, 下载次数: 25, 下载积分: 无忧币 -2


作者: rd268    时间: 2011-7-30 20:27
谢谢:  mygamexxx
         ali88home


测试可以启动了

[ 本帖最后由 rd268 于 2011-7-30 21:28 编辑 ]

Test.jpg (22.47 KB, 下载次数: 79)

Test.jpg

作者: ali88home    时间: 2011-7-31 11:04
标题: 回复 #14 rd268 的帖子
那个好像是内置,看看其他人有没有方法,但是可以隐藏。
作者: rd268    时间: 2011-7-31 11:47
原帖由 ali88home 于 2011-7-31 11:04 发表
那个好像是内置,看看其他人有没有方法,但是可以隐藏。


这样唯有grldr创作者才知道,谢谢!

很菜的问下: 你喜欢的热键启动方式是怎样的?
作者: ali88home    时间: 2011-7-31 16:33
标题: 回复 #16 rd268 的帖子
http://bbs.wuyou.net/forum.php?m ... ;page=11#pid2260111
我制作的,你可以去看看。

我比较喜欢第一1.蛙哥的1jf9安装,这个是先前IBM的构想。
我看到现在的一些品牌机,是用GRUB引导界面操作恢复,前面建立第二主分区切换,因为imagex定位cd比较容易。

1.1jf9_z~建立在最后FAT32主分区,可以建立修改资料方便,例如:修改密码等等资料。。。
4.1jf9k_1~建立在最后逻辑分区,必须是NTFS格式引导,Fat32格式需要PBR引导PE或*.img。当然修改资料要存储,是有一定的风险。

2.grub和5.wee引导,如果使用*.img制作一键还原恢复,这个逻辑分区是EISA隐藏,如何操作???我试着unhide打开EISA隐藏逻辑分区,没有成功,可能是操作不对,正学习中。
作者: mygamexxx    时间: 2011-8-1 17:08
EISA隐藏逻辑分区中的文件可以用find 找到啊。GHOST也可以找到吧。
我做过一个备份恢复的,不过只在隐藏分区中试过(分区ID为12)。http://bbs.wuyou.net/forum.php?mod=viewthread&tid=194499&highlight=%D1%A7%CF%B0C%B4%F3

[ 本帖最后由 mygamexxx 于 2011-8-1 17:16 编辑 ]
作者: rd268    时间: 2011-8-1 21:45
原帖由 mygamexxx 于 2011-8-1 17:08 发表
EISA隐藏逻辑分区中的文件可以用find 找到啊。GHOST也可以找到吧。
我做过一个备份恢复的,不过只在隐藏分区中试过(分区ID为12)。http://bbs.wuyou.net/forum.php?m ... ;tid=194499&highlight=%D1%A7%CF%B0C%B4%F3


谢谢分享!
作者: onezls    时间: 2012-9-8 21:25
标题: 回复 #14 rd268 的帖子
这个可以,脚本中PAUSE前每加一个ECHO 数字就会向下移一行。




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