无忧启动论坛

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

如何控制两个磁区并写入MBR

[复制链接]
跳转到指定楼层
1#
发表于 2007-7-17 00:36:44 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
例如已F5为热键
没按F5会迈入WINDOWSXP
而按了F5会迈入自己做的RECOVERY

WINDOWSXP跟RECOVERY分别为两个磁区且都是主分割

GRUB可以搭配IMG控制达成这目地
SPFDISK可以使用隐藏同类主分割并制做选单达成这目地
那如果在不使用GRUB跟SPFDSIK
还有哪个程式能这么做的

就ASUS笔记型的还原系统那样
或是acer的还原系统那样

请高手们告诉我…
42#
发表于 2007-7-25 20:39:36 | 只看该作者
不错的交流!顶一下:)
回复

使用道具 举报

41#
 楼主| 发表于 2007-7-23 01:00:08 | 只看该作者
还是不行…
我起初是输入 grub.exe --config-file=(hd0,0)/sue/menu.lst
结果出现
=================
PCI Parity Error!
Press F1 To Continune,F2 To Reboot
=================
而在改为不读取menu.lst的 grub.exe --config-file="parttype (hd0,0) 0xde;hide (hd0,0);reboot"
结果问题还是一样。
我昨天实机用了一台 但按了F1可正常执行。
但今还拿一台主机来修 情况一样
出现上述情况
但这次更惨 按了 F1之后连一行写入都没有写入
昨天是用INTEL PD的核心
这次是用AMD ATHLON做测试的:Q
是grub.exe的bug吗?因为我下载了7月20那版也一样情况。

或都是IDE硬碟跟SATA硬碟有关联
因vm模疑大都是ide的
而我实机做的都是sata 的硬碟,跟这有没有问题??

[ 本帖最后由 eskimo 于 2007-7-23 01:41 AM 编辑 ]
回复

使用道具 举报

40#
 楼主| 发表于 2007-7-23 00:59:36 | 只看该作者
还是不行…
我起初是输入 grub.exe --config-file=(hd0,0)/sue/menu.lst
结果出现
=================
PCI Parity Error!
Press F1 To Continune,F2 To Reboot
=================
而在改为不读取menu.lst的 grub.exe --config-file="parttype (hd0,0) 0xde;hide (hd0,0);reboot"
结果问题还是一样。
我昨天实机用了一台 但按了F1可正常执行。
但今还拿一台主机来修 情况一样
出现上述情况
但这次更惨 按了 F1之后连一行写入都没有写入
昨天是用INTEL PD的核心
这次是用AMD ATHLON做测试的:Q
是grub.exe的bug吗?因为我下载了7月20那版也一样情况。
回复

使用道具 举报

39#
发表于 2007-7-22 09:44:51 | 只看该作者
如果你不想使用配置菜单
通过参数把菜单内容打进去
grub.exe --config-file="parttype (hd0,0) 0xde;hide (hd0,0);reboot"
这就ok 了
你下载了grub4dos读说明文件啊
这些都在说明中有用法的
回复

使用道具 举报

38#
发表于 2007-7-22 09:40:03 | 只看该作者
原帖由 eskimo 于 2007-7-22 09:35 AM 发表
#ind --set-root /Sue/Sue.img
好奇怪,我这样打竟然还可以正常执行
已为是正确的,谢谢指正
我在实机上测试当还原完毕后
去读取grub.exe load menu.lst
结果他都会先显示
=============== ...


...

#开头表示注释啊...
就是不执行那行了....


grub配置菜单的方式
grub.exe --config-file=(hd0,0)/boot/grub/hd0.lst
以上是一个例子
你根据情况改成你的菜单的路径
如果grub.exe不带任何参数执行
就使用grub.exe中的内置菜单
回复

使用道具 举报

37#
 楼主| 发表于 2007-7-22 09:35:01 | 只看该作者
