无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 59343|回复: 174
打印 上一主题 下一主题

63S-GRUB:63个扇区的GRUB(可嵌入0磁道)【2010.06.18】

[复制链接]
跳转到指定楼层
1#
发表于 2010-2-4 09:12:59 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
2010.06.18 新版出炉,版本号升至 2.0

63s-grub-v2.0-beta1.zip (19.15 KB, 下载次数: 326)

增加 ext2fs 支持;
删去 map 命令;
新增 loadgrub 命令,可加载 grub1 的 stage2 和 grub2 的 core.img,尚不稳定,请大家多多测试;
改进了菜单系统,最多可有20个启动项;
菜单扇区格式发生了变化,如下:
    *  前 496 字节用于存放启动项,最多可容纳20个;
    *  启动项位置不再固定;
    *  两个启动项之间用2个或2个以上的空字节("00")隔开;
    *  一个启动项内的多条语句用一个空字节("00")间隔,第一条语句为标题;
    *  最后16字节的前4个字节,以二进制码的形式存放四个整数(倒计时、默认启动项、头尾颜色、菜单颜色);后面的字节保留备用。

2010.06.21
Pauly 大侠的为 63S-GRUB 编写的安装配置程序已经升级,支持新版,见 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=160886  
多谢
Pauly ~~


----------------------------------------------------------------------------------------------

63S-GRUB 是一个极度精简的 GRUB。精简的目的是将体积控制在 32256 字节(63个扇区)之内,从而可以装入硬盘0磁道,不受重新分区和格式化的影响。受限于体积,其功能比原版 GNU GRUB 大大缩水,严格来讲,已经算不上引导器,只能算是“引导器的引导器”。它的使命就是加载其它 boot loader ,再在新的 loader 中做你想做的事。

原 GRUB 代码取自 UBUNTU 9.04 ,主要改动如下:

1、底层函数基本未动;
2、功能部分进行了大幅删减,gzip 支持、网络启动、图形模式等均被去除;
3、保留了命令行(包括“自动补全”特性);
4、重新实现了一个简单的菜单系统;
5、原有命令大部分被去除,仅保留 root、rootnoverify、chainloader、boot、find;
6、新增 ntldr 命令,用来引导 ntldr/peldr/bootmgr/grldr

7、新增 loadgrub 命令,可加载 grub1 的 stage2 和 grub2 的 core.img;
8、默认支持 fat、ntfs、ext2/3/4 文件系统(还有 reiserfs 可选)。


其中,ntldr 命令和 ntfs 文件系统代码取自 GRUB4DOS 。

项目主页:http://code.google.com/p/63s-grub/
在线浏览源码:http://code.google.com/p/63s-grub/source/browse/

下载源码:svn checkout http://63s-grub.googlecode.com/svn/trunk/ 63s-grub


下载地址:http://code.google.com/p/63s-grub/downloads/list




安装方法

For Windows:
伟大的 pauly 提供了一个安装配置程序,在这里: http://bbs.wuyou.net/forum.php?mod=viewthread&tid=160886



For Linux:(以下操作有危险性,请务必谨慎!出现任何后果本人不负责。

第一步:把staeg2 写入 2~63 扇区
  1. sudo dd if=./stage2 of=/dev/sda seek=1
复制代码
如果不想覆盖硬盘第二扇区已有的配置文件,可以这样
  1. sudo dd if=./stage2 of=/dev/sda seek=2 skip=1
复制代码
staeg2 是程序主体。

第二步:把 stage1 写入 1 扇区 —— 也就是MBR扇区。
  1. sudo dd if=./stage1 of=/dev/sda bs=1 count=440
复制代码
stage1 负责加载 stage2。



试用方法

如果不想立刻安装到硬盘,想先体验一下,可用 grub4dos 加载:
  1. chainloader --force --load-segment=0 --load-offset=0x8000 --boot-cs=0 --boot-ip=0x8200 (hd0,0)/63s-grub/stage2
复制代码
可以只把 stage2 安装到硬盘,用 boot.ini 加载 stage1,也能进入 63s-grub :
  1. C:\63s-grub\stage1="63S-GRUB"
复制代码

[ 本帖最后由 PTPTPTPTPTPT 于 2010-6-22 09:44 编辑 ]
2#
 楼主| 发表于 2010-2-4 10:35:49 | 显示全部楼层
可以看作一个增强版的 grldr.mbr。比如说,目前 grldr.mbr 不支持访问子目录,grldr 必须放在分区根目录,才能被引导。而 MBR-GRUB 不会有这个问题。
回复

使用道具 举报

3#
 楼主| 发表于 2010-2-4 10:40:03 | 显示全部楼层
也就是说,grldr 可以放在任意的文件夹中,也可以用任意文件名。


3楼同学说的也不错。
原帖由 NicTense 于 2010-2-4 10:33 发表
我能想到的用途就是不怕格式化和重新分区

grldr.mbr 如果搜索不到 grldr ,就只能停在那里,没有后招。

而 mbr-grub 则可以进入命令行,通过手动输入命令 ( 如 ntldr (hd0,0)/bootmgr 之类),来启动其他引导器。

[ 本帖最后由 PTPTPTPTPTPT 于 2010-2-4 10:47 编辑 ]
回复

使用道具 举报

4#
 楼主| 发表于 2010-2-4 10:45:53 | 显示全部楼层
原帖由 NicTense 于 2010-2-4 10:33 发表
其实我觉得可以考虑另外一个方案

相当于 扩大 grldr.mbr 到63或者62个扇区,将grldr的部分功能,也就是mbrgrub要实现的功能提出来

剩下的继续以一个文件存在,如果要避免跟原来的 grldr混淆,可以换个名字

这样,分区,重新格式化,mbr也还在,还能启动

而当该文件存在时,功能也没有比原来的grldr有任何减少


基本上就是这样设想的。当然1楼贴出的 pre-stage2 还未完全实现。还需要时间  : )
回复

使用道具 举报

5#
 楼主| 发表于 2010-2-4 12:25:05 | 显示全部楼层
原帖由 NicTense 于 2010-2-4 11:14 发表
63个扇区,把最后1个或者2个用来备份怎么样,其中一个留给nt或者其他单扇区的引导系统,即grub本来就有的mbr双重启动

还有一个留给0扇区备份


恩,可以,不过这些都是后话了。目前在作 ntldr 命令,正在看 grub4dos 中的相关代码,有点晕

ntldr 做好后,功能上就差不多了。以后再逐步添加引导 syslinux、io.sys 的功能。

还需要一个安装程序。其中要包括一个装在0扇区的引导扇区,用来加载将嵌在0磁道的 pre_stage2。这些都还没有眉目,希望 pauly 能帮帮忙 :)
回复

使用道具 举报

6#
 楼主| 发表于 2010-2-8 14:42:23 | 显示全部楼层
2010.2.8更新
增加 ntldr 命令,可用来引导 ntldr 、peldr(setupldr.bin)、bootmgr 、grldr。
回复

使用道具 举报

7#
 楼主| 发表于 2010-2-25 10:54:59 | 显示全部楼层
今日更新:
增加倒计时和默认启动项相关功能,详见1楼。

第二次更新:
又考虑了下,觉得用“硬盘第63扇区”来保存配置 不太妥当。决定拿出来与 pre_stage2 合体为 63s-grub —— 这样相当于把“配置文件”内置了,修改 63s-grub 也比修改硬盘扇区更稳妥一些。
另,决定正式命名为 63S-GRUB,意为“ 63扇区的 GRUB ” 。

[ 本帖最后由 PTPTPTPTPTPT 于 2010-2-25 20:19 编辑 ]
回复

使用道具 举报

8#
 楼主| 发表于 2010-2-27 23:10:49 | 显示全部楼层
谢谢楼上支持 :)

刚刚上传了增加了菜单系统的新版本,见1楼。
回复

