无忧启动论坛

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

【求助】对于带有隐藏100MB分区的WIN7怎么引导启动菜单

[复制链接]
跳转到指定楼层
1#
发表于 2010-7-19 15:02:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于带有隐藏100MB分区的WIN7怎么引导启动菜单

经过研究 带有100MB隐藏分区的 windows7, BOOT文件夹里没有引导文件,这些文件应该是在那个隐藏分区里,现在问题就是我可以通过BCDEDIT写WINDOWS7的启动菜单 但是 运行 我自己做 的 DOS系统时 提示 找不到grub.mbr 这是怎么回事,我怎么才能正常引导我的DOS系统。求高手告诉我。万分感谢。
2#
 楼主| 发表于 2010-7-19 15:19:11 | 只看该作者
那个1001MB的隐藏分区,叫 保留分区,是WIN7安装时自动生成的!不过这个安全的举措,给引导GRUB带来了困难。求高手解答!谢谢。
回复

使用道具 举报

3#
发表于 2010-7-19 16:01:51 | 只看该作者
如果是用Win7的引导器bootmgr来引导Grub4dos的话要用grldr.mbr来引导grldr的(下载的grub4dos压缩包带有这个文件),也就是说将grldr.mbr作为引导文件写入BCD。

[ 本帖最后由 yjstone 于 2010-7-19 16:06 编辑 ]

评分

参与人数 1无忧币 +1 收起 理由
yuanyong911 + 1 谢谢您,再帮我看看

查看全部评分

回复

使用道具 举报

4#
 楼主| 发表于 2010-7-19 17:12:52 | 只看该作者
很感谢
我把grldr.mbr存放在C盘(系统盘)根目录。可是开机选择“我的DOS工具箱”却提示找不到grldr.mbr,是不是我要把这个文件拷贝在那个隐藏分区?还是怎么做呢!!求您帮我看看谢谢。
回复

使用道具 举报

5#
发表于 2010-7-19 17:31:10 | 只看该作者
在磁盘管理里给那个隐藏分区分配个盘符,把grub4dos的文件拷进去,然后把盘符删除
回复

使用道具 举报

6#
发表于 2010-7-19 17:46:48 | 只看该作者
你写清楚一点吧,你写入BCD引导菜单的“我的DOS工具箱”的内容是什么?
回复

使用道具 举报

7#
 楼主| 发表于 2010-7-19 19:06:52 | 只看该作者
感谢两位老大,你们帮我看看!你们是我的救命稻草。我想实现的就是全自动实现这段代码。不要有手动参与!
下面的代码在XP VISTA 和 没有100mb保留分区的系统上都能正常安装 提示找不到grldr.mbr

rem 安装DOS

SET TP=%~dp0
SET TP=%TP:~0,-1%
SET BAKPATH=%SYSTEMDRIVE%\BOOT\BCDBAK.BAK
SET INFO=DOS工具箱
SET MBRP=\grldr.mbr
set timeout=10
IF NOT EXIST "%BAKPATH%" start /wait %systemroot%\system32\bcdedit.exe /export "%BAKPATH%"
for /f "tokens=2 delims={}" %%i in ('%systemroot%\system32\bcdedit.exe /create /d "%INFO%" /application bootsector') do SET CLASSID=%%i
SET CLASSID={%CLASSID%}
ECHO %CLASSID%>%SYSTEMDRIVE%\BOOT\dosBox.ini
%systemroot%\system32\bcdedit.exe /set %CLASSID% device boot >nul
%systemroot%\system32\bcdedit.exe /set %CLASSID% path %MBRP% >nul
%systemroot%\system32\bcdedit.exe /displayorder %CLASSID% /addlast >nul
%systemroot%\system32\bcdedit.exe /timeout %timeout% >nul

copy /y .\grldr. %systemdrive%\
copy /y .\grldr.mbr %systemdrive%\
copy /y .\dos.iso %systemdrive%\
attrib +s +h %systemdrive%\grldr.
attrib +s +h %systemdrive%\grldr.mbr
attrib +s +h %systemdrive%\dos.iso
md %systemdrive%\boot
md %systemdrive%\boot\grub
copy /y .\bootlace.com %systemdrive%\boot\grub
copy /y .\hmload.com %systemdrive%\boot\grub
copy /y .\config.sys %systemdrive%\boot\grub
copy /y .\grub.exe %systemdrive%\boot\grub
attrib +s +h %systemdrive%\boot
回复

使用道具 举报

8#
发表于 2010-7-19 19:24:38 | 只看该作者
貌似这里有误
%systemroot%\system32\bcdedit.exe /set %CLASSID% device boot >nul
回复