#ind --set-root /Sue/Sue.img
好奇怪,我这样打竟然还可以正常执行
已为是正确的,谢谢指正
我在实机上测试当还原完毕后
去读取grub.exe load menu.lst
结果他都会先显示
=================
PCI Parity Error!
Press F1 To Continune,F2 To Reboot
=================
真奇怪按了F1之后
menu.lst就可以正常执行到完毕
在虚疑机上测试都正常
在实机上就出现那行!
那是什么意思呢?
回复

使用道具 举报

36#
发表于 2007-7-22 06:27:59 | 只看该作者
原帖由 eskimo 于 2007-7-22 12:02 AM 发表


试验了一下,结果发现
写入grub.exe相容性比grub.exe load menu.lst差
还是先用用grub.exe load menu.lst 目前测试都没发生过错误。
开了这个主题,谢谢hytmtet帮我解决grldr的一些小细结跟所有问题。
...

title Start SystemRecovery
unhide (hd0,0)
hide (hd0,1)
parttype (hd0,0) 0x0b
makeactive (hd0,0)
#ind --set-root /Sue/Sue.img
map --mem /Sue/Sue.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1

你确认红色部分不是笔误???
命令应该是
find --set-root /目标文件路径及文件名
你怎么写成#ind了...


给你看一个我的例子
title    MAP-MEM 纯DOS
find --set-root /boot/PUREDOS.gz
map --mem /boot/PUREDOS.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

makeactive可以那么用的
makeactive
parttype
hide
unhide
chainloader
等命令都可以省略设备名
当省略设备名时
是对root进行操作

例如
find --set-root /ntldr
parttype 0xde
hide
find --set-root /io.sys
unhide
parttype 0x0b
以上命令
将查找到的第一个根目录下存在ntldr文件的分区隐藏,更改id
将查找到的第一个根目录下存在io.sys文件的分区取消隐藏,更改id


你也可以指定路径
makeactive (hdx,y)
hide (hdx,y)
.........
回复

使用道具 举报

35#
 楼主| 发表于 2007-7-22 02:26:06 | 只看该作者
请教一下,grldr可以改成ntldr让xp启动读取吗不要经过boot.ini
我写的方法如下
title Start shit..........
#ind --set-root /boot/qa.img
map --mem /boot/qa.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1

但确显示了 Error 19: Cannot mount selected partition
但用boot.ini 编写 c:\grldr="start dos tool"
确可以正常迈入,这是为什么呢?
回复

使用道具 举报

34#
 楼主| 发表于 2007-7-22 00:02:36 | 只看该作者
原帖由 hytmtet 于 2007-7-21 11:29 AM 发表



同样
使用grubmenu.exe
我在上面的楼层给你发过的附件里面有
grubmenu.exe import grub.exe menu.lst


试验了一下,结果发现
写入grub.exe相容性比grub.exe load menu.lst差
还是先用用grub.exe load menu.lst 目前测试都没发生过错误。
开了这个主题,谢谢hytmtet帮我解决grldr的一些小细结跟所有问题。

我把我目前完成的还原系统白化文写出来

第一主分区 dos主分区(放置gho档案和ima档案) 第二主分区 winxp主分区 第三逻辑分区 放data

当按下hot-key 时
隐藏第二主分区并将启动设置为第一主分区 第一主分区硬碟id从de 改为 0b 并读取ima档案跑批次档执行还原的动作“还原完后解除第二主分区隐藏并将第一主分区硬碟id改为de”。
(将启动设置于第一主分区原因,在按下hot-key时如果遇到被强制重开机,因第二主分区被隐藏和第一主分区档案清楚显示)
这时让dos下的autoexec.bat 启动grub.exe 解除第二主分区隐藏并将第一主分区硬碟id改为de
回复

使用道具 举报

33#
发表于 2007-7-21 20:35:39 | 只看该作者
谢谢楼上两位的指点!解决了,fdisk /mbr后,用这里的工具解决了:lolhttp://bbs.wwwfox.net/viewthread.php?tid=104817&extra=page%3D3
回复

使用道具 举报

32#
发表于 2007-7-21 11:29:21 | 只看该作者
原帖由 eskimo 于 2007-7-21 10:51 AM 发表
大至上我目前的问题都解决了!

但我还是有一个东西没有搞起来…

menu.lst 写迈grub.exe里



同样
使用grubmenu.exe
我在上面的楼层给你发过的附件里面有
grubmenu.exe import grub.exe menu.lst
回复

使用道具 举报

31#
 楼主| 发表于 2007-7-21 10:51:23 | 只看该作者
大至上我目前的问题都解决了!

但我还是有一个东西没有搞起来…

menu.lst 写迈grub.exe里

如果要把第二主分区引导 移过来 第一主分区引导 (不要启动)
是 makeactive (hd0,0) 这断吗?

因为结合img来读取第一主分区的gho档
而引导第一主分区是因为万一在还原到一半中断时
电脑重新开机不必按任何键就可直接迈入dos并
在把第一主分区引导改为第二主分区并更改第一主分区的硬碟id DE
makeactive (hd0,1)  是这样吗?
我的grldr
title Start SystemRecovery
unhide (hd0,0)
hide (hd0,1)
parttype (hd0,0) 0x0b
makeactive (hd0,0)
#ind --set-root /Sue/Sue.img
map --mem /Sue/Sue.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1

[ 本帖最后由 eskimo 于 2007-7-21 11:36 AM 编辑 ]
回复

使用道具 举报

30#
发表于 2007-7-21 10:01:59 | 只看该作者
原帖由 网上飞鹰 于 2007-7-21 08:21 AM 发表

Grub4Dos只保留了一个扇区的空间来存储原来的MBR,若原来的MBR超过一扇区,则只有第一扇区被保存,因此不能用原来的MBR来启动。”



是这样的~
但是
MS以前的MBR
也就是dos+win9x+nt+2000+xp+2k3系统
都是用的同一个mbr
也就是这些系统
通过FDISK /MBR后
不影响启动的

而这个mbr是绝对不会超过1个扇区的
严格的说只有446字节
一个扇区是512字节
第一扇区的内容
MBR+HDP+结尾标志
分别是446字节+64字节分区表+结束标志55 AA
总共512字节



你可以用磁盘编辑工具打开第二扇区
看看和标准的mbr一样不

这时标准的fdisk生成的mbr
33C08ED0BC007....
你就对前面几个就行啦```
回复

使用道具 举报

29#
发表于 2007-7-21 08:21:04 | 只看该作者
原帖由 hytmtet 于 2007-7-20 10:37 PM 发表



那估计你没备份好原始mbr?



去下载个aefdisk

或者fdisk

运行aefdisk /mbr

或者fdisk /mbr

这时重启
应该直接进windows了吧
再用grubinst_gui安装mbr

试过用PM、diskgen、hdd恢复默认的mbr即直接启动windows,然后再分别用grubinst_gui、bootlace.com安装还是没有解决,aefdisk和fdisk倒没试过,我想可能也解决不了问题,我看过grubdos的教程,其中有这么一段“Grub4Dos只保留了一个扇区的空间来存储原来的MBR,若原来的MBR超过一扇区,则只有第一扇区被保存,因此不能用原来的MBR来启动。”我想可能是这个原因引起不能默认优先引导原来的MBR,如果是这样的话,又是如何解决?希望楼上几位高手再帮看看:)

Snap1.jpg (43.14 KB, 下载次数: 53)

Snap1.jpg
回复

使用道具 举报

28#
发表于 2007-7-21 06:29:05 | 只看该作者
建议你直接把GRLDR和GRUB.EXE都放置到DOS分区上
毕竟你要隐藏的是dos分区
可以防止误删

通过按下热键
从grldr启动
grldr内置菜单

title UnHide Dos Partition And Start Recovery
find --set-root /dospart.flg
unhide
parttype 0x0b
chainloader /io.sys


这样, 就启动进dos了
通过autoexec.bat中设置自动还原
再批处理末尾加上一条命令
grub.exe
这样
恢复完之后
再次启动grub

grub.exe的内置菜单见楼上


注意, grldr的内置菜单一定要设个密码
防止不小心按了热键, 直接自动还原了!
回复

使用道具 举报

27#
发表于 2007-7-21 06:21:23 | 只看该作者
原帖由 eskimo 于 2007-7-20 10:52 PM 发表


hytmtet大大,我忘了说一件事 在启动xp时 不使用不load grldr选单控制
只有在按hot-key时才要有动作!:L
我目前是用这个方法制作recovery
我目前的疑问是 如果按了hot-key他启动grldr引导dos第一主分区 ...



我给的哪个菜单只是在备份或者恢复完系统之后
重启时运行一次
下次启动时就不需要按热键, 直接启动xp

当然
你想省掉这一步
就需要dos下运行grub.exe了
grub.exe内置菜单

title Hide Dos Partition And Reboot
find --set-root /dospart.flg
parttype 0xde
hide
reboot
回复

使用道具 举报

26#
 楼主| 发表于 2007-7-20 22:52:54 | 只看该作者
原帖由 hytmtet 于 2007-7-20 01:21 PM 发表
这个啊````
很多方案的

例如可以使用grub4dos的mbr
默认启动原活动分区上的系统
按下热键启动grldr
或者使用ms的mbr从ntldr来启动grldr
grldr内置菜单如下

title 1. 显现hd0,0分区, 恢复正常id, 并启 ...


hytmtet大大,我忘了说一件事 在启动xp时 不使用不load grldr选单控制
只有在按hot-key时才要有动作!:L
我目前是用这个方法制作recovery
我目前的疑问是 如果按了hot-key他启动grldr引导dos第一主分区而xp第二主分区隐藏后
recovery跑完之后load grub.exe引导menu.lst 改硬碟id并自动重启
在xp不使用ltldr引导grldr和选单只有迈入dos主分区的项次(因时间只设0秒)跟在只有按hot-key才启动grldr的情况下,红色部份有更好的方法吗?
因如果在dos程序都完毕后在load 根目录的grldr 那不就一直返复在recovery:L
回复

使用道具 举报

25#
发表于 2007-7-20 22:37:25 | 只看该作者
原帖由 网上飞鹰 于 2007-7-20 10:01 PM 发表

谢谢指点!我下载了最版的grubutil和bootlace.com按您的的指点去试,还是解决不了,没办法,只好直接通过grub引导启动xp了



那估计你没备份好原始mbr?



去下载个aefdisk

或者fdisk

运行aefdisk /mbr

或者fdisk /mbr

这时重启
应该直接进windows了吧
再用grubinst_gui安装mbr
回复

使用道具 举报

24#
发表于 2007-7-20 22:01:30 | 只看该作者
原帖由 hytmtet 于 2007-7-20 08:20 PM 发表



去gna上下载最新的grubutil
最新版本是07年07月16日的

再不行你试试命令行下用grubinst写mbr试试
再不行去wikihome下载最新的grub4dos
07年7月18日的
用压缩包里面的bootlace.com到dos下去写mbr

谢谢指点!我下载了最版的grubutil和bootlace.com按您的的指点去试,还是解决不了,没办法,只好直接通过grub引导启动xp了:L
回复

使用道具 举报

23#
发表于 2007-7-20 20:20:48 | 只看该作者
原帖由 网上飞鹰 于 2007-7-20 01:27 PM 发表
都是高手!在这里请教个问题,我划出了一个主分区作为启动PE的隐藏分区,用GRLDR引导,grubinst_gui.exe在win下安装GRLDR到mbr,设按空格键启动GRLDR,优先引导原来的xp-mbr,启动时出现提示按空格激活GRLDR,过 ...



去gna上下载最新的grubutil
最新版本是07年07月16日的

再不行你试试命令行下用grubinst写mbr试试
再不行去wikihome下载最新的grub4dos
07年7月18日的
用压缩包里面的bootlace.com到dos下去写mbr
回复

使用道具 举报

22#
发表于 2007-7-20 13:27:03 | 只看该作者
都是高手!在这里请教个问题,我划出了一个主分区作为启动PE的隐藏分区,用GRLDR引导,grubinst_gui.exe在win下安装GRLDR到mbr,设按空格键启动GRLDR,优先引导原来的xp-mbr,启动时出现提示按空格激活GRLDR,过了指定的等待时间,不是引导xp-mbr,而是引导GRLDR,在虚拟机中用同样的方法测试,却可以过了等待的时间,优先引导xp,在真机却不行,不知问题出现在哪里?下面是安装mbr的插图,请各位高手帮看看

Snap1.jpg (47.29 KB, 下载次数: 37)

Snap1.jpg
回复

使用道具 举报

21#
发表于 2007-7-20 13:27:00 | 只看该作者
以上的rootnoverify这条命令
最好是用find --set-root来代替
这样安全性有保障`
不然你插入移动硬盘
从移动硬盘启动执行这个菜单时````就把移动硬盘上的分区给隐藏更改id了`

例如
find --set-root /这里输入你判断目标分区的条件

例如find --set-root /ntldr
查找分区根目录下的ntldr
如果存在ntldr则将此分区设置为root
回复

使用道具 举报

20#
发表于 2007-7-20 13:21:41 | 只看该作者
这个啊````
很多方案的

例如可以使用grub4dos的mbr
默认启动原活动分区上的系统
按下热键启动grldr
或者使用ms的mbr从ntldr来启动grldr
grldr内置菜单如下

title 1. 显现hd0,0分区, 恢复正常id, 并启动进入dos
rootnoverify (hd0,0)
unhide
parttype 0x0b
chainloader /io.sys

title 2. 隐藏hd0,0分区, 更改id为DE, 并启动hd0,1上的ntldr
rootnoverify (hd0,0)
parttype 0xDE
hide
rootnoverify (hd0,1)
chainloader /ntldr
回复

使用道具 举报

19#
 楼主| 发表于 2007-7-20 11:02:27 | 只看该作者
原帖由 hytmtet 於 2007-7-20 05:36 AM 發表



當然有了....
grubmenu
去下載grubutil工具包
裡面有將grub安裝到mbr的gui程序
grubmenu將menu.lst等菜單文件整合到grldr或者grub.exe中

你為啥要用grub.exe呢
只用grldr就夠用了
DOS下運行grub ...


我目前做法是 第一主分区放 dos 要还原用的 第二主分区放 winxp 第三逻辑分区放data
在系统异常才用到dos 所以我第一主分区都是变更id并隐藏。
等到有需要的时候按了hot-key找寻在放在根目录第一主分区的grldr迈入dos并隐藏了第二主分区(ntfs)
之后自动还原了第二主分区等还原完毕后利用 grub.exe 改格式id并隐藏重新开机启动第二主分区winxp。
在我用红字画起来部份具体还有更好的方法可行吗?
回复

使用道具 举报

18#
发表于 2007-7-20 05:54:28 | 只看该作者
2007-07-18  21:49           195,781 grldrori
2007-07-16  15:44            19,583 grubmenu.exe
2007-07-20  05:37               467 menu.lst
2007-07-03  08:30                30 导出GRLDR中的菜单到menu.txt文件中.bat
2007-07-09  10:10               152 将menu.lst整合到grldr中.cmd


这时楼上附件中包含的文件
其中grldrori为最新版grub4dos中chinese目录中的grldr改名而来
grubmenu.exe也为07-16版的grubutil中解压出来的,也是最新版


编辑好自己的menu.lst
运行一遍 将menu.lst整合到grldr中.cmd饥渴
然后可以运行一遍
导出GRLDR中的菜单到menu.txt文件中.bat
查看导出的menu.txt
和menu.lst是否相符```
一般来讲
导入时menu.lst空行会被清除掉``
所以导出的menu.txt中没有空行`
回复

使用道具 举报

17#
发表于 2007-7-20 05:49:48 | 只看该作者
简单的说明下吧
无论是grldr还是grub.exe
都内置菜单

我导出一个内置菜单给你瞧瞧
这是刚刚下载最新的grldr
7月18日的grub4dos

内置菜单
default 0
timeout 1
fallback 1

title find /menu.lst
        find --set-root --ignore-floppies /menu.lst
        configfile /menu.lst

title find /boot/grub/menu.lst
        fallback 2
        find --set-root --ignore-floppies /boot/grub/menu.lst
        configfile /boot/grub/menu.lst

title find /grub/menu.lst
        fallback 3
        find --set-root --ignore-floppies /grub/menu.lst
        configfile /grub/menu.lst

title commandline
        commandline

title reboot
        reboot

title halt
        halt




默认等待一秒
默认搜索所有硬盘分区根目录的/menu.lst
如果搜索不到, 则搜索所有硬盘根目录/boot/grub/menu.lst
再搜索不倒, 则搜索/boot/menu.lst
如果还没有menu.lst菜单文件
则进入命令行


我是比较喜欢菜单内置的
因为速度快
不用从外部去查找菜单并加载
就是修改起来麻烦点
不过你可以做一个批处理
我已经做好了
原版的grldr文件改名为grldrori
修改过的文件名为grldr
具有 隐藏 / 只读 /系统 三大属性


grldr内置菜单控制.rar (103.04 KB, 下载次数: 27)
回复

使用道具 举报

16#
发表于 2007-7-20 05:36:44 | 只看该作者
原帖由 eskimo 于 2007-7-20 01:04 AM 发表


自己搞出来了!
刚自己用autoexec.bat搭配grub.exe这支软件去读取menu.lst
可以正常更改id并隐藏dos主分区
想请教一下,有办法把写入的menu.lst 的东西导入grub.exe里面吗?
不要让他在去load menu.lst ...



当然有了....
grubmenu
去下载grubutil工具包
里面有将grub安装到mbr的gui程序
grubmenu将menu.lst等菜单文件整合到grldr或者grub.exe中

你为啥要用grub.exe呢
只用grldr就够用了
DOS下运行grub.exe 兼容性没有从mbr中直接从grldr中启动好
回复

使用道具 举报

15#
发表于 2007-7-20 05:29:35 | 只看该作者
去grub4dos官方网站查阅资料即可。
回复

使用道具 举报

14#
 楼主| 发表于 2007-7-20 01:04:23 | 只看该作者
原帖由 eskimo 于 2007-7-19 11:32 PM 发表


但这是透过了grub4dos所控制出来的
这有办法写入mbr吗?
刚试了一下确实可把主分区fat32改了id
但我确迈不了dos!
因为我控制是按了F5之后就启动grub迈入第一分区的DOS里
我可以用GURB4DOS在迈入DOS第 ...


自己搞出来了!
刚自己用autoexec.bat搭配grub.exe这支软件去读取menu.lst
可以正常更改id并隐藏dos主分区
想请教一下,有办法把写入的menu.lst 的东西导入grub.exe里面吗?
不要让他在去load menu.lst
我f5引导的在第一分区的grldr而grub.exe跟menu.lst我用一个资料夹放入
在自己的电脑测试没问题,但在别台电脑的相容性不知高不高。会不会读取错误(例如我按了F5之后他去读取menu.lst呢)
有grub.exe的相关资料吗?希望有大大可提供!
谢谢指教。

[ 本帖最后由 eskimo 于 2007-7-20 01:12 AM 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2026-1-25 06:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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