无忧启动论坛

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

【转】MBR 嵌入微型 grub (2010年12月19日更新,不点大师加菜单)

[复制链接]
跳转到指定楼层
1#
发表于 2010-6-15 05:31:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文和所有文件来自时空论坛“不点”大师!在此致谢!

这个 grldr 的头部不再是 16 扇区,而是 2 个扇区。只有这样,体积才可能减小到 63 扇区以内。

现在说说这个新的 GRLDR 精简版的结构:

1。第一扇区是为了放置在 MBR 上的。你只需要将开头的 440 个字节复制到 MBR 就可以了。分区表当然不能被破坏,这和以前的做法是一样的。

2。第二扇区仍然是为了备份先前的 MBR,这个也与以前一样,不多说了。

从第三扇区,一直到文件结尾,就是放置在 MBR 上的相应扇区上的。也就是说,MBR 为第一扇区,紧接着是第二扇区(放置先前的 MBR 的备份),再接着,就是第三扇区,放置的当然应该是 GRLDR 的第三扇区以后的全部扇区(总共放置的扇区数不超过 63 个,因为 GRLDR 的长度就在 63 扇区以内)。

大家先在虚拟机下测试,以免有什么 bug 把你的硬盘破坏掉,那我可不负责。

然后,再说说 grldr 文件结尾处的 echo weeeee 命令。这仅仅是一条测试用的命令。你在这里放置任何命令都可以的。grldr 启动之后,首先就要执行这里的命令序列。是的,很多命令都可以放在这里,不同的命令之间,用回车或者换行分隔都可以。

如果你放置的是如下两条命令:
复制内容到剪贴板代码:
find --set-root /grldr
/grldr
那么启动时会自动寻找 grldr,如果找到,就启动 grldr。当然这个 grldr 就是常规的、非精简版的 grldr 了。而精简版的 grldr 是不能用这种方法来启动的。


一个附带的特性,这次把 grldr 放在任意深的目录下是可能的了: 复制内容到剪贴板 代码:find --set-root /boot/grub/grldr
/boot/grub/grldr

得益于 find 的查找功能。好多人以前希望 grldr 不放在根目录,那时候是不可能做到的。现在可以了。而且也支持 ext4 分区的 grldr 文件(当然任何别的文件也一样)的查找了。


需要说明,精简版不支持 title 等命令,也不支持 && 和 || 逻辑符号。其实只支持 root, find, command 这三条内部命令。其他的都是外部命令。例如,grldr,grub.exe,ntldr,bootmgr,vmlinuz,io.sys,kernel.sys,echo 等,统统都是外部命令。


提醒一下:不要安装在 U 盘的 MBR 上。有很多主板对于 U 盘不使用 LBA 模式。而我们这个精简版的 GRLDR 只支持 LBA 模式,而完全不支持 CHS 模式。所以,放在 U 盘就不行了。当然,如果你知道你的主板 BIOS 在你的 U 盘上确实提供了 LBA 支持,那倒是可以试一试的。


新版本到 http://nufans.net/grub4dos/wee/ 底下

原文地址:  
http://bbs.znpc.net/viewthread.php?tid=5838&extra=page%3D1
--------------------2010年12月19日更新-----------------------------

地址:http://nufans.net/grub4dos/wee/
菜单如下:
(最大支持20个菜单条,恳请各位测试反馈)

title                            WDC-500G-wee
clear
title                            01  WinXP
root (hd0,1)
+1
title                            02  WIN7
root (hd0,0)
+1
title                            03  D_PAN
root (hd0,4)
+1
title                            04  E_PAN
root (hd0,5)
+1
title                            05  XORLDR
52628941+1
title                            06  GRLDR
2104000+490
title                            07  FBINST.MBR
557134253+1
title                            08  PLoP Boot Manager
2103900+100
title                            09  GMY-GHOST
/memdisk /ghost.img img raw
title                            10  SYSLINUX
find --set-root /boot/IBM.ICO
+1
title                            11  SSXF-WinPE
find --set-root /boot/SSXFLDR
/boot/SSXFLDR
title                            12  SSHY-WINPE
find --set-root /boot/SSHYLDR
/boot/SSHYLDR
title                            13  VISTA
find --set-root /boot/IBM.ICO
/boot/bootmgr
title                            14  SKTQB
2101000+480
title                            15  WIN NT/2003/XP
find --set-root /NTLDR
/NTLDR
title                            16  Win7/VISTA
find --set-root /BOOTMGR
/BOOTMGR
title                            17  WinPE.ISO
/memdisk /winpe.iso iso raw


