发新话题
打印

Climbing总结的GRUB4DOS应用FAQ文档(不断增加中...)

Climbing总结的GRUB4DOS应用FAQ文档(不断增加中...)

很多新来论坛的人,既不知道潜水,又不知道查看置顶帖子,当然,更不遵守论坛基本守则,总之,属于“无知者无畏型”,上来就开始提问,而问了半天,问题也说不明白,也不知道该反馈些什么情况。所有这些,都属于基础知识严重缺乏型。不过,grub4dos对于新接触者来说,确实有点儿难于掌握,我自己当年刚接触时也感觉发怵,从接触到熟悉总要有一个熟练过程,而且,grub4dos应用的资料虽然现在不能说少,但缺乏一个系统的组织,而且,要么不注重实用性,要么就太注重实用性,缺乏原理性。之所以创建这个帖子,严格来说就是想将大家经常遇到的问题及答案汇总一下,理论联系实际。

同样,这个FAQ也是需要慢慢完善和补充的,到现在还是空的,希望本论坛的老手们随时将大家经常遇到的问题及答案贴到这个帖子里来,我只有一个要求,文字写的清楚明白,让人能够看得懂,别人看不懂的,就不要贴了。

帖子格式:
Q: 新手遇到的问题?
A:该问题的答案。

在积累了足够多的资料后,我会在顶楼建立一个真正的FAQ形式的索引,让新手能够在这个帖子里找到所有问题的答案。

最后注意:本帖严禁任何形式的灌水!!!凡是没有实际内容的回复均属灌水(例如支持、顶,感谢之类的回复)。
夫大块载我以形,劳我以生,佚我以老,息我以死。故善吾生者,乃所以善吾死也。

在本论坛发帖前,请认真阅读下面的链接及建议:
1、论坛基本守则
2、下面是论坛历史上真实发生的对论坛规则如何理解和应用的讨论帖子,对新手很有参考价值(请抱平常心浏览):
http://bbs.znpc.net/viewthread.php?tid=4505
http://bbs.znpc.net/viewthread.php?tid=5586
3、提问前先潜水并搜索,避免发月经帖;尊重别人就是尊重自己。
4、Public用户回帖时请注明自己的ID和邮箱以供识别,这不意味着你一定能获得邀请码,但遵守规矩总是有利的。
5、基本上我们认为你不需要注册本论坛ID,因此不要单独发帖索要(谁需要ID,由我们决定),你最好只关注自己的问题和论坛的规矩。

TOP

Q: 在提交GRUB4DOS的bug或者提问时的注意事项有哪些?

A:  报告grub4dos启动失败的问题,最好拿最新的版本先试过再说(一般来说,最新的版本往往bug较少,成功率较高),然后再往前试几个版本(可以间隔几个版本拿来试验),如果能找到成功的版本就最好了。

由于grub4dos的启动严重依赖于主板BIOS及使用方法和使用环境,因此,报告问题时有关方面的信息是越详尽越好,例如:你的机器型号,你的主板的详细信息,BIOS的信息,你在什么环境下启动grub4dos(例如如果在DOS下使用grub.exe来启动,你要报告你用的DOS版本,你的 config.sys和autoexec.bat文件,你运行grub.exe的命令行,如果有可能,试一下在freedos下的启动情况),还有硬盘分区情况、分区类型等等,接下来就要报告你的操作方式、你的menu.lst文件的相关内容及存放位置等,然后就是启动grub4dos的debug on状态,并将屏幕显示信息拍照留存(或抄下来)并上报。总之,去除你自己主观的判断,其它的信息越详细越好。另外,报告问题时一定要使用最新的官方的 grub4dos版本,不要报告旧版本或者其它人的修改版的问题,当然,如果某个旧版本能够正常运行,可以一并报上来作为排除bug的参考。

grub4dos的硬盘启动现在越来越少遇到启动失败的情况,而失败情况的发生,往往与U盘启动有关(而且,很多人确实主要将grub4dos应用到U盘启动上),那么这时候你就要详细描述你的U盘启动相关情况:例如U盘的型号、容量、你的U盘格式(例如fdd, zip及hdd),分区大小,U盘的MBR(或者0磁道)、分区情况、文件系统等。最好同时反馈是否能够启动直接DOS(要试MS-DOS及FreeDOS两种),从U盘启动纯DOS(所谓的纯DOS是指跳过config.sys和autoexec.bat,不加载任何内存驻留程序的DOS)后加载grub.exe(及badgrub.exe)的情况。
夫大块载我以形,劳我以生,佚我以老,息我以死。故善吾生者,乃所以善吾死也。