使用道具 举报

9#
 楼主| 发表于 2010-2-28 10:55:24 | 显示全部楼层
2010-10-28
新版本已上传,见一楼。

今天这个应该比较完善了,修正了 ntldr 的 bug,改进了菜单系统,欢迎大家测试
回复

使用道具 举报

10#
 楼主| 发表于 2010-2-28 14:26:02 | 显示全部楼层
原帖由 diwu2005 于 2010-2-28 14:16 发表
怎样把这工具写进磁盘0道?这个是很重要


这个不难,在 linux 下用 dd 命令就可以了。windows 下也可以用 dd ,或其它扇区写入工具。
等 mbr 引导扇区做好后,再一并放出

[ 本帖最后由 PTPTPTPTPTPT 于 2010-2-28 14:27 编辑 ]
回复

使用道具 举报

11#
 楼主| 发表于 2010-3-1 20:36:33 | 显示全部楼层
呵呵呵呵 ,莫急,正在搞0扇区 —— 没有引导扇区,写进 0磁道也没用啊
回复

使用道具 举报

12#
 楼主| 发表于 2010-3-1 20:37:41 | 显示全部楼层
原帖由 快雪时晴 于 2010-3-1 18:23 发表
这个和‘不点’说的要实现的微核grub是不是一个东西?


相似,不完全一样。

这里有讨论: http://bbs.znpc.net/viewthread.php?tid=5838&extra=page%3D1
回复

使用道具 举报

13#
 楼主| 发表于 2010-3-3 18:48:32 | 显示全部楼层

2010.03.03更新

有引导扇区了!详见1楼。
回复

使用道具 举报

14#
 楼主| 发表于 2010-3-4 09:05:59 | 显示全部楼层
原帖由 gzdiky 于 2010-3-4 09:01 发表
在C区容易将GRLDR 删除。我改了其他分区了。 但也只能是在根目录下。能否改路径保存在文件夹里的呢。放在文件夹里可以设置不能随便 ...


可以放在文件夹里。
回复

使用道具 举报

15#
 楼主| 发表于 2010-3-4 13:12:37 | 显示全部楼层
安装程序是 pauly 写的。已经向他建议了。
回复

使用道具 举报

16#
 楼主| 发表于 2010-3-4 21:25:12 | 显示全部楼层
太强大了!我得赶紧试试

泡利不确定,但是 pauly 很确定 :D
回复

使用道具 举报

17#
 楼主| 发表于 2010-3-4 21:52:57 | 显示全部楼层
这个。。pauly 也有点不确定啊。。。

刚试了下,用内置的 stage2 没问题。用外置的stage2,安装后不能启动。win7 、2003PE 都是这样。。。




不对,在win7下,用内置的 stage2 也不行。。。

[ 本帖最后由 PTPTPTPTPTPT 于 2010-3-4 21:57 编辑 ]
回复

使用道具 举报

18#
 楼主| 发表于 2010-3-4 23:21:05 | 显示全部楼层
原帖由 Pauly 于 2010-3-4 23:06 发表
你说的不行是什么意思,是安装失败还是安装后不能启动,还是启动后不能执行启动菜单项呢


不好意思 没说清楚,是这样,重启后,只有一个光标在左上角闪。感觉应该是 stage2 写入扇区时发生了错误。

我再试一次 (可怜的0磁道。。。被搞了又搞。。。)
回复

使用道具 举报

19#
 楼主| 发表于 2010-3-4 23:34:15 | 显示全部楼层
这次又不大一样,可能是因为我刚刚恢复了微软的MBR。具体现象是:在win7中运行 63sgrub_inst.exe ,使用内置的 stage1 和 stage2 安装,程序报说是硬盘2(我机子里还有一块硬盘),说安装成功。然而重启,就像没装过一样,直接进入 bootmgr 的菜单。
回复

使用道具 举报

20#
 楼主| 发表于 2010-3-4 23:36:56 | 显示全部楼层
