无忧启动论坛

标题: 请教Linux下用grub引导DOS系统的问题? [打印本页]

作者: sjht    时间: 2009-1-5 12:32
标题: 请教Linux下用grub引导DOS系统的问题?
找了很久都没有找到解决方法,我的环境是:

一个硬盘,全部是linux分区。

CentOS5.2 Linux

系统默认Grub配置文件

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda6
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=15
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-92.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet
        initrd /initrd-2.6.18-92.el5.img

-------------------------------
请问我任何修改这个grub的配置菜单来引导windows下用dos,或者windows下的.img文件,可以在linux下安装其他的引导工具。谢谢大家!

[ 本帖最后由 sjht 于 2009-1-6 09:41 编辑 ]
作者: yichya    时间: 2009-1-5 12:38
这个无聊问题能难倒N多人?!晕。。。。
title  dos
map (fd0) (fd1)
map --mem (hd0,0)/dos.img (fd0)
map --hook
chainloader (fd0)/io.sys
作者: sjht    时间: 2009-1-5 12:49
兄弟,能解释清楚点吗?

title  dos
map (fd0) (fd1)
map --mem (hd0,0)/dos.img (fd0)
map --hook
chainloader (fd0)/io.sys

io.sys文件是dos的io.sys吗?
map (fd0) (fd1) 什么意思?
我grub入门级别不好意思。
map --mem (hd0,0)/dos.img (fd0)什么意思
作者: Climbing    时间: 2009-1-5 12:50
标题: 回复 #1 sjht 的帖子
楼上的回复是个解决方案,不过漏了步骤,因为楼上很显然用的是grub4dos,但CentOS自带的grub显然不是grub4dos。

我推荐使用最新版的grub4dos,下载网站:http://grub4dos.nufans.net/,目前是最新版是:http://nufans.net/grub4dos/grub4dos-0.4.4-2008-12-30.zip

我的解决方案有二:
一、如果你不在乎用的是哪个grub并且不在乎修改mbr引导代码,你可以直接将grub4dos安装到你硬盘的MBR上。这样,直接修改你原来的menu.lst,加上楼上的菜单项即可。在linux下可以用bootlace.com来安装。

二、如果你不想修改原硬盘的MBR,并且希望使用原来的grub,只是希望在启动到dos时才用到grub4dos,那么你可以这样修改你原来的menu.lst:

title Start Grub4DOS
root (hd0,0)
kernel /grub.exe
或者
chainloader /grldr

进入grub4dos后,就可以用楼上的菜单项来启动DOS软盘映像。

总之,grub4dos是你的问题的最佳解决方案,详细请参考grub4dos的用法(http://bbs.znpc.net)。
作者: sjht    时间: 2009-1-5 13:01
楼上的方法有问题,我测试过不行
(hd0,0) 的格式是 ext2fs,会提示找不到grldr文件。

我在测试的时候是把grub4dos安装在(hd0,0) 也就是/root里面
无论是
root (hd0,0)
chainloader /grldr

root (hd0,0)
chainloader /root/grldr
都是这样的错误提示,提示分区格式是ext2fs,找不到文件
作者: Climbing    时间: 2009-1-5 13:06
标题: 回复 #5 sjht 的帖子
我上面的回复中确实有缺陷,我用习惯了grub4dos,把CentOS也不知不觉的当成grub4dos了。

用chainloader /grldr是不行的,因为CentOS的grub不支持这个功能。你应该用kernel /grub.exe(把grub4dos的grub.exe复制到你(hd0,0)的根目录下,如果放在root目录下,你可以用kernel (hd0,0)/root/grub.exe。

另外,同时也要注意,路径很重要,一定要将相应的路径写对了。例如你的dos.img存放位置等。还有grub4dos所用的menu.lst,默认它会寻找它可识别分区/boot/grub、/grub、/boot目录下的menu.lst。
作者: yjd    时间: 2009-1-5 13:22
用了grub4dos就知道了。
bootlace.com在linux下都能用。
作者: sjht    时间: 2009-1-5 13:22
标题: 总结帖,感谢帮助我的两位兄弟
再次感谢无忧启动,无忧启动人才济济

Climbing  的办法,使用grub4dos引导
注:本人是自定义分区,(hd0,0)就是我安装系统的时候创建的第一个分区/root,默认分区的不能这样设置,需要加/root。
title ATI SERVER (9.5 FULL) grub4dos
        root (hd0,0)
        kernel /grub.exe
启动grub4dos成功

title ATI SERVER (9.5 FULL) linux grub
        root (hd0,0)
        kernel /grub/kernel.dat rw vga=788 mbrcrcs=on load_ramdisk=1 ramdisk_size=21321 quiet
        initrd /grub/ramdisk.dat /S
linux自带grub启动ATI成功。

谢谢yichya和Climbing两位兄弟。

[ 本帖最后由 sjht 于 2009-1-6 09:41 编辑 ]
作者: Climbing    时间: 2009-1-6 09:00
顶楼的标题还有一个错误:是grub而不是gurb。
作者: skkkpeek    时间: 2009-2-4 22:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: jujishou    时间: 2009-2-26 22:23
真的太好了,一定要顶!




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3