本帖最后由 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失效会蓝屏的 |
的确,对于BOOTMGR来说,只要调整partition(或者还有其他)选项就行了; 但是对于NTLDR来说就不行了。 insmod那个是grub2加载MS-DOS分区支持模块的命令语句。 |
我记得很久以前,在逻辑分区上全新安装过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格式的分区?没看明白,谢谢! |
据测试, 1、BOOTMGR可以在任意的逻辑分区启动,但是可能要求当前硬盘上没有激活的主分区(否则会到该主分区寻找BCD而不是逻辑分区); 2、NTLDR可以在(hd0,4)这个逻辑分区启动,但是如果是(hd0,5)等其他逻辑分区,虽然能够启动,但是它会寻找主分区上的boot.ini,而不是它身处的逻辑分区上的boot.ini。 |
本帖最后由 2011GameBoy 于 2013-5-2 01:48 编辑 我的目的就是让BOOTMGR/NTLDR误认为它身处的逻辑分区是主分区,并且在里面找到他的BCD/BOOT.INI并加载系统列表。并成功启动WIN7/XP。 我记得之前,无论是XP还是Win7,都可以 drivemap -s (hd0) ${root} 这样启动的,但是现在貌似不行了,grub4dos我也没想到类似的解决方案。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.