Generated by Unregistered Batch CHM TO DOC Convertor 2011.3.211.1266, please register!
GRUB4DOS 简介
摘自 grub4dos_wiki 仅稍作修改。
相信许多linuxer初次听到“GRUB FOR DOS”这个名字,第一感觉就是:这个对我没用,因为我不用DOS,即使用也不会去通过它启动GRUB。先别急,再问一句:您是否用过grldr呢?是否用过MaxDos、一键ghost、矮人DOS工具盘?如果答案是肯定的,那您已经在用GRUB FOR DOS了。
首先搞清楚与 GNU GRUB 的关系。 GNU GRUB 分为 GNU GRUB Legacy 和 GNU GRUB2 两代 。GNU GRUB Legacy 其实就是原来的 GNU GRUB 0.xx ,最新版是2005 年发布的 GNU GRUB 0.97 。目前已停止开发,并改名为 GNU GRUB Legacy 。 GNU GRUB2 是第二代 GRUB,它将取代原来的 GNU GRUB (例如0.9x版)。
而 GRUB4DOS 则是对 GNU GRUB Legacy 的二次开发。该项目最早由 不点 在2003年发起。目前主要由chenall、不点、bean 和另外几位中国人维护,很多人贡献了代码,再加上广大网友热心帮助,使得 GRUB4DOS 不断完善。
GRUB4DOS 对 GNU GRUB 0.97 的改进
1、A20代码 和 bug修正
对A20的处理历来就是一个棘手问题。当初IBM引入这一设计,本意是为了让以往那些BUGGY软件能够运行,结果造成后世无穷无尽的隐患。当然不能全怪IBM,真正应当责怪的是那些不遵守IBM标准的硬件厂商,它们生产的系统无法用常规的几种方法来控制A20,使得软件开发者可能在很多意想不到的地方碰上A20这个妖魔,除了造成死机之外,还导致执行效率的极度降低。在微软的XMS规范中就明确写着,A20的控制在有些机器上是非常耗时的一个操作。
GNU GRUB 0.97中的A20代码很明确是有问题的,这在GNU GRUB邮件列表档案中就有提到。很多用户报告在使用gnu grub 0.97时键盘失去响应。grub开发组在grub2中对A20代码打了补丁,以解决这些问题,但是这个补丁并没有打到我们目前广泛使用的0.97版上。为此GRUB4DOS用取自Linux内核的A20代码替换了原代码,并参考其他一些开源代码做了很多改进,基本上解决了这一问题。
A20只是改造的一个方面,在GRUB4DOS的开发过程中修复的GNU GRUB 0.97的bug还有很多,有些在Changelog中并没有提到,其中大量的主要是为了应对 BIOS 的 bug 而作出的补救措施。到目前为止,已经把那些严重的BUG排解殆尽了,应该可以比较平滑地使用GRUB4DOS了。
2、磁盘仿真(虚拟磁盘)
这是GRUB4DOS的一大特色功能,开发者下了不少功夫。这一功能是将 软盘镜像 或 光盘镜像 或硬盘镜像 甚至某个硬盘分区 虚拟成 软驱 或 光驱 或 硬盘,进而运行其中的操作系统。 用SYSLINUX中的memdisk也可实现虚拟磁盘。比较而言,GRUB4DOS功能更强,限制更少,用法更灵活,同时对bios的要求也要高那么一点点,在一些BIOS有缺陷的机子上可能会出问题(不过不用太担心,实践表明这种情况极其罕见)。
3、多种方式进入grub环境
Generated by Unregistered Batch CHM TO DOC Convertor 2011.3.211.1266, please register!
(1)通过dos
在dos下运行grub.exe即可进入纯粹的grub环境,并部分地支持退回到DOS。
也可把grub.exe作为 CONFIG.SYS 里的设备驱动程序而运行。 (2)通过Windows启动菜单
这是被广泛使用的一种用法。MaxDos、一键ghost硬盘版、矮人DOS工具盘之类的软件就是以这种方式启动grldr,再通过磁盘仿真虚拟出一个软驱,进而启动DOS的。
(3)将GRUB4DOS引导代码写入硬盘MBR,开机直接进入grub环境
乍一看这不算什么改进——GNU GRUB本来就可以这样引导,但实际上在这里 GRUB4DOS 有相当大的革新。GNU GRUB legacy的传统安装方法是: root (xxx,x) setup (xxx)
第一句是指定一个分区,该分区须存放有/boot/stage1和/boot/stage2文件,第二句是将引导代码写入 硬盘MBR。这样安装的GRUB,其MBR引导代码被设置为从固定的分区加载stage2。假如我们某一天因为 某些原因,需要删除或格式化该分区,或者做一些会引起该分区序号变化的操作(比如用 pqmagic 在该 分区前添加或删除分区),就需要预先重装一次grub,重新指定存放stage2文件的分区,否则将无法引导。 这一点上 GNU GRUB 显得不够灵活。
而 GRUB4DOS 采取了新的策略:其MBR引导代码并非固定地指向某个分区,而是搜索所有分区,查找并加载 grldr,只要某分区上存有一份grldr,就能启动。而且安装时可以将原微软的MBR备份,启动时如果找不到grldr,便自动加载备份的MBR。显然这种方式更加灵活、稳健,所以GRUB4DOS 虽然保留了 GNU GRUB 的全部命令和功能(包括 setup 命令,注:0.4.5版grub4dos已取消 setup 命令),但不推荐使用传统的安装方式。
当然 GRUB4DOS 方式也不是十全十美,因为其引导代码还不能识别所有的文件系统,目前支持仅
NTFS/FAT12/FAT16/FAT32/EXT2/EXT3(也不少了 ,以后将支持更多的格式),所以可能需要专门设一个分区来存放 grldr 。不过在我看来这是值得的,一点小麻烦换来了更多的方便和稳定。 (4)图片背景支持
可用 640x480@14位色 的图片做背景,0.4.5版增加800×600分辨率图片支持,但要注意的是800×600模式对一些机子支持不是很好,有可能会死机。 (5)中文支持
GRUB4DOS 发布有中文版,大大方便了中文用户。 可选三种方式加载中文支持: A,使用中文版grldr配合内置命令 fontfile 加载中文字库来显示中文菜单; B,使用英文版grldr配合外置命令 unifont 加载中文字库来显示中文菜单;
C,使用内置命令 gfxmenu 加载 message 文件来显示中文菜单(正常情况下显示效果很好,但如果出错的话可能会很糟)。
Generated by Unregistered Batch CHM TO DOC Convertor 2011.3.211.1266, please register!
(6)光驱支持
该功能使得用户可以在GRUB环境下访问光驱,并可由光驱启动,很实用。 建议使用 IDE 接口光驱,对 SATA 接口光驱兼容性偏差。
GRUB4DOS 文件说明
现存grub4dos更新站点:
http://code.google.com/p/grub4dos-chenall/downloads/list http://nufans.net/grub4dos/
以 grub4dos-0.4.5-20XX-XX-XX.7z 为例,
─grub4dos-0.4.5-20XX-XX-XX-------------------压缩包解压后的主文件夹 │
├chinese----------------------------------------中文版grub4dos所在文件夹 │ │
│ ├badgrub.exe-------------------------------特意供那些不能运行标准 grub.exe 的‘糟糕的’机器(一些典型的 DELL 原型机)使用的。 │ │
│ ├grldr---------------------------------------grub4dos中文版主文件 │ │
│ ├grub.exe-----------------------------------dos 下执行进入 grub 环境 │ │
│ └README_GRUB4DOS_CN.txt----------grub4dos中文说明,感谢zw2312914翻译自英文原版 │ ├ badgrub.exe-----------------------------------特意供那些不能运行标准 grub.exe 的‘糟糕的’机器(一些典型的 DELL 原型机)使用的。 │
├ bootlace.com----------------------------------是dos/linux下的工具,可以把GRLDR的引导记录安装到磁盘MBR或者分区的引导扇区 │
├ ChangeLog_chenall.txt------------------------chenall 的更新日志文件 │
├ ChangeLog_GRUB4DOS.txt-----------------不点 的更新日志文件 │
├ config.sys-------------------------------------示例文件,可用于DOS │
├ COPYING-----------------------------------GNU通用公共许可证 │ ├ default----------------------------------------可配合 default 命令使用,默认要启动的菜单序号保存在这个文件中 │
├ Get_Source_of_This_Build.txt----------------获取grub4dos源码方式 │
├ grldr------------------------------------------grub4dos英文版主文件 │
├ grldr.mbr-------------------------------------grldr.mbr包含能够用作主引导记录的代码。此代码负责搜索所有分区根目录下的grldr,并且在发现它后装载它。 │
├ grub.exe-------------------------------------dos 下执行进入 grub 环境 │
├ grub.pif--------------------------------------当 grub.exe 被 win98 启动的时候,win98 会自动从快捷方式文件 grub.pif 中找到启动的方式信息 │
├ hmload.com---------------------------------DOS下的一个工具,可将任意文件加载到高端内存的任意地址,依赖在XMS 里开启A20地址线
│ (并且必须将那些已经使用了的任何内存空间精心的清理干净) │
Generated by Unregistered Batch CHM TO DOC Convertor 2011.3.211.1266, please register!
├ menu.lst-------------------------------------菜单实例 │
└ README_GRUB4DOS.txt-----------------grub4dos英文说明
以安装到磁盘和MS Windows系统为例, grub4dos的安装大体可以分为两类 ,
一类是将grub4dos安装至磁盘mbr,通过grub4dos的引导文件grldr启动其他系统引导文件: 如通过grldr文件来启动nt5x系统(XP/2003等)的引导文件 ntldr ,进而启动nt5x系统, 或通过grldr文件来启动nt6x系统(vista/2008/7等)的引导文件 bootmgr ,进而启动nt6x系统, 即,以grldr文件为第一引导器,系统引导文件为第二引导器。点此查看菜单实例。 另一类是修改原系统的菜单,增加grub4dos启动项,通过系统引导文件来启动grub4dos: 如修改nt5x系统的Boot.ini文件,添加grub4dos启动项, 或修改nt6x系统的BCD文件,添加grub4dos启动项,
即,以系统引导文件(ntldr/bootmgr)为第一引导器,grldr文件为第二引导器。 两种方式各有利弊,其他安装方式不再多加讨论。
WinXP以上系统下GUI安装 DOS/Win9x系统下命令行模式安装
将grub4dos安装至磁盘mbr有很多办法,也有很多软件可以实现,本次安装所采用的方法仅是举简单例。 首先是下载本次安装用到的软件: BOOTICE ( by Pauly ),打开后界面如图。
1、在 目标磁盘 里选择你想安装grub4dos的磁盘,然后点击 主引导记录 按钮,准备更改主引导记录。
2、在 要更改的类型 里选择 GRUB4DOS 项,然后点击 安装/配置 按钮。
Generated by Unregistered Batch CHM TO DOC Convertor 2011.3.211.1266, please register!
3、若不明白各个选项的意思可以直接点击 写入磁盘 按钮完成修改磁盘mbr。 其他常用选项:
(1)勾选 优先尝试引导原来的MBR 选项,这样原mbr损坏时还可以进入grub4dos进行维护。
(2)使用 热键 选项,可以指定延时时长,效果为启动计算机后指定时间内按下指定热键时将启动grub4dos, 否则将引导原mbr启动。
4、安装完成,注意需要手动将GRLDR文件和菜单文件放置在磁盘任一分区根目录下。 BOOTICE软件仅是修改mbr,不提供GRLDR文件和菜单文件。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库grub4dos-chinese在线全文阅读。
相关推荐: