无忧启动论坛

标题: 关于示例menu.lst中启动windows的一个问题 [打印本页]

作者: 2010lzu    时间: 2012-10-24 19:53
标题: 关于示例menu.lst中启动windows的一个问题
估计是硬盘MBR有问题了,开机老重启。于是用U盘启动(U盘里就只做成启动盘,放置了grldr,0.4.6a 10月份的某个版本),然后手动输入下列命令:

find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
boot

无法启动系统。
显示下列内容:
Invalid BOOT.INI file
Booting from C:\windows\
NTDETECT failed

后面看了sample文件夹中的menu.lst,再次用该U盘启动,手动输入下列命令:
fallback +1
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
boot

就可以启动我硬盘上的WINDOWS系统了。请问这两者有什么区别??
我上面的几条命令为什么无法启动该系统呢?
作者: 2010lzu    时间: 2012-10-24 19:56
后面把grub4dos装到MBR上,WINDOWS根目录下放上grldr,重启,进入硬盘上的grub4dos。手动输入上面的两种命令,都能启动系统。
作者: hijk1    时间: 2012-10-24 20:21
u盘启动时 u盘就是hd0 应该搜索非hd0吧
作者: 不点    时间: 2012-10-29 14:42
楼主犯了一个常规错误。

传统地说,Windows 的启动通常(必须)从第一硬盘 (hd0) 或第一软盘 (fd0) 启动,而不可以从第二硬盘 (hd1) 或第二软盘 (fd1) 启动。

这本质上也就是继承了 DOS 的启动方法。

当从 USB 设备启动时,BIOS 会把 USB 设备当作第一硬盘 (hd0) 或第一软盘 (fd0),而把真实的硬盘当作第二硬盘(hd1) 或者把真实的软盘当作第二软盘(fd1)。

因此,要想从真实硬盘启动你的 Windows,必须有个交换磁盘的动作,也就是说,把真实硬盘的编号从第二硬盘变为第一硬盘,这才是 Windows 所 “ 满意 ” 的启动环境。
作者: 2010lzu    时间: 2012-10-29 17:42
标题: 回复 #4 不点 的帖子
谢谢不点大师的解答。
我原认为
find --set-root --ignore-floppies --ignore-cd /ntldr
这条命令找到ntldr所在的分区为根分区,既然都设置为根了,再从它启动就是理所当然的了……
既然启动不了,这个--set-root参数又有什么作用呢?

map () (hd0)
map (hd0) ()
这两条可能就是说,无论根目录下有ntldr文件的分区时哪个,都把它映射成(hd0),当然windows只能从hd0启动了?
作者: 不点    时间: 2012-10-29 17:48
--set-root 顾名思义,就是把找到文件的那个分区设置为当前默认分区(即,根分区)。

你理解的两条 map 的作用以及它的目的,大致是正确的。
作者: 2010lzu    时间: 2012-10-30 21:13
标题: 回复 #6 不点 的帖子
谢谢不点大师解答!!




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