无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4593|回复: 10
打印 上一主题 下一主题

请教Linux下用grub引导DOS系统的问题?

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-5 12:32:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
找了很久都没有找到解决方法,我的环境是:

一个硬盘,全部是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 编辑 ]
2#
发表于 2009-1-5 12:38:08 | 只看该作者
这个无聊问题能难倒N多人?!晕。。。。
title  dos
map (fd0) (fd1)
map --mem (hd0,0)/dos.img (fd0)
map --hook
chainloader (fd0)/io.sys
回复

使用道具 举报

3#
 楼主| 发表于 2009-1-5 12:49:26 | 只看该作者
兄弟,能解释清楚点吗?

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)什么意思
回复

使用道具 举报

4#
发表于 2009-1-5 12:50:47 | 只看该作者

回复 #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)。
回复

使用道具 举报

5#
 楼主| 发表于 2009-1-5 13:01:11 | 只看该作者
楼上的方法有问题,我测试过不行
(hd0,0) 的格式是 ext2fs,会提示找不到grldr文件。

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

root (hd0,0)
chainloader /root/grldr
都是这样的错误提示,提示分区格式是ext2fs,找不到文件
回复

使用道具 举报

6#
发表于 2009-1-5 13:06:02 | 只看该作者

回复 #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。
回复

使用道具 举报

7#
发表于 2009-1-5 13:22:36 | 只看该作者
用了grub4dos就知道了。
bootlace.com在linux下都能用。
回复

使用道具 举报

8#
 楼主| 发表于 2009-1-5 13:22:47 | 只看该作者

总结帖,感谢帮助我的两位兄弟

再次感谢无忧启动,无忧启动人才济济

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 编辑 ]
回复

使用道具 举报

9#
发表于 2009-1-6 09:00:19 | 只看该作者
顶楼的标题还有一个错误:是grub而不是gurb。
回复

使用道具 举报

10#
发表于 2009-2-4 22:39:13 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

11#
发表于 2009-2-26 22:23:34 | 只看该作者
真的太好了,一定要顶!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-8-31 19:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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