使用道具 举报

9#
发表于 2010-7-19 19:28:34 | 只看该作者
嘿嘿,楼上的,“下面的代码在XP VISTA 和 没有100mb保留分区的系统上都能正常安装 提示找不到grldr.mbr”做何解?与“带有隐藏100MB分区的WIN7”有何关系?偶的语文不太好,烦请解说一下。
晕倒,碰上个插队的,只好改一下了:“楼上的”改为“楼上的楼上”或“楼主”。

[ 本帖最后由 不才 于 2010-7-19 19:30 编辑 ]
回复

使用道具 举报

10#
 楼主| 发表于 2010-7-19 19:34:55 | 只看该作者
代码在XP VISTA 和 没有100mb保留分区的系统上都能正常安装
在带有隐藏100MB分区的WIN7系统上安装 就提示 找不到grldr.mbr
因为带有100MB 隐藏分区的WIN7的BOOT文件夹 在那100MB隐藏分区里呢。所以我的代码就会提示 出错 找不到那个文件 因为我的grldr.mbr在C盘(系统盘)的根目录而不是在那个隐藏分区的根目录。
回复

使用道具 举报

11#
 楼主| 发表于 2010-7-19 19:38:30 | 只看该作者
yaojy 您好,很感谢您的帮助,可是这条代码只是获取 CLASSID用的。(启动菜单的唯一ID号)
而且我可以在WINDOWS7的启动菜单下建立 相应的启动项目“DOS工具箱”只是回车之后 就提示 找不到 grldr.mbr。

应该是grldr.mbr文件路径的问题,可是我怎么通过批处理 实现把这些文件拷贝到那个“隐藏分区”中呢?
回复

使用道具 举报

12#
发表于 2010-7-19 19:46:23 | 只看该作者

回复 #11 yuanyong911 的帖子

你没看仔细吧,那行代码不是获取ID的。
我认为无需将grldr.mbr等放进“保留分区”,修改你那个批处理即可正确加载grldr.mbr,
bcdedit.exe的具体用法,请搜索并花点心思研究一下

评分

参与人数 1无忧币 +1 收起 理由
yuanyong911 + 1 谢谢您!

查看全部评分

回复

使用道具 举报

13#
 楼主| 发表于 2010-7-19 19:52:33 | 只看该作者
谢谢yaojy,关键就是我不知道怎么可正确加载grldr.mbr,因为我的这段代码在没有“保留分区”的系统中可以正常引导。可是有“保留分区”就失败了!求您帮我看看!万分感谢!
回复

使用道具 举报

14#
发表于 2010-7-19 19:56:19 | 只看该作者
%systemroot%\system32\bcdedit.exe /set %CLASSID% device boot >nul
将上面的boot改成下面的代码试试(保留双引号)
"partition=c:"

评分

参与人数 1无忧币 +1 收起 理由
yuanyong911 + 1 非常感谢!

查看全部评分

回复

使用道具 举报

15#
 楼主| 发表于 2010-7-19 20:01:47 | 只看该作者
好的。谢谢您。只是我的这个工具是安装给很多朋友的。如果朋友的WIN7不是安装在C盘 可不可以 将 "partition=c:" 改为 "partition=%systemdrive%"
因为我没在家所以没有办法进行具体测试!希望您的办法可以解决我的困扰。脑袋疼了一天了!多亏有大侠在!谢了!回家去测试明天有问题我再麻烦您!
回复

使用道具 举报

16#
发表于 2010-7-19 20:04:28 | 只看该作者
在本论坛搜索wimcmd,下载放到与本批处理相同的目录或系统目录或其它目录再指定下面wincmd的执行路径,并请确保硬盘所有的可见分区根目录没有bootmgr这个文件,因为这个文件是判断隐藏分区的条件,再执行下面的批处理试试。蓝色的代码是我修改和添加的,其余是你原来的。


rem 安装DOS

SET TP=%~dp0
SET TP=%TP:~0,-1%
SET BAKPATH=%SYSTEMDRIVE%\BOOT\BCDBAK.BAK
SET INFO=DOS工具箱
SET MBRP=\grldr.mbr
set timeout=10
IF NOT EXIST "%BAKPATH%" start /wait %systemroot%\system32\bcdedit.exe /export "%BAKPATH%"
for /f "tokens=2 delims={}" %%i in ('%systemroot%\system32\bcdedit.exe /create /d "%INFO%" /application bootsector') do SET CLASSID=%%i
SET CLASSID={%CLASSID%}
ECHO %CLASSID%>%SYSTEMDRIVE%\BOOT\dosBox.ini
%systemroot%\system32\bcdedit.exe /set %CLASSID% device boot >nul
%systemroot%\system32\bcdedit.exe /set %CLASSID% path %MBRP% >nul
%systemroot%\system32\bcdedit.exe /displayorder %CLASSID% /addlast >nul
%systemroot%\system32\bcdedit.exe /timeout %timeout% >nul