注意:
1.不要用chainloader 命令,仿上述命令即可!
2.也请各位测试

title                            03  D_PAN
rootnoverify (hd0,4)
+1
title                            04  E_PAN
rootnoverify (hd0,5)
+1

即 rootnoverify 命令是否有问题?








3. 【改造】可以将U盘可见分区的BPB复制到MBR,可能提高安装到U盘的启动兼容性。
如果U盘启动电脑成功,则不需复制BPB如果U盘启动失败,再试试这个方法。欢迎大家测试反馈!
将可见分区(最好是FAT分区)的引导扇区从偏移0X02到偏移0X59止,复制到MBR的0X02到偏移0X59后再按不点大师指导的方法稍作修改即可!
【不点大师指正:BPB 是促使某些 USB 的主板识别 USB 设备的。有些主板需要 BPB。而有些主板,不喜欢 BPB,有了 BPB,它反而会失败了。另外,既然是欺骗主板的,那么 BPB 是不是就要做得很像呢?比如说,位于 0x1C 处的四字节的“hidden sectors”(隐藏扇区数)域,应该清零,才算是一个合法的软盘引导扇区。在第一扇区上的 BPB,其实就是模仿软盘。同时,位于 0x0E 处的两字节的“reserved sectors”(保留扇区数),应该指向第一分区的 FAT 表的开头,此时第一分区最好也应该是 FAT 格式的,这样更容易欺骗成功。通常,第一分区起始于扇区号 63。隐藏扇区数,加上保留扇区数,就是 FAT 表的起始扇区的号码。所以,很容易算出来。那么,位于 MBR 上的 BPB 中的隐藏扇区数,加上保留扇区数,也应该等于 FAT 表的起始扇区号才算完美。不过,有时候(隐藏扇区数和保留扇区数)两者加起来超过了 2 个字节,那就没办法了,没法写入保留扇区数中了,因为保留扇区数只有两个字节的空间。这时,你可以随便设置一个保留扇区数,不过,应该至少是 64(也就是十六进制的 0x40)。而前面已经解释过了,MBR 上的隐藏扇区数应该是 00 00 00 00,只有这样才算一个完全的欺骗。但是,欺骗得完全,不一定能提高启动的成功率。这就要靠实践来证实了。




4. 【应用之绝对扇区启动】
将某文件写入绝对扇区,如:plpbt.bin,位置是8388000扇区,大小约85个扇区
菜单写入:command (hd0)8388000+85    (注意command后空一格)
即可从本机启动plpbt.bin。。。目的是加载USB启动

【其他】若想启动grldr完整版也可以,类似:
command (hd0)X+Y                                         X是grldr的绝对扇区位置,Y grldr占用扇区数
目的是系统或分区损坏,从绝对扇区启动加以维护。。




  
请大家测试反馈,谢谢!


















[ 本帖最后由 天涯海角1216 于 2010-12-21 14:13 编辑 ]

WDC-500G-wee_20101219.rar

18.42 KB, 下载次数: 243, 下载积分: 无忧币 -2

用BOOTICE恢复,勾选“保留磁盘签名和分区表不变”切记!

memdisk.rar

12.68 KB, 下载次数: 193, 下载积分: 无忧币 -2

2#
 楼主| 发表于 2010-6-15 05:32:12 | 只看该作者
留空,等待反馈!。。。。。。。。。。。


你还可以将分区PBR备份为:c.bin(1个扇区即可),放在根目录
用:
find --set-root /c.bin
/c.bin

即可成功启动该分区


find --set-root /boot/IBM.ICO
+1


也可以启动该分区!
find --set-root /boot/IBM.ICO
是定位分区的!



[ 本帖最后由 天涯海角1216 于 2010-6-15 06:29 编辑 ]
回复

使用道具 举报

3#
发表于 2010-6-15 06:39:23 | 只看该作者
学习中~
find --set-root /c.bin
/c.bin
上面的第二句是否等价于chainloader /c.bin?另外把grub嵌入mbr是否不再需要外置的grldr了?与其它写隐藏扇区的软件(如某些linux)冲突可能性较大吧
回复

使用道具 举报

4#
 楼主| 发表于 2010-6-15 09:03:45 | 只看该作者

回复 #3 jxzhzcf 的帖子

是的!
可以直接启动文件或分区PBR,支持子目录查找和支持 ext4 分区的 grldr 文件(当然任何别的文件也一样)的查找了
回复

使用道具 举报

5#
发表于 2010-6-15 09:15:07 | 只看该作者
很想知道假如全新安装XP的话会不会覆盖掉嵌入的微型Grub
回复

使用道具 举报

6#
 楼主| 发表于 2010-6-15 09:18:24 | 只看该作者

回复 #5 sratlf 的帖子

如果是GHOST,则不会覆盖掉嵌入的微型Grub,
如果是安装版的,则会覆盖掉嵌入的微型Grub的第一扇区。。
回复

使用道具 举报

7#
发表于 2010-6-15 09:22:16 | 只看该作者
很不错的建议啊,值得一试的,先支持一下了啊。
回复

使用道具 举报

8#
发表于 2010-6-15 09:22:33 | 只看该作者

回复 #6 天涯海角1216 的帖子

ghost我不担心,担心的就是安装版的,每次安装安装版XP后都要重写MBR,这个要是不受安装版XP的影响就好了
回复

使用道具 举报

9#
发表于 2010-6-15 09:33:18 | 只看该作者
谢谢版主回答。

ghost软件在镜像to分区与分区to分区的过程中,应该不会修改MBR吧。这个微型 grub 是否专为找不到外置grldr时设计的?如果我没有用微型 grub,而是完整版的grub,并且安装在了MBR。那么只要在两个分区各放上一个grldr是否也能避免启动grub失败?

微型 grub与完整版grub的关系怎样?
回复

使用道具 举报

10#
发表于 2010-6-15 09:38:46 | 只看该作者
天涯海角1216 老师不断提供新知识,收藏学习
回复

使用道具 举报

11#
 楼主| 发表于 2010-6-15 09:41:29 | 只看该作者

回复 #9 jxzhzcf 的帖子

不是!
其微型grub是安装到mbr上,它的mbr是专为微型grub使用,若0扇区被修改,同样无法启动此grub,其他mbr也是一样!

原来的grub安装到mbr,占用18个扇区,只是能够搜索grldr,其本身不能启动分区或文件,而此微型grub则具有启动分区和文件的功能了!
回复

使用道具 举报

12#
发表于 2010-6-15 10:11:53 | 只看该作者
这个63扇区的grldr用在PXE上不错,可以引导grldr/ntldr/bootmgr/pxelinux/...,看成是引导的引导
但目前不支持菜单,这很难办。
回复

使用道具 举报

13#
发表于 2010-6-15 11:24:10 | 只看该作者
mark,不点V5啊,感谢楼主转载。
回复

使用道具 举报

14#
发表于 2010-6-15 14:12:44 | 只看该作者
今天居然发现ghost32使用不当会改MBR,由于内容与本帖无关,另发新帖,请各位老师指点
新帖地址:http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
回复

使用道具 举报

15#
发表于 2010-6-15 15:52:01 | 只看该作者
时空论坛的原帖“不点”提出微型grub后不久,时空论坛PT版主就做了一个63S-GRUB,并在无忧发布,见http://bbs.wuyou.net/forum.php?m ... highlight=63%2Bgrub,Pauly 为其制作了一个 63S-GRUB 安装设置程序,见:http://bbs.wuyou.net/forum.php?m ... highlight=63%2Bgrub
天涯能否将现在发布的与之做个对比?让我等菜鸟能更容易理解和应用,谢谢!
回复

使用道具 举报

16#
发表于 2010-6-15 16:49:38 | 只看该作者
用 Pauly的 BOOTICE 能带参数直接安装吗?如果BOOTICE带参数恢复比较安全,怕不小心把分区表搞坏了。
回复

使用道具 举报

17#
发表于 2010-6-15 17:00:55 | 只看该作者

回复 #11 天涯海角1216 的帖子

谢谢,理解了。这样等于有了双保险,有grldr时,进普通模式,没有grldr时,进mini模式,仍旧能启动系统。
回复

使用道具 举报

18#
 楼主| 发表于 2010-6-15 17:38:40 | 只看该作者

回复 #16 混合 的帖子

不放心的话,可以先备份MBR到U盘,再用BOOTICE写入就可以了!
回复

使用道具 举报

19#
 楼主| 发表于 2010-6-15 17:40:09 | 只看该作者

回复 #15 tdq868xin 的帖子

我使用结果要比 63S-GRUB要好,启动系统和分区都很成功!
缺憾就是无选择菜单。。。。
回复

使用道具 举报

20#
发表于 2010-6-15 20:24:44 | 只看该作者
原帖由 天涯海角1216 于 2010-6-15 05:31 发表
复制内容到剪贴板代码:
find --set-root /grub.exe
/grub.exe
find --set-root /grldr
/grldr
find --set-root /ntldr
/ntldr
find --set-root /bootmgr
/bootmgr
...


修改这部分内容只能用WinHex之类工具打开GRLDR修改吗
回复

使用道具 举报

21#
 楼主| 发表于 2010-6-15 20:55:57 | 只看该作者

回复 #20 33445566 的帖子

是的!
我是在文本编辑后,用 WINHEX 写入的 !
回复

使用道具 举报

22#
发表于 2010-6-15 21:39:14 | 只看该作者
楼主,如果用第一个附件怎么安装,从来没搞过,完全白痴了。
回复

使用道具 举报

23#
 楼主| 发表于 2010-6-15 21:48:52 | 只看该作者

回复 #22 tdq868xin 的帖子

将里面的 grldr 第一扇区除分区表外写入硬盘MBR,再从第三扇区开始复制并写入硬盘第三扇区开始处!
回复

使用道具 举报

24#
 楼主| 发表于 2010-6-15 22:10:09 | 只看该作者

回复 #22 tdq868xin 的帖子

因为其大小不是512字节的整数倍,所以BOOTICE会拒绝写入。。。

我将其写入硬盘,加上菜单再备份出来,一定是512字节的整数倍了,所以才可以用BOOTICE写入硬盘了。
回复

使用道具 举报

25#
发表于 2010-6-15 22:11:48 | 只看该作者
我还以为是linux那种用命令的方式呢
0x7850开始的菜单就自己加弄了。
谢谢。
回复

使用道具 举报

26#
发表于 2010-6-16 00:44:26 | 只看该作者
标记一下,留着研究。
回复

使用道具 举报

27#
发表于 2010-6-16 08:17:52 | 只看该作者
没有菜单显示,应用上缩水不少。
回复

使用道具 举报

28#
发表于 2010-6-16 11:17:14 | 只看该作者
这个要静下心来慢慢看
回复

使用道具 举报

29#
 楼主| 发表于 2010-6-20 05:33:21 | 只看该作者
6月20日更新,欢迎测试反馈!
回复

使用道具 举报

30#
发表于 2010-6-20 11:39:43 | 只看该作者
原帖由 <i>天涯海角1216</i> 于 2010-6-15 21:48 发表
将里面的 grldr 第一扇区除分区表外写入硬盘MBR,再从第三扇区开始复制并写入硬盘第三扇区开始处!
<br />

原帖由 <i>天涯海角1216</i> 于 2010-6-15 22:10 发表
因为其大小不是512字节的整数倍,所以BOOTICE会拒绝写入。。。<br />
<br />
我将其写入硬盘,加上菜单再备份出来,一定是512字节的整数倍了,所以才可以用BOOTICE写入硬盘了。
<br />

比对了一下6月20号的bin和原版mbr,今天又了解不少MBR知识,特别是那个复制BPB
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 21:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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