无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5109|回复: 19
打印 上一主题 下一主题

想实现双热键启动最后分区

[复制链接]
跳转到指定楼层
1#
发表于 2011-7-25 21:10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
目的:开机显示 "PRESS [F9] TO RECOVERY,[F11] TO WinPE"
按 F9 直接启动最后磁盘分区下 ONEKEY.IMA
按 F11 从最后磁盘分区引导启动
1秒后自动启动 Windows

有经验的老师,分享下制作方法。
2#
 楼主| 发表于 2011-7-26 13:40:04 | 只看该作者
等 待 中 . . .
回复

使用道具 举报

3#
发表于 2011-7-26 14:02:25 | 只看该作者
回复

使用道具 举报

4#
 楼主| 发表于 2011-7-26 18:52:02 | 只看该作者
原帖由 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"
回复

使用道具 举报

5#
发表于 2011-7-27 10:40:31 | 只看该作者

回复 #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 编辑 ]
回复

使用道具 举报

6#
 楼主| 发表于 2011-7-27 20:55:58 | 只看该作者
原帖由 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, 下载次数: 111)

TEST.jpg
回复

使用道具 举报

7#
发表于 2011-7-28 18:04:48 | 只看该作者
想实现以下图的功能是:
[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 编辑 ]
回复

使用道具 举报

8#
发表于 2011-7-29 08:45:05 | 只看该作者

回复 #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 编辑 ]
回复

使用道具 举报

9#
 楼主| 发表于 2011-7-29 19:40:43 | 只看该作者
原帖由 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, 下载次数: 85)

Test.jpg
回复

使用道具 举报

10#
发表于 2011-7-30 11:01:24 | 只看该作者

回复 #9 rd268 的帖子

把中文注释行全部去掉。
回复

使用道具 举报

11#
 楼主| 发表于 2011-7-30 15:28:52 | 只看该作者
原帖由 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 编辑 ]
回复

使用道具 举报

12#
发表于 2011-7-30 17:08:30 | 只看该作者

回复 #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 编辑 ]
回复

使用道具 举报

13#
发表于 2011-7-30 17:17:29 | 只看该作者
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

回复

使用道具 举报

14#
 楼主| 发表于 2011-7-30 20:27:33 | 只看该作者
谢谢:  mygamexxx
         ali88home


测试可以启动了

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

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

Test.jpg
回复

使用道具 举报

15#
发表于 2011-7-31 11:04:17 | 只看该作者

回复 #14 rd268 的帖子

那个好像是内置,看看其他人有没有方法,但是可以隐藏。
回复

使用道具 举报

16#
 楼主| 发表于 2011-7-31 11:47:28 | 只看该作者
原帖由 ali88home 于 2011-7-31 11:04 发表
那个好像是内置,看看其他人有没有方法,但是可以隐藏。


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

很菜的问下: 你喜欢的热键启动方式是怎样的?
回复

使用道具 举报

17#
发表于 2011-7-31 16:33:20 | 只看该作者

回复 #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隐藏逻辑分区,没有成功,可能是操作不对,正学习中。
回复

使用道具 举报

18#
发表于 2011-8-1 17:08:06 | 只看该作者
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 编辑 ]
回复

使用道具 举报

19#
 楼主| 发表于 2011-8-1 21:45:12 | 只看该作者
原帖由 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


谢谢分享!
回复

使用道具 举报

20#
发表于 2012-9-8 21:25:15 | 只看该作者

回复 #14 rd268 的帖子

这个可以,脚本中PAUSE前每加一个ECHO 数字就会向下移一行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-5 09:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表