wincmd.exe show -1:-1
for %%i in (z,y,x,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c) do if exist %%i:\bootmgr set drv=%%i
copy /y .\grldr.mbr %drv%:\
copy /y .\grldr. %systemdrive%\
copy /y .\dos.iso %systemdrive%\
attrib +s +h %systemdrive%\grldr.
attrib +s +h %systemdrive%\grldr.mbr
attrib +s +h %systemdrive%\dos.iso
md %systemdrive%\boot
md %systemdrive%\boot\grub
copy /y .\bootlace.com %systemdrive%\boot\grub
copy /y .\hmload.com %systemdrive%\boot\grub
copy /y .\config.sys %systemdrive%\boot\grub
copy /y .\grub.exe %systemdrive%\boot\grub
attrib +s +h %systemdrive%\boot

如果想把DOS工具箱复制到隐藏分区,将上面复制文件的代码的变量%systemdrive%改为%drv%即可。

[ 本帖最后由 yjstone 于 2010-7-20 00:22 编辑 ]

评分

参与人数 1无忧币 +1 收起 理由
yuanyong911 + 1 原创内容

查看全部评分

回复

使用道具 举报

17#
 楼主| 发表于 2010-7-19 20:09:43 | 只看该作者
好的!非常感谢yjstone!回家去测试!成功不成功明天一定会来报告结果!非常感谢!!
回复

使用道具 举报

18#
发表于 2010-7-19 20:13:29 | 只看该作者
原帖由 yuanyong911 于 2010-7-19 20:01 发表
好的。谢谢您。只是我的这个工具是安装给很多朋友的。如果朋友的WIN7不是安装在C盘 可不可以 将 "partition=c:" 改为 "partition=%systemdrive%"
因为我没在家所以没有办法进行具体测试!希望您的办法可以解决 ...

嘿嘿,如yaojy 兄所述,问题当在“bcdedit.exe /set %CLASSID% device boot >nul”,你的变通方法也可行,改为“bcdedit.exe /set %CLASSID% device partition=%systemdrive% >nul”即可。

评分

参与人数 1无忧币 +1 收起 理由
yuanyong911 + 1 谢谢老大!

查看全部评分

回复

使用道具 举报

19#
 楼主| 发表于 2010-7-19 20:16:35 | 只看该作者
不才 老大都来帮我了!谢谢这里的好心高手!!非常感动!回家尽快测试!
回复

使用道具 举报

20#
发表于 2010-7-19 20:16:43 | 只看该作者
还有#14的方法更高明,建议采用,当然改为 "partition=%systemdrive%" 适用性更强,这次是你更高明了,哈哈!

[ 本帖最后由 yjstone 于 2010-7-19 20:43 编辑 ]
回复

使用道具 举报

21#
 楼主| 发表于 2010-7-19 20:25:04 | 只看该作者
好的 谢谢老大!我回家试试!激动中!
回复

使用道具 举报

22#
发表于 2010-7-19 23:30:53 | 只看该作者
WIN7会自动加载boot.ini

boot.ini内容:
[boot loader]
timeout=30
default=c:\grldr.mbr
[operating systems]
c:\grldr.mbr="Start Grub4DOS"

把grldr.mbr和grldr放在系统盘的根目录下

没有测试,感觉是可以成功的。若不成功把这2个文件放在保留分区根目录一定会成功的。

测试后请说明一下。

评分

参与人数 1无忧币 +1 收起 理由
yuanyong911 + 1 谢谢您。

查看全部评分

回复

使用道具 举报

23#
 楼主| 发表于 2010-7-20 09:36:37 | 只看该作者
经过昨晚的测试

yaojy 的方法成功将这个问题解决掉了。非常感谢!@

修改前
%systemroot%\system32\bcdedit.exe /set %CLASSID% device boot >nul
修改后
%systemroot%\system32\bcdedit.exe /set %CLASSID% device "partition=%systemdrive%" >nul

成功!!很感谢这里的老大们!终于成功了!
回复

使用道具 举报

24#
 楼主| 发表于 2010-7-20 09:38:51 | 只看该作者
ggmm888
很感谢您,我只有晚上回家才能测试。测试后我回复在这里!
回复

使用道具 举报

25#
 楼主| 发表于 2010-7-21 14:30:17 | 只看该作者
ggmm888 经过测试您的建议是可行的!谢谢!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 07:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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