无忧启动论坛

 找回密码
 注册
搜索

引导位于逻辑分区的BOOTMGR/NTLDR

查看数: 9940 | 评论数: 9 | 收藏 3
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-4-30 23:20

正文摘要:

本帖最后由 2011GameBoy 于 2013-5-2 01:41 编辑 微软的NTLDR/BOOTMGR是无法像grub2等,能够从逻辑分区启动的。 换句话说,如果不经过特殊处理,我们是没有办法从(hd0,4)之类的逻辑分区成功启动XP/WIN7。 应对 ...

回复

fujianabc 发表于 2013-5-4 16:33:29
本帖最后由 fujianabc 于 2013-5-4 16:37 编辑

曾经我从(hd0,5)上启动过xp,为了避免ntldr寻找主分区boot.ini,第二条map把(hd0)map到(hd1)了。另外你不能像一楼那样chainloader +1,这样直接加载逻辑分区第一扇区会有问题,应该直接chainloader ntldr
map (hd0,5)+1 (hd0)
map (hd0) (hd1)
map --hook
root (hd0,0)
chainloader (hd0,0)/ntldr

最后还要把boot.ini中把rdisk(0)改为rdisk(1),否则切换到保护模式map失效会蓝屏的
2011GameBoy 发表于 2013-5-6 18:53:46
2011GameBoy 发表于 2013-5-6 18:21:53
的确,对于BOOTMGR来说,只要调整partition(或者还有其他)选项就行了;
但是对于NTLDR来说就不行了。
insmod那个是grub2加载MS-DOS分区支持模块的命令语句。
songhangzhou 发表于 2013-5-6 17:54:09

我记得很久以前,在逻辑分区上全新安装过WIN7,启动过WIN7的。。

关键是修改 BCD:去除BCD签名后,在BCD中必须指定启动分区partition 例如partition=f:   path  \Windows\system32\winload.exe   

。。。。。。还有就是device位置 和 osdivice位置,boot.sdi位置等

所谓指定的启动分区partition,可能是主分区,或逻辑分区

记得与启动逻辑分区的ntldr不同,bootmgr是不用map的,直接chainloader /bootmgr即可

时间比较长,大概只记得这么多了,仅供参考,

另外,请问1楼菜单中加载insmod part_msdos是什么意思?加载一个MS-DOS格式的分区?没看明白,谢谢!
2011GameBoy 发表于 2013-5-5 03:53:11
fujianabc 发表于 2013-5-4 16:33
曾经我从(hd0,5)上启动过xp,为了避免ntldr寻找主分区boot.ini,第二条map把(hd0)map到(hd1)了。另外你不能 ...


此处省略一百字,我才发现:分区的开始柱面、扇区和结束柱面和扇区有要求的!必须是:1 1 和 254 63的!
才可以使map (hd0,5)+1 (hd0)之类的命令成功;
2011GameBoy 发表于 2013-5-5 01:20:42
本帖最后由 2011GameBoy 于 2013-5-5 01:22 编辑
fujianabc 发表于 2013-5-4 16:33
曾经我从(hd0,5)上启动过xp,为了避免ntldr寻找主分区boot.ini,第二条map把(hd0)map到(hd1)了。另外你不能 ...


但是map (hd0,5)+1 (hd0)这个命令本身就无法执行,
其提示:
  1. Extended partition table is invalid , or its CHS valus confilct with the BPB in a logical partition
复制代码
这个错误,我新创建的虚拟机也会出现。
对此你有什么解决方法没有?
2011GameBoy 发表于 2013-5-4 00:34:40
据测试,
1、BOOTMGR可以在任意的逻辑分区启动,但是可能要求当前硬盘上没有激活的主分区(否则会到该主分区寻找BCD而不是逻辑分区);
2、NTLDR可以在(hd0,4)这个逻辑分区启动,但是如果是(hd0,5)等其他逻辑分区,虽然能够启动,但是它会寻找主分区上的boot.ini,而不是它身处的逻辑分区上的boot.ini。
2011GameBoy 发表于 2013-5-2 01:46:42
本帖最后由 2011GameBoy 于 2013-5-2 01:48 编辑

我的目的就是让BOOTMGR/NTLDR误认为它身处的逻辑分区是主分区,并且在里面找到他的BCD/BOOT.INI并加载系统列表。并成功启动WIN7/XP。

我记得之前,无论是XP还是Win7,都可以
drivemap -s (hd0) ${root}
这样启动的,但是现在貌似不行了,grub4dos我也没想到类似的解决方案。

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

闽公网安备 35020302032614号

GMT+8, 2025-2-27 00:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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