菜单区没有错误。

仍旧是在 win7 中,试着向另一块硬盘安装,却成功了。另一块盘不是 win7 系统所在盘。

[ 本帖最后由 PTPTPTPTPTPT 于 2010-3-4 23:45 编辑 ]
回复

使用道具 举报

21#
 楼主| 发表于 2010-3-4 23:54:48 | 显示全部楼层
莫非 win7 保护着它所在硬盘的 MBR,不允许随便改写 ???!
回复

使用道具 举报

22#
 楼主| 发表于 2010-3-5 00:06:42 | 显示全部楼层
靠,终于明白了!应该是 63sgrub_inst.exe 把硬盘序号弄错了。

安装时,虽然选的是win7所在的硬盘,可是实际却装到另一块硬盘去了(当时还插着一块移动硬盘,共三块硬盘,给装到移动硬盘上了)

难怪老说 “将安装到硬盘2” ,C盘所在的硬盘,怎么会是 2 呢??

两外两个硬盘,选哪个都说是“第 0 硬盘”。。。



[ 本帖最后由 PTPTPTPTPTPT 于 2010-3-5 00:10 编辑 ]
回复

使用道具 举报

23#
 楼主| 发表于 2010-3-5 14:42:14 | 显示全部楼层

2010.03.05 更新:

菜单改为彩色;改进菜单显示函数,选择启动项时界面不再闪烁;显示启动项细节的快捷键改为 e 。

文件在1楼。

美化工作就先告一段落了。

接下来的任务是 加入 find 命令,可能会需要比较长的时间,敬请期待 :)

[ 本帖最后由 PTPTPTPTPTPT 于 2010-3-5 14:43 编辑 ]
回复

使用道具 举报

24#
 楼主| 发表于 2010-3-6 12:00:03 | 显示全部楼层

回复 #57 diwu2005 的帖子

chainloader (hd0,x)+1 应该就可以。 x 值得看你的具体情况。

贴一下你的分区情况看看

或者 可以在命令行里输入
chainloader (hd0,x)+1
boot
反复尝试,以确定 x 的值。
回复

使用道具 举报

25#
 楼主| 发表于 2010-3-6 17:01:10 | 显示全部楼层

回复 #59 tdq868xin 的帖子

呵呵,是的,是我 :)
回复

使用道具 举报

26#
 楼主| 发表于 2010-3-7 20:12:56 | 显示全部楼层
呵呵,谢谢鼓励!

Mac OS X 用的 EFI 吧??这个不支持 efi 的 :(
回复

使用道具 举报

27#
 楼主| 发表于 2010-3-8 17:13:09 | 显示全部楼层
原帖由 天涯海角1216 于 2010-3-8 15:41 发表
不过目前感觉63S-GRUB 的启动还有局限性,对分区引导很好,但是对文件的引导还是有不成功的情况。。。。。。。。。。


你说的不成功的情况是指??
回复

使用道具 举报

28#
 楼主| 发表于 2010-3-8 17:25:58 | 显示全部楼层

2010-03-08更新

1. 新增 find 命令,可用 --set-root 参数将搜索结果设为 root 。例如: find --set-root /GRUB4DOS/grldr
该命令只搜索(hdx,x) ,忽略(fdx)。
在指定 --set-root 的情况下,如果有多个搜索结果,会把第一个设为 root 。

2. 配置文件中增加了颜色配置信息。增加了一个 setcolor 命令,供用户尝试各种配色,以找到自己喜欢的。


文件在1楼。
回复

使用道具 举报

29#
 楼主| 发表于 2010-3-8 21:48:08 | 显示全部楼层
嗯,下个版本修正。

命令行的颜色也复原?
回复

使用道具 举报

30#
 楼主| 发表于 2010-3-8 22:35:02 | 显示全部楼层
原帖由 blithewind 于 2010-3-8 22:11 发表
搜索顺序是怎么规定的?从后到前还是反过来?


从前到后。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-13 17:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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