![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 04:20 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区 » 【讨论】Gurb4dos 硬盘引导 - MBR, BIOS, menu.lst |
| 可打印版本 2,350 / 5 |
| 第1楼 oasisspirit | 发表于 2008-04-11 15:37 |
| 新手上路 发帖 6 积分 15 | |
|
【讨论】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 ] |
|
| 第2楼 不点 | 发表于 2008-04-11 19:43 |
| 银牌会员 发帖 1,115 积分 2,491 | |
当然是的,如果你需要 GRLDR 接管 MBR 的话。其实,如果微软接管了 MBR,你仍然有办法通过修改 boot.ini 来启动 grldr,所以,这也是不太要紧的。
安装到 BIOS?这个说法或许不太标准。把 grub 或者 DOS 安装到主板 ROM 或者扩展卡的 ROM 中,通常是称为 “刷新” BIOS。这一般不是普通人愿意做的,而且也有一定的危险性。
很可能第一次是从 U盘启动,此时 U 盘成了第一硬盘 (hd0),而你的真实硬盘变成了第二硬盘 (hd1)。微软的 NTLDR 不支持从第二硬盘启动,必须是从第一硬盘启动。因此你需要一次仿真 map +1 (hd0),这条仿真就是把当前的硬盘仿真为 (hd0),也就是让 NTLDR 认为 (hd1) 就是 (hd0),从而能够启动成功。 在第3次,由于 XP 系统已经安装成功,U 盘已经退去,不再引导机器,因此真实的硬盘本身已经是 (hd0) 了,这样就不需要仿真了。
grub 不能直接引导 XP,需要通过引导 NTLDR 才能间接引导 XP。NTLDR 的配置文件是 BOOT.INI,因此,BOOT.INI 也是有用的,它要被 NTLDR 读取。 补充: 在新版本中,“当前设备” 有个新的表达法,即 空括号:(),你可以像使用其它设备那样来使用 () 这个设备。比如: 以上这两条命令也可以同时使用。 [ Last edited by 不点 on 2008-4-11 at 07:51 PM ] |
|
| 第3楼 oasisspirit | 发表于 2008-04-12 00:52 |
| 新手上路 发帖 6 积分 15 | |
|
非常感谢 不点 的精彩回复
![]() 另外, 楼上楼, 是我在dos论坛的第一篇帖子 ![]() 想再问一下: 1. 之所以用 grldr 是因为硬盘不能自主通过ntldr引导 hd0 看帖子 http://bbs.wuyou.com/viewthread.php?tid=123806 所说的问题,能大概判断问题出在哪里吗? 2. 为什么第1次无法引导?第2,3正常?很可能第一次是从 U盘启动,此时 U 盘成了第一硬盘 (hd0),而你的真实硬盘变成了第二硬盘 (hd1)。微软的 NTLDR 不支持从第二硬盘启动,必须是从第一硬盘启动。因此你需要一次仿真 map +1 (hd0),这条仿真就是把当前的硬盘仿真为 (hd0),也就是让 NTLDR 认为 (hd1) 就是 (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 ] |
|
| 第4楼 fujianabc | 发表于 2008-04-12 10:18 |
| 金牌会员 发帖 1,616 积分 3,467 | |
Originally posted by oasisspirit at 2008-4-12 12:52 AM: 设得太大了,超过上限了,设个10就可以了 |
|
| 第5楼 barton | 发表于 2008-04-12 11:56 |
| 中级用户 发帖 197 积分 480 来自 黄冈 | |
|
timeout设为-1
基本可以达到你设为1000所想要达到的目的。 |
|
| 第6楼 oasisspirit | 发表于 2008-04-13 23:25 |
| 新手上路 发帖 6 积分 15 | |
Originally posted by barton at 2008-4-12 11:56: 对的哈, 我去看看 ![]() -- 刚 试过了,好像没有用哈 [ Last edited by oasisspirit on 2008-4-13 at 11:34 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |