欢迎光临Software MyZone,有问题可留言或到站点论坛发帖,争取第一时间帮忙解决 || 站点论坛:火龙论坛 || 淘宝小店:应小心的易淘屋 【欢迎大家提建设性意见】

用 Win7 引导 grub4dos,以及用 grub 引导 Win7

最经典的是在grub中加了windows 7中的引导……其余的大家勉强看看
以前在 Windows XP 中用 grub4dos 引导 linux 很容易,直接改 boot.ini 就行了。现在换了 Win7 ,结果反而更麻烦了。

基本步骤是:

下载 grub4dos:https://gna.org/projects/grub4dos/
把 grldr.mbr 和 grldr 拷到 C:/
用 bcdedit 添加一个 bootsector 类型的 BCD 启动项,运行 grldr.mbr
启动的时候,grldr.mbr 会在各个分区下搜索 grldr,并装载之
详见:

http://bbs.znpc.net/viewthread.php?tid=2300&extra=&page=1

http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos安装和启动

但我遇到的问题更麻烦:我的 Win7 是用 grldr 模拟 BIOS 激活的!

也就是说 MBR 里的内容已经是 grldr.mbr,而且 C:/ 本来就有一个 grldr ,但那个 grldr 是定制过的,包含着 BIOS 信息,还自带了 menu.lst,我不能覆盖,也不能修改。

经过各种尝试,终于找到了一种解决方案:用 16 进制编辑器修改 grldr.mbr ,将里面的 grldr 全部替换成 gdldr 。再把 grub4dos 原版的那个 grldr 改名为 gdldr 放在 C:/ 下。这样 Win7 启动的时候,选择 grldr.mbr 的菜单,会查找 gdldr 并装载。如此一来就完美地解决了用 grldr 激活的的 Win7 无法再使用 grldr 引导 linux 的问题。

大家可以参考下面两幅图:

1. 如果不修改 grldr.mbr,只用常规方法的话,会陷入死循环:

2. 修改 grldr.mbr ,成功跳出死循环:

还有就是 menu.lst 的写法。因为我希望在 Windows 的引导菜单能够进入 grub,而在 grub 的菜单中也能回到 Windows。在 grub 中引导 Windows XP 我们只需要这样写:

title Windows XP  
rootnoverify (hd0,0)  
chainloader +1 

但自从 Vista 之后,Windows 的引导管理器就由 ntldr 变成了 bootmgr ,menu.lst 的写法也要这样:

title Windows 7  
acpi  
fallback 1  
root (hd0,0)  
chainloader /bootmgr

摘自:http://blog.csdn.net/shell_picker/article/details/5945940

Tags: