中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 【讨论】Gurb4dos 硬盘引导 - MBR, BIOS, menu.lst
作者:
标题: 【讨论】Gurb4dos 硬盘引导 - MBR, BIOS, menu.lst 上一主题 | 下一主题
oasisspirit
新手上路





积分 15
发帖 6
注册 2008-4-11
状态 离线
『楼 主』:  【讨论】Gurb4dos 硬盘引导 - MBR, BIOS, menu.lst

昨天,因为使用一个 PE 光盘,导致硬盘无法自行引导,最后通过 GRUB4DOS 基本解决叻问题,但是仍然不知道导致问题得原因是什么。 相关讨论见链接:
http://bbs.wuyou.com/viewthread.php?tid=123806


在翻看grub资料和解决问题得过程中又遇到些新的问题,如下

1. MBR

“[讨论] DOS, Windows 等几大操作系统的 MBR 和 PBR 的重写方法”
http://www.cn-dos.net/forum/viewthread.php?tid=35676

中说(经过实践验证),WINXP 重新完全安装会改写MBR和DBR

那么,如果把 grub装到 MBR 中,是不是再重装 winxp后,也要重装grub到 MBR?
是不是安装grub到BIOS 是更好的解决方法?

【参考】
“硬盘无法启动,无光、软驱,没关系!不死系统让你电脑维护不耽误!” by 老毛桃
http://bbs.wuyou.com/viewthread.php?tid=64686
“尝试把grldr.mbr移植到RomOS写入Bios” by fastslz,实现 by Bean
http://www.cn-dos.net/forum/viewthread.php?tid=34760


2. menu.lst

在 winxp第一次安装过程(拷贝文件到硬盘)后,到 PE 下装了 gurb,并将menu.lst 部分编写如下:
title Microsoft Windows XP
find --set-root /ntldr
chainloader /ntldr
savedefault --wait=2

重启后,硬盘无法引导。

将 menu.lst 改写为:
title Microsoft Windows XP
find --set-root /ntldr
map +1 (hd0)
chainloader /ntldr
savedefault --wait=2

重启后,硬盘正常引导,完成 winxp 全部安装。

再将 menu.lst 改写为:
title Microsoft Windows XP
find --set-root /ntldr
chainloader /ntldr
savedefault --wait=2

重启后,硬盘正常引导。


【问题】
1) 为什么第1次无法引导?第2,3正常?
2) map +1 (hd0) 这里起到什么作用?


3. Boot.ini

通过 grub 引导 winXP 时,boot.ini 还起作用吗?


有朋友了解得,希望发表一下看法

[ Last edited by oasisspirit on 2008-4-11 at 05:55 PM ]

2008-4-11 15:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不点
银牌会员

不甘寂寞的人


积分 2491
发帖 1115
注册 2003-9-24
状态 离线
『第 2 楼』:  



  Quote:
那么,如果把 grub装到 MBR 中,是不是再重装 winxp后,也要重装grub到 MBR?

当然是的,如果你需要 GRLDR 接管 MBR 的话。其实,如果微软接管了 MBR,你仍然有办法通过修改 boot.ini 来启动 grldr,所以,这也是不太要紧的。

  Quote:
是不是安装grub到BIOS 是更好的解决方法?

安装到 BIOS?这个说法或许不太标准。把 grub 或者 DOS 安装到主板 ROM 或者扩展卡的 ROM 中,通常是称为 “刷新” BIOS。这一般不是普通人愿意做的,而且也有一定的危险性。

  Quote:
1) 为什么第1次无法引导?第2,3正常?

很可能第一次是从 U盘启动,此时 U 盘成了第一硬盘 (hd0),而你的真实硬盘变成了第二硬盘 (hd1)。微软的 NTLDR 不支持从第二硬盘启动,必须是从第一硬盘启动。因此你需要一次仿真 map +1 (hd0),这条仿真就是把当前的硬盘仿真为 (hd0),也就是让 NTLDR 认为 (hd1) 就是 (hd0),从而能够启动成功。

在第3次,由于 XP 系统已经安装成功,U 盘已经退去,不再引导机器,因此真实的硬盘本身已经是 (hd0) 了,这样就不需要仿真了。

  Quote:
通过 grub 引导 winXP 时,boot.ini 还起作用吗?

grub 不能直接引导 XP,需要通过引导 NTLDR 才能间接引导 XP。NTLDR 的配置文件是 BOOT.INI,因此,BOOT.INI 也是有用的,它要被 NTLDR 读取。

补充:

在新版本中,“当前设备” 有个新的表达法,即 空括号:(),你可以像使用其它设备那样来使用 () 这个设备。比如:
map   ()+1   (hd0)

map   (hd0)   ()
以上这两条命令也可以同时使用。

[ Last edited by 不点 on 2008-4-11 at 07:51 PM ]



因为我们亲手创建,这个世界更加美丽。
2008-4-11 19:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
oasisspirit
新手上路





积分 15
发帖 6
注册 2008-4-11
状态 离线
『第 3 楼』:  

非常感谢 不点 的精彩回复

另外, 楼上楼, 是我在dos论坛的第一篇帖子


想再问一下:


1.

之所以用 grldr 是因为硬盘不能自主通过ntldr引导 hd0

看帖子 http://bbs.wuyou.com/viewthread.php?tid=123806 所说的问题,能大概判断问题出在哪里吗?


2.

  Quote:


  Quote:
为什么第1次无法引导?第2,3正常?

很可能第一次是从 U盘启动,此时 U 盘成了第一硬盘 (hd0),而你的真实硬盘变成了第二硬盘 (hd1)。微软的 NTLDR 不支持从第二硬盘启动,必须是从第一硬盘启动。因此你需要一次仿真 map +1 (hd0),这条仿真就是把当前的硬盘仿真为 (hd0),也就是让 NTLDR 认为 (hd1) 就是 (hd0),从而能够启动成功。

在第3次,由于 XP 系统已经安装成功,U 盘已经退去,不再引导机器,因此真实的硬盘本身已经是 (hd0) 了,这样就不需要仿真了。

不好意思, 没说清楚, 我用的是 pe 光盘. 而且, 第一次启动 没有通过 光盘引导, 而是 我在winXP 完成蓝平下拷贝文件需要重启的时候, 到 pe 下 安装 grub并设置menu.lst文件的. 这样的话, 会是什么原因那?



3. Boot.ini

按说应该是你说的道理. 可是, 我在 Boot.ini 里面, 将等待时间 设置成 1000, 可是没有任何等待 就启动 winXp了. 不知道为什么?


4. +1 的意思

看到过你关于 mp (hd0,0) +1 (hd0) 的解释
http://bbs.znpc.net/redirect.php?tid=1000

chainloader (fd0) +1 也是这样理解吗?

[ Last edited by oasisspirit on 2008-4-12 at 01:07 AM ]

2008-4-12 00:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
fujianabc
金牌会员





积分 3467
发帖 1616
注册 2004-6-21
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by oasisspirit at 2008-4-12 12:52 AM:
按说应该是你说的道理. 可是, 我在 Boot.ini 里面, 将等待时间 设置成 1000, 可是没有任何等待 就启动 winXp了. 不知道为什么?

设得太大了,超过上限了,设个10就可以了

2008-4-12 10:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
barton
中级用户





积分 480
发帖 197
注册 2006-9-20
来自 黄冈
状态 离线
『第 5 楼』:  

timeout设为-1

基本可以达到你设为1000所想要达到的目的。

2008-4-12 11:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
oasisspirit
新手上路





积分 15
发帖 6
注册 2008-4-11
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by barton at 2008-4-12 11:56:
timeout设为-1

基本可以达到你设为1000所想要达到的目的。

对的哈, 我去看看


--

刚 试过了,好像没有用哈

[ Last edited by oasisspirit on 2008-4-13 at 11:34 PM ]

2008-4-13 23:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: