zy_sunshine 发表于 2010-2-24 16:33:24

你说的是装完MagicLinux后再重装Windows,把ML的mbr启动项搞没了是吧?

我已经有一个备份恢复mbr的模块了,但是恢复mbr这块很危险,最后我也没加上...

关于这种情况,我考虑在下一个版本加上一个自动搜索MagicLinux安装分区,然后在Grub4Dos启动项中添加进去:_)
不过这要和MI相配合。

zy_sunshine 发表于 2010-2-24 17:00:43

title                First Linux
find --set-root /boot/grub/menu.lst
configfile /boot/grub/menu.lst你将这个块描述放入C:\menu.lst中,启动时选择Frist Linux
这个是你硬盘上的第一个Linux,如果你只安装了Magic 应该就是了

KDE 发表于 2010-2-25 09:17:29

原帖由 zy_sunshine 于 2010-2-24 17:00 发表 http://www.linuxfans.org/bbs/images/common/back.gif
title                First Linux
find --set-root /boot/grub/menu.lst
configfile /boot/grub/menu.lst你将这个块描述放入C:\menu.lst中,启动时选择Frist Linux
这个是你硬盘上的第一个Linux,如果你只安装了Magic 应该就是了 ...

问题是 GRUB4DOS 能识别的文件系统非常有限,作者主要面向windows 用户,所以把这部分功能精简掉了,这导致它根本搜索不到新文件系统里的这些文件,所以这个功能仅限 WINDOWS/DOS。谁能说服作者增加对 LINUX 用户的支持就好了。

zy_sunshine 发表于 2010-2-25 10:56:54

http://grub4dos.sourceforge.net/wiki/index.php/Features

这是官方的feature列表,里面有说到
filesystems supported: FAT, FAT32, NTFS, ext2, ext3, ext4

但是我没有试过ext4,但是其他的几种我试过都是支持的。而且好像也支持xfs,其他的文件系统我也没有用过因此也没测试。

KDE 发表于 2010-2-25 11:57:30

reiserfs 似乎不支持,因为搜索不到。

zy_sunshine 发表于 2010-3-6 12:57:33

rc3发布喽,修改了好多地方,也不知道有没有新的bug...

zy_sunshine 发表于 2010-4-16 08:25:48

好长时间没人说有bug了,那就final了啊

zy_sunshine 发表于 2010-4-22 18:25:33

rc4下载
程序 http://www.linuxfans.org/bbs/images/attachicons/rar.gif magic_win-0.2.0rc4-1mgc.rar (664.21 KB)
源码 http://www.linuxfans.org/bbs/images/attachicons/rar.gif magic_win-0.2.0rc4-1mgc.src.rar (649.67 KB)
    准备final,但是最近看C++ 手痒痒,程序全部用类实现了,其中也用了一点模板... 复杂容器和iterator到处是,也用了多线程和mutex锁,所以不知道能不能测试通过。

    我在Vista下测试的,程序开始不能运行,因为缺少vs2008运行库,这个也就是Win下的运行库版本不对应的bug了,哈哈。

如果出现"应用程序并行配置错误",请在这下载运行时库安装。

[ 本帖最后由 zy_sunshine 于 2010-4-22 18:26 编辑 ]

imnoqiao 发表于 2010-4-23 22:51:38

这个怎么用啊 ,我下载了magic linux 2.1 正式版 另外我现在是xp 系统 怎么使用这个硬盘安装工具啊 ?
哪里有教程啊?:-D

另外 硬盘分区都是 NTFS 格式的 ,没有fat32 的 ,也可以吗?

zy_sunshine 发表于 2010-4-24 09:26:20

我测试了vista是正常的。
按照一楼帖下载最新版。只要可以运行就可以,接下来看help文件就明白了。
ntfs,fat32都可以。
如果xp不能运行而且安装了微软的运行库也不行,则换成rc3以下的试试。

[ 本帖最后由 zy_sunshine 于 2010-4-24 09:28 编辑 ]

tinybit 发表于 2010-5-8 14:55:59

今天通过雅虎搜索到这里了,关键字 grub4dos。感谢雅虎。

雅虎我一般是不用的。但最近一个月以来,发现 google 越来越差劲了,于是尝试了雅虎。

多年来,在 google 的关键字 grub4dos 搜索中从来见不到 magic linux 的踪影。

用关键字 grub4dos 进行搜索,三个搜索引擎 “百度,雅虎,谷歌” 对比,谷歌报告的网页数量最少。不会是谷歌有意割断 grub4dos 与 (国内)Linux 的联系吧?准备逐步弃用谷歌。

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

言归正传。感谢各位高手,通过你们的努力,grub4dos在magiclinux中获得了真正的应用。

grub4dos 的内核,采用的是 gnu grub legacy。后来又被一些高人打上了 ext3 和 ext4 的补丁。

grub4dos通过grldr启动的机理是这样的:首先,MBR 上的 grldr 引导代码获得控制。这部分代码很小,只有 18K。这段代码的任务就是全盘搜索 grldr 文件。它会搜索各个硬盘、各个分区的根目录下的 grldr 文件,载入之后,就成功进入 grub 环境了。注意,搜索过程所支持的分区类型很少,只有 FAT12/16/32/NTFS/ext2/ext3是支持的。ext4 似乎是不支持的。但是,进入 grub 环境之后,原来的 grub legacy 所支持的文件系统,grub4dos 也全都支持,而且增加了 ext3 和 ext4 的支持。所以,你可以把 grldr 文件放置在任何一个微软分区以及 ext2/ext3 分区,但不能放置在 ext4 分区,以及别的 Linux分区。较新版本的 grldr 会首先执行 preset-menu,也就是内置于 grldr 程序尾部的菜单。

通过 boot.ini 来加载的 grldr 其实是加载了 grldr 的开头部分的 16 个扇区而已。这 16 个扇区的功能,与放置在 MBR 上的 18 个扇区的功能基本上一样,都是全盘搜索 grldr,加载并执行。

通过win7以及vista的 bootmgr来加载的 grldr.mbr 也是一样。如果你要想搜索别的不同于 grldr 的文件名,那就需要更改 grldr.mbr以及 grldr 开头 16 扇区中有关 grldr 的字符串。大写小写的 grldr 名字都得作出相应更改。而 MBR 上的18扇区也是同理,里面的 grldr 字符串都要更换成你想要的名字。名字必须符合 8.3 格式(文件名最多8个字符,扩展名最多3个字符)。这个用 hexedit 查看就容易弄明白。windows 下有更改 grldr 名字的程序,搜一搜就可以找到。

grldr 文件的结构。它是 16 扇区的头部 +pre_stage2 构成。很简单的。刚才解释了,16 扇区的头部,其功能主要就是用来搜索 grldr 自己的。而 pre_stage2 则是 gnu grub 的内核。如此而已。为什么头部必须是 16 扇区呢?这是因为微软的 NTLDR 只能加载16扇区。虽然 BOOT.INI 中指定了 C:\GRLDR="grub4dos",但是NTLDR并不把GRLDR全部加载到内存,而是只能加载16扇区的头部。所以,头部的 16扇区空间是很紧张的。不是我们不愿意支持 LINUX 下的各种文件系统的加载,而是根本不可能在 16 扇区中完成这个任务。FAT12/16占据一个扇区,FAT32 也占据一个扇区,NTFS占据4个扇区(由此可见,NTFS的设计很垃圾),ext2/ext3 又占据一个扇区。再加上其他处理代码,就已经满满的 16 扇区了,无法再挤进任何一个文件系统的支持了。头部的代码全都是用汇编语言编写,很高效很紧凑,所以基本无法再改进了。

相应地,grub.exe 也一样,是 头部+pre_stage2。不过 grub.exe 的头部的长度就不是 16 扇区了,而是随着版本的不同而会变化的。

可以阅读 grub4dos 中的 readme 文件。另外,网上还可以搜到很多文档。

由于身体状况不佳,本人不再维护 grub4dos 了。所幸仍然有 bean 和 chenall 在做维护和管理工作。

--------

另外,我想补充一点个人的观点。任何事物都不能做到完美。应该灵活地看待一些问题。

比如说,grub 在搜索 grldr 的算法中,不支持 reiserfs,也不支持 ext4。如果认为这很严重,那么就会得出 “grub4dos 不可用” 的结论。但如果换个思路,就觉得这问题没那么严重。真正大量使用的,其实只有少数几个文件系统。若干年前,我也是 Linux 的一员,我也知道,当时的发行版,默认就用 ext2,别的都不是默认的。后来,默认的才改成 ext3。现在只不过又成了 ext4 罢了。退一步说,即便是 reiser,也不要紧,因为启动过程很容易失败(由于 BIOS 的各种各样的 BUG 而失败),发行版的安装过程一般都会创建一个单独的 boot 分区。这个分区的物理扇区区域应该是靠前的,以便躲过 BIOS 的 bug,提高启动的成功率。制作的这个 boot 分区,往往是很小的,只有 100M。对于这样的专门用于 boot 的分区来说,有必要用 reiser 吗?显然,ext2 已经绰绰有余,足够了。甚至,为了提高兼容性,让 windows 也能方便访问这个 boot 分区,用 FAT16 和 FAT32 是最合适的了。

最后,建议采用 2010-05-03 这个测试版(或者以后的版本)。虽然是测试版,但十分稳定。为什么要采用测试版呢?这主要还是因为,自从0.4.4正式版发布以来,又排除了很多 bug,其中有很多 bug 的排除是很关键的。

再次谢谢各位的辛苦。

------

哦,再多说一句废话。微软说 FAT 是它的专利,不能用。那么我们都被套上紧箍咒了。傻子啊?微软说他发明了字母,我们都不再说话、不再写字了吗?强权和霸权等于真理?那好了,微软现在又说了,Linux 就是微软的,你不给微软上税,不得发行 Linux。怎么办?停止发行?洗手不干?卷铺盖回家?这不太可笑了吗?连唐僧都不如。前不久见到一条新闻,说某个国家开始禁止把电脑技术作为专利来申请。这就根本上杜绝了垄断者用专利来阻碍技术的进步。弱小的人民应该觉醒,当人家用绳索勒你的脖子的时候,你应该咬他一口,而不要白白被勒死。当微软要用专利来欺负人的时候,国家应该出台相应的对策,禁止商业巨头利用垄断优势申请专利打压竞争对手。绝对不能乖乖地让人把自己吊死。

[ 本帖最后由 tinybit 于 2010-5-8 15:45 编辑 ]

KDE 发表于 2010-5-8 16:01:18

哈哈,GRUB4DOS 的泰斗也来了!欢迎!

我并不在乎 grldr 能否支持放置在 reiser 或者其他高级文件系统分区上,一般我们都习惯于将它置于 C:\ 下,比如我写的硬盘安装向导使用的 mildr.mbr 就是用16进制编辑器修改自grldr.mbr,这样放在 C:\ 下就不会和grldr.mbr有冲突。

问题是,搜索到 grldr 之后如何令其支持 reiser3/4、及其他 kernel 支持的文件系统?如果未来您能够将这些支持直接并入新版本的 GRUB4DOS,我们将不胜感激!

zy_sunshine 发表于 2010-5-8 16:08:57

前辈是不点老大吧,呵呵。
看到你的回复令人振奋,网上的Grub4dos介绍大多是使用说明,这样分析Grub4dos的整体结构的文字不多,多谢指点。

其实MagicLinux的iso一直使用Grub4Dos来做引导,最近小弟初学Win下编程,就写了这个不完整的Grub4Dos辅助安装工具,而且只针对MaigcLinux iso的引导。以后还会继续完善下去的。

如果说Fat32都可以用了,那微软的YaHei字体是否也可以使用,这点想不清楚... 中国字体不是他们劳什子美国佬发明的吧

KDE 发表于 2010-5-8 16:25:43

中文商业字体都是国内开发商做的。

zy_sunshine 发表于 2010-5-8 17:06:39

终于知道为什么Xp和Vista下都可以只指定grldr.mbr就可以引导了,原来mbr、grldr.mbr和grldr三者前16扇区都是相同的。

搜寻grldr文件所支持的文件系统 fat12/16 fat32 ntfs ext2 ext3已经足够了,如果能在grub环境中能支持全部Linux文件系统就更好了,毕竟grub都能引导起来,如果再不能将Linux引导起来那是非常恼火的事情。我从来不分boot分区的...

---------

刚才看了微软雅黑的介绍,100美元一个字体的成本还真不便宜,呵呵。不过这东西看起来真养眼...
页: 1 [2] 3
查看完整版本: magic_win 发布 0.4.1