在本论坛发帖前,请认真阅读下面的链接及建议:
1、论坛基本守则
2、下面是论坛历史上真实发生的对论坛规则如何理解和应用的讨论帖子,对新手很有参考价值(请抱平常心浏览):
http://bbs.znpc.net/viewthread.php?tid=4505
http://bbs.znpc.net/viewthread.php?tid=5586
3、提问前先潜水并搜索,避免发月经帖;尊重别人就是尊重自己。
4、Public用户回帖时请注明自己的ID和邮箱以供识别,这不意味着你一定能获得邀请码,但遵守规矩总是有利的。
5、基本上我们认为你不需要注册本论坛ID,因此不要单独发帖索要(谁需要ID,由我们决定),你最好只关注自己的问题和论坛的规矩。

TOP

Q: grub4dos有哪些启动方式?

A:   grub4dos与官方的grub legacy有一个很大的区别就是启动方式的多样性。grub legacy只能将自己的引导代码安装到mbr或者分区的引导扇区,而且,它的代码被分成了三部分:引导代码、Stage1.5、Stage2,主体程序就是stage2,前两部分都是为加载stage2做准备的。而grub4dos基本上将grub legacy的这三部分合成一体了,所有的东西都集成在grldr和grub.exe这两个文件中,另外,为了兼容Vista的启动(Vista不能加载超过64K的引导文件),grub4dos又多了一个grldr.mbr,grldr.mbr相当于grub4dos的引导扇区,类似于NT下引导DOS时用到的bootsect.dos,它的主要功能就是在本地硬盘、软盘、U盘根目录下查找grldr文件并加载,凡是支持加载引导扇区的引导软件(又称为链式加载,也就是chainload)都可以通过加载grldr.mbr来引导进入grub4dos。grub4dos的启动方式有下面这些(不见得全面):
一、通过链式加载方式。

1、从NT下通过boot.ini加载:修改boot.ini,通过链式加载grldr或者grldr.mbr来加载。前提是你的某个分区根目录下一定要放置一个grldr,分区类型支持FAT(12/16/32)、NTFS、EXT(2/3)。
复制内容到剪贴板
代码:
c:\grldr="Grub4DOS"

c:\boot\grldr.mbr="Grub4DOS"
你一定注意到了,grldr.mbr不一定要放在根目录下,其实,grldr也不一定放到根目录下,不过,它们最终的目的都是搜索各分区根目录下的grldr文件并加载找到的第一个grldr。

另外,这种方式的一个变形形式是将grldr改名成ntldr(或者bootmgr)替换NT的ntldr(Vista的bootmgr),这是通过NT/Vista的引导扇区直接加载grldr。

2、在Vista中通过修改BCD加载grldr.mbr。详细修改方法请参考grub4dos官方文档。

3、通过其它支持链式加载的引导器(例如grub4dos、syslinux/isolinux/pxelinux等)来加载grldr.mbr(或者grldr)。例如,你可以在grub4dos中用:
chainloader --force /grldr    #注意,这里一定要加上--force参数
或者
chainloader /boot/grldr.mbr的形式加载。

二、将grub4dos的引导代码安装到MBR或者分区引导扇区。

这个是目前比较推荐的一种方式,你可以用bootlace、grubinst或者手工的方式来完成这个任务。这种方式也要求某个分区的根目录下必须存在一个grldr文件,其中,如果将grub4dos的引导代码安装到了分区的引导扇区,恐怕就必须将grldr文件放到该分区的根目录下。

三、通过grub.exe加载。

grub.exe是一个三栖的程序,它可以作为实模式的DOS程序直接从纯DOS环境下进入grub4dos,也可以作为DOS的设置驱动程序,从DOS的config.sys中以device=grub.exe的形式加载,还可以以Linux内核格式,使用kernel方式加载(凡是支持加载Linux内核的程序都可以使用这种方式,例如grub4dos自身,syslinux系列、lilo、DOS下的loadlin,Linux下的kexec)。

四、作为PXE启动文件加载。

你可以将grldr直接作为PXE服务器的启动文件通过网络加载grub4dos,也可以通过pxelinux加载,通过pxelinux加载时,需要将grldr改名为grldr.0,或者用kernel grub.exe的形式,注意追加keeppxe参数。

五、将grldr作为光盘启动文件加载

你可以直接将grldr作为光盘的启动文件来制作启动光盘,注意,要遵循推荐的mkisofs命令行格式来制作。跟这个有关的是你可以用其它的光盘启动软件来加载grldr,例如ezboot、bcdw等,不过这样加载就失去了让grub4dos直接通过bios访问光驱的能力(也就是说不是eltorito模式了)。

我能想到的大概就是这些加载方式吧,可能不是很完全,不过应该囊括了大部分的方式,就算有别的方式,应该也是这几种方式的扩展。
夫大块载我以形,劳我以生,佚我以老,息我以死。故善吾生者,乃所以善吾死也。

在本论坛发帖前,请认真阅读下面的链接及建议:
1、论坛基本守则
2、下面是论坛历史上真实发生的对论坛规则如何理解和应用的讨论帖子,对新手很有参考价值(请抱平常心浏览):
http://bbs.znpc.net/viewthread.php?tid=4505
http://bbs.znpc.net/viewthread.php?tid=5586
3、提问前先潜水并搜索,避免发月经帖;尊重别人就是尊重自己。
4、Public用户回帖时请注明自己的ID和邮箱以供识别,这不意味着你一定能获得邀请码,但遵守规矩总是有利的。
5、基本上我们认为你不需要注册本论坛ID,因此不要单独发帖索要(谁需要ID,由我们决定),你最好只关注自己的问题和论坛的规矩。

TOP

Q: 如何用grub4dos快速启动XP/Win7系统?

A:要通过grub4dos启动NT系统,无论是Xp还是win7,都无法跳过微软自己的引导程序,也就是无法跳过ntldr或bootmgr直接引导xp或win7。但这并不意味着就没有什么快捷方式可选。我个人一直推荐的快捷方式就是使用NT的引导软盘,用grub4dos直接引导对应系统的引导软盘即可实现快捷引导NT系统。

xp引导软盘的做法:
建立一张软盘映像,将xp(或windows 2003的,兼容性更好)引导分区根目录下的ntldr、ntdetect.com、boot.ini(如果你需要显示菜单,也可以复制bootfont.bin)到软盘根目录下,快捷起见,我们一般情况下不需要显示boot.ini启动菜单,因此,将boot.ini中的timeout设置为0,default当然要指向默认要启动的系统。

然后用grub4dos如下启动这张软盘映像:
复制内容到剪贴板
代码:
title 直接启动XP
map --mem /xp.img (fd0)
map --hook
root (fd0)
chainloader /ntldr
已知问题:上面这种方式启动,可能无法正常引导基于微软的ramdisk.sys的ramxp系统,解决办法:保证xp.img在硬盘上连续存放,然后将上面map命令中的--mem选项去掉。

vista/win7启动软盘做法:
新建一张软盘映像(命名为win7.img),将win7引导分区的bootmgr复制到软盘根目录,在软盘根目录下建立一个boot文件夹,将修改合适的BCD(如何修改,自己去学习bcdedit用法)文件复制到软盘boot文件夹下,视是否需要显示菜单及菜单语言配置情况,将en-US或zh-CN等语言文件夹复制到软盘boot文件夹下。用grub4dos启动:
复制内容到剪贴板
代码:
title 直接启动Win7
map --mem /win7.img (fd0)
map --hook
root (fd0)
chainloader /bootmgr
夫大块载我以形,劳我以生,佚我以老,息我以死。故善吾生者,乃所以善吾死也。

在本论坛发帖前,请认真阅读下面的链接及建议:
1、论坛基本守则
2、下面是论坛历史上真实发生的对论坛规则如何理解和应用的讨论帖子,对新手很有参考价值(请抱平常心浏览):
http://bbs.znpc.net/viewthread.php?tid=4505
http://bbs.znpc.net/viewthread.php?tid=5586
3、提问前先潜水并搜索,避免发月经帖;尊重别人就是尊重自己。
4、Public用户回帖时请注明自己的ID和邮箱以供识别,这不意味着你一定能获得邀请码,但遵守规矩总是有利的。
5、基本上我们认为你不需要注册本论坛ID,因此不要单独发帖索要(谁需要ID,由我们决定),你最好只关注自己的问题和论坛的规矩。

TOP

Q: 有些命令明明写到了menu.lst中,为什么在加载后却看不到了?
A:   这是一个初学者经常会犯的错误。grub4dos对menu.lst有很严格的语法检查,而且,grub4dos对命令名是严格区分大小写的(当然,命令关键字都是小写),grub4dos在加载menu.lst时,如果遇到不认识的命令(或无法解释的命令行)就会忽略它(当作它不存在),也就是提问中所遇到的现象。常见的错误:
引用:
Map   --mem  /xxx.img   (fd0)   //Map中的M不应该是大写的
hide(hd0,0)     //hide与(hd0,0)之间要加上空格或TAB的分隔符
特别要注意的就是:命令关键字(包括参数)一定要小写;该有空格的地方要加上,不该有空格的地方坚决不要加。

至于如何排除这类的错误,最好的办法就是进入grub4dos的命令行模式,手工输入一遍相应的命令,然后看错误提示信息。
夫大块载我以形,劳我以生,佚我以老,息我以死。故善吾生者,乃所以善吾死也。

在本论坛发帖前,请认真阅读下面的链接及建议:
1、论坛基本守则
2、下面是论坛历史上真实发生的对论坛规则如何理解和应用的讨论帖子,对新手很有参考价值(请抱平常心浏览):
http://bbs.znpc.net/viewthread.php?tid=4505
http://bbs.znpc.net/viewthread.php?tid=5586
3、提问前先潜水并搜索,避免发月经帖;尊重别人就是尊重自己。
4、Public用户回帖时请注明自己的ID和邮箱以供识别,这不意味着你一定能获得邀请码,但遵守规矩总是有利的。
5、基本上我们认为你不需要注册本论坛ID,因此不要单独发帖索要(谁需要ID,由我们决定),你最好只关注自己的问题和论坛的规矩。

TOP

发新话题