|
本帖最后由 2011GameBoy 于 2013-5-2 01:41 编辑
微软的NTLDR/BOOTMGR是无法像grub2等,能够从逻辑分区启动的。
换句话说,如果不经过特殊处理,我们是没有办法从(hd0,4)之类的逻辑分区成功启动XP/WIN7。
应对这“缺点”,在grub2(ubuntu10.04/12.04)下,可以通过如下命令克服:- set root='(hd0,5)'/set root='hd0,msdos6'##(这个命令因grub2版本不同命名方式不同,这是令人厌烦的)
- search --no-floppy --fs-uuid --set=root 68821BE0821BB214
- drivemap -s (hd0) ${root}
- chainloader +1
复制代码 但是不知到为什么,这个并不是总是行得通,我记得我利用win7安装器把win那个分区格调之后,重新安装并写入正确的BOOTMGR引导扇区(我并不会蠢到让那个安装器覆盖我的MBR的),然后切换到ubuntu10.04下update-grub之后,检查过grub。cfg,语法都是类似上面的,就是行不通了。自从那次,我被迫创建一个主分区来存放BOOTMGR和BOOT。
这次我使用grub4dos作为我的启动管理器:主要原因是因为我升级到了Ubuntu 13.04,其带的grub2的cfg文件过于复杂了,我决定自己维护我的menu.lst了。
我现在的ubuntu13.04带的grub2看来并没有使用drivemap -s (hd0) ${root}那样的语句去对待处于逻辑分区的BOOTMGR,我觉得这会出问题的(见下面代码)。但是我并没有尝试去用Windows 7 (loader) (on /dev/sda6)这个启动过。- menuentry 'Windows 7 (loader) (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-chain-6813-5A57' {
- insmod part_msdos
- insmod fat
- set root='hd0,msdos2'
- if [ x$feature_platform_search_hint = xy ]; then
- search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 6813-5A57
- else
- search --no-floppy --fs-uuid --set=root 6813-5A57
- fi
- chainloader +1
- }
- menuentry 'Windows 7 (loader) (on /dev/sda6)' --class windows --class os $menuentry_id_option 'osprober-chain-68821BE0821BB214' {
- insmod part_msdos
- insmod ntfs
- set root='hd0,msdos6'
- if [ x$feature_platform_search_hint = xy ]; then
- search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos6 --hint-efi=hd0,msdos6 --hint-baremetal=ahci0,msdos6 68821BE0821BB214
- else
- search --no-floppy --fs-uuid --set=root 68821BE0821BB214
- fi
- chainloader +1
- }
复制代码 无论如何,我都希望可以引导处于逻辑分区的NTLDR和BOOTMGR;
我上网搜索了一些资料,有的说可以这样:- map (hd0,4)+1 (hd0) ##但是出错了,我特意创建了一个虚拟机,也是同样的错误:“Extended partition table is invalid , or its CHS valus confilct with the BPB in a logical partition”。
- map --hook
- makeactive
- chainloader +1
- boot
复制代码 之类的可以这样,请问有人通过这个可以引导(hd0,4)或者(hd0,5)上的(bootmgr/ntldr),并成功让其启动WIN7或者XP么?
已知问题:
1、引导位于逻辑分区上的bootmgr,尽管的确启动了bootmgr,但是它会提示找不到BCD类似的错误消息,从而无法启动WIN7。
2、我的电脑执行(hd0,4)+1 (hd0)会出错,提示说“Extended partition table is invalid , or its CHS valus confilct with the BPB in a logical partition”。各位有成功执行这个命令么?为什么我的这里不行呢?
|
|