无忧启动论坛

标题: grub.mbr写在什么位置 [打印本页]

作者: 2011bigbarry    时间: 2012-4-5 19:57
标题: grub.mbr写在什么位置
提出这个问题,一定会有人说:写在引导扇区。
这是废话。
本人测试了一下,直接将grub.mbr全部写入物理磁盘是不行的!!
所以,提出这样一个问题:grub.mbr写入物理磁盘的时候,是不是要分段写?分哪些段?每一段写入具体的磁盘位置在什么地方?

当然,bootice是一个很好用的图形化写grub.mbr的工具。可惜bootice更新太慢,它又是内置grub代码的,不能将最新版本的grub写入磁盘。所以我想开发一个图形化工具,工具的第一步就是读取指定版本的grub.mbr,第二部将grub.mbr写入物理磁盘指定的扇区。希望有人指点。
作者: zhenfu    时间: 2012-4-6 01:31
同求,BOOTICE写入的MBR代码似乎比较老旧,一些较新的主板已经无法正常支持了。
而官方自带的写入程序似乎在WIN7上不能使用。
作者: yjq635    时间: 2012-4-6 08:57
貌似,BOOTICE可以自己找到当前目录下的grub.mbr<br /><br /><img src="attachments/20120406_b30934203cfb06ebce70PTfzfvLd5HDs.png" border="0" aid="attachimg_140340" width="359" alt="" />

不过好像提示新的版本有问题,

[ 本帖最后由 yjq635 于 2012-4-6 09:00 编辑 ]

QQ截图20120406085610.png (21.32 KB, 下载次数: 108)

QQ截图20120406085610.png

QQ截图20120406085610.png (66.69 KB, 下载次数: 104)

QQ截图20120406085610.png

作者: hhxxcx    时间: 2012-4-6 09:02
grldr.mbr不是写入的吧,应该是给其他引导程序调用的。。。
作者: 青青草    时间: 2012-4-6 09:27
BOOTICE很久没有更新了,作者好像放弃了!尤其是0.9版,出现了诸多错误,也没有更正。唉。。。。。。
作者: dvd008    时间: 2012-4-6 09:50
最好在虚拟机里写入,然后,用扇区工具,复制出来.

好像就
几百字节
作者: 不才    时间: 2012-4-6 15:51
原帖由 2011bigbarry 于 2012-4-5 19:57 发表
提出这个问题,一定会有人说:写在引导扇区。
这是废话。
本人测试了一下,直接将grub.mbr全部写入物理磁盘是不行的!!
所以,提出这样一个问题:grub.mbr写入物理磁盘的时候,是不是要分段写?分哪些段?每 ...


嘿嘿,记得时空论坛有位仁兄写过一个图形化的g4d写入工具,并提供了代码。待偶下班后回家找找放上来给你瞅瞅?
找到了,

[ 本帖最后由 不才 于 2012-4-6 18:48 编辑 ]

Grub4DOS Toolbox for Windows-0.1 中文版.rar

73.43 KB, 下载次数: 123, 下载积分: 无忧币 -2


作者: zhenfu    时间: 2012-4-6 18:06
同求,呵呵,希望楼上的代找找。
作者: 2011bigbarry    时间: 2012-4-6 18:07
麻烦楼上的楼上给个链接
作者: 2011bigbarry    时间: 2012-4-6 18:30
进一步观察发现。用bootice将grub.mbr写入磁盘后,再用bootice将mbr保存(备份成文件),发现跟grub.mbr之间有差异,尽管长度是一样的。
所以本人才有一开始提出的问题。
作者: 2011bigbarry    时间: 2012-4-6 18:32
不点,你人呢?你应该比较明白这个事情。
作者: adslceo    时间: 2012-4-6 21:52
有lianjiang 大大的这个可以选择。http://bbs.wuyou.net/forum.php?m ... 0252&highlight=
作者: zhenfu    时间: 2012-4-7 01:17
原帖由 不才 于 2012-4-6 15:51 发表


嘿嘿,记得时空论坛有位仁兄写过一个图形化的g4d写入工具,并提供了代码。待偶下班后回家找找放上来给你瞅瞅?
找到了,

仁兄的这个程序需要bootlace的支持,而bootlace是不支持WINXP以上系统的,写入会出错。似乎
作者: zhenfu    时间: 2012-4-7 01:17
而BOOTICE已经无法支持最新版的GRLDR.MBR了。
作者: zhenfu    时间: 2012-4-7 01:18
lianjiang 兄的程序不支持命令行。。
作者: 2011bigbarry    时间: 2012-4-7 10:02
原帖由 adslceo 于 2012-4-6 21:52 发表
有lianjiang 大大的这个可以选择。http://bbs.wuyou.net/forum.php?mod=viewthread&tid=170252&;highlight=

到那个网页看了一下,貌似他也是内置grub.mbr,也就是说不能指定版本的。

原文“内置grldr及grldr.mbr(10-06-09),同目录下的外置grldr及menu.lst文件优先

这里说的是外置grldr优先。没有提到外置grub.mbr是否优先。

我一开始提出的问题是想解决将自己指定的grub.mbr写入引导区。只是我在实际测试中发现,将grub.mbr直接从磁盘的物理位置0(这么说应该明白意思吧?)开始连续写入是不行的,大概是破坏了原有的分区表。

[ 本帖最后由 2011bigbarry 于 2012-4-7 10:07 编辑 ]
作者: 不才    时间: 2012-4-7 11:24
原帖由 zhenfu 于 2012-4-7 01:17 发表

仁兄的这个程序需要bootlace的支持,而bootlace是不支持WINXP以上系统的,写入会出错。似乎


嘿嘿,在xp-sp3的电脑上实际测试了一下,采用旧版的bootlace写入mbr没有问题。但新版本的确实不再支持了(提示bootlace不是一个有效的g4d文件)。
不过使用BOOTICE写入2012-03-26版本的GRLDR.MBR貌似没有问题啊,起码提示说已修改成功鸟。

[ 本帖最后由 不才 于 2012-4-7 12:10 编辑 ]
作者: zqywult    时间: 2012-4-7 15:38
不是grub.mbr吧,而应是grldr.mbr吧???
写入grldr.mbr是写入了硬盘的0磁道(占用0磁道前面的18个扇区,而传统的MBR只是占用了一个扇区)。

可以看看这个:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=139082
grldr写入mbr到底是写在硬盘的哪里??

[ 本帖最后由 zqywult 于 2012-4-7 16:20 编辑 ]
作者: monitor20    时间: 2012-4-7 22:59
写入新版的GRLDR.MBR后,再备份0磁盘0~17扇区到文件(应该是整整9K),再比较与GRLDR.MBR的差别(要用16进制比较),如果只是起始位置441~510字节的内容不同,那就好办了!(此处为主分区表跟磁盘签名的位置) 给其他计算机部署的时候,备份此处的内容,然后直接写入GRLDR.MBR,最后再将备份的分区表跟磁盘签名恢复到原位置即可!
作者: sratlf    时间: 2012-4-7 23:08
标题: 回复 #19 monitor20 的帖子
bootice有这功能  没那么麻烦

test.png (50.03 KB, 下载次数: 105)

test.png

作者: monitor20    时间: 2012-4-7 23:16
跟其他MBR一样,GRLDR.MBR的部署是不能动分区表跟磁盘签名的,直接将MBR写入磁盘显然是不可行的(会造成分区表跟磁盘签名的破坏,分区表重要性无须多言,而磁盘签名对于VISTA&WIN7的启动至关重要!)。DISKRW的最新DOS版本支持对扇区内部进行操作,但很遗憾,Win32版本的DISKRW却不支持此操作(备份扇区内部指定位置数据),石头版主介绍过用 DD for Windows 来在Win32环境下对扇区内部操作,虽然有点麻烦,但也是个折中的办法,大家搜索找找看!
作者: monitor20    时间: 2012-4-7 23:24
原帖由 sratlf 于 2012-4-7 23:08 发表
bootice有这功能  没那么麻烦

不过我想将其他MBR写入磁盘,比如XORLDR,键鼠操作是很方便,但我想调用命令直接写入磁盘,尽量减少与用户的交互;虽然BootICE支持命令行参数,可似乎并未提供保持分区表跟磁盘签名不变的参数,用AUTO参数的话会改变分区表……所以这几天到处查资料找办法。

[ 本帖最后由 monitor20 于 2012-4-8 06:29 编辑 ]
作者: monitor20    时间: 2012-4-7 23:47
参考了已故的井底蛙版主的1JF9K的部署方法(备份0扇区到1扇区,然后将1JF9K.BIN写入3扇区,最后用DSPTW修改0扇区的3处位置,实现将引导代码跳转到3扇区去读取、执行),对0扇区的操作根本没有动过分区表!我们可以参考这一办法,比如将GRLDR.MBR写入磁盘,(用16进制编辑器)先将GRLDR.MBR的前512个字节剪切到新文件(如0.BIN),然后将剩下的8.5K部分保存(如1.BIN),部署的时候,将1.BIN从1扇区开始写入,再用DSPTW将0.BIN的16进制数据中前440字节写入0扇区(受DSPTW限制,要多次、分段写入,大概得28次才能HEX完)即可。
作者: monitor20    时间: 2012-4-8 06:56
最方便直接的方法,用Chenall大侠的grubinit(最新版本为1.3,在索引贴中的外部命令中找),几乎可以说是最官方、最正规的方法了。
作者: monitor20    时间: 2012-4-8 07:00
或者是用DSPTW备份出MBR(如0.MBR),然后调用BOOTLACE将引导代码写入0.MBR,最后再将新MBR写入磁盘扇区即可,貌似官方文档中介绍的就是如此!
作者: monitor20    时间: 2012-4-8 07:09
GRUB4DOS的引导代码好处理,工具多,方法也多,但其他的引导代码,比如XORLDR的工具貌似就不能用带参运行的方法直接部署到引导扇区(Pauly没给出命令行参数,貌似不支持?),这就给自动部署造成不便了,这几天正打算为thtf的一键还原作个引导记录修复工具,所以对此关注多些^_^
作者: 2011bigbarry    时间: 2012-4-8 13:15
原帖由 zqywult 于 2012-4-7 15:38 发表
不是grub.mbr吧,而应是grldr.mbr吧???
写入grldr.mbr是写入了硬盘的0磁道(占用0磁道前面的18个扇区,而传统的MBR只是占用了一个扇区)。

可以看看这个:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=1390 ...

不好意思,应该是grldr.mbr。没注意,写错了。
作者: 2011bigbarry    时间: 2012-4-8 13:22
原帖由 monitor20 于 2012-4-7 23:47 发表
参考了已故的井底蛙版主的1JF9K的部署方法(备份0扇区到1扇区,然后将1JF9K.BIN写入3扇区,最后用DSPTW修改0扇区的3处位置,实现将引导代码跳转到3扇区去读取、执行),对0扇区的操作根本没有动过分区表!我们可以参考 ...

大概看明白了。意思是说将grldr.mbr分成两个部分:
第一部分:前512字节
第二部分:剩下的字节。
写入那一步,没看明白,为什么不将512字节全部写入呢?
我查看了bootice写入磁盘后的磁盘数据。磁盘数据显示:前面的512字节最后部分(440以后)跟grldr.mbr的前面512字节最后部分(440以后)内容是一样的。

[ 本帖最后由 2011bigbarry 于 2012-4-8 13:38 编辑 ]
作者: zqywult    时间: 2012-4-8 15:08
原帖由 monitor20 于 2012-4-7 23:24 发表

不过我想将其他MBR写入磁盘,比如XORLDR,键鼠操作是很方便,但我想调用命令直接写入磁盘,尽量减少与用户的交互;虽然BootICE支持命令行参数,可似乎并未提供保持分区表跟磁盘签名不变的参数,用AUTO参数的话会改变 ...


请看#20的截图:勾选“保留分区表和磁盘签名不变” !

[ 本帖最后由 zqywult 于 2012-4-8 15:10 编辑 ]
作者: zqywult    时间: 2012-4-8 16:04
回复#28:
“..........................
我查看了bootice写入磁盘后的磁盘数据。磁盘数据显示:前面的512字节最后部分(440以后)跟grldr.mbr的前面512字节最后部分(440以后)内容是一样的。”

您确认吗???
bootice写入磁盘后的磁盘数据?------是bootice写入grldr.mbr后的吗?是否如#20截图那样勾选了“保留分区表和磁盘签名不变”??

前面的512字节最后部分(440以后)是您的分区表跟磁盘签名数据,如果您写入grldr.mbr时,像#20截图那样勾选了“保留分区表和磁盘签名不变”,应该与grldr.mbr的前面512字节最后部分(440以后)内容是不一样的呀??

您如果您写入grldr.mbr时,像#20截图那样勾选了“保留分区表和磁盘签名不变”,可以用WinHEX查看对比bootice写入grldr.mbr 之前 和 写入grldr.mbr 之后的前512字节最后部分(440以后),应该是是一样的,即这部分并没有写入grldr.mbr 的内容。

[ 本帖最后由 zqywult 于 2012-4-8 16:06 编辑 ]
作者: 2011bigbarry    时间: 2012-4-9 20:00
原帖由 zqywult 于 2012-4-8 16:04 发表
回复#28:
“..........................
我查看了bootice写入磁盘后的磁盘数据。磁盘数据显示:前面的512字节最后部分(440以后)跟grldr.mbr的前面512字节最后部分(440以后)内容是一样的。”

您确认吗 ...


仔细看了一下,还是有不同之处。
但是,扇区1应该写入什么内容呢。扇区1的内容跟文件的0x1FF之后的内容不同。
作者: 小豪diao    时间: 2012-4-14 12:03
直接用grub的bootlace命令写入mbr就可以选择
作者: chenall    时间: 2012-4-14 13:10
这个贴子放了好几天了,似乎还没找到答案。
其实答案就在grub4dos的readme中。花5分钟去看一下就可以了。可是很多人不喜欢看readme,很多技术性的问题大多在readme中有。




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