红联Linux门户
Linux帮助

用windows菜单引导linux的方法

发布时间:2009-08-11 17:07:03来源:红联作者:pl_014
[i=s] 本帖最后由 pl_014 于 2009-9-12 22:02 编辑 [/i]

  严格的讲应该是用windows启动菜单引导grub for dos,然后再引导linux(是直接引导,不进linux的grub了),本文以windowsXP和openSUSE linux11.1为例进行讲解。
首先说明,我的windowsXP装在第一个分区,为C盘,openSUSE的启动菜单(/boot目录)单独挂载为一个分区。
1.从网上下载grub for dos,将grub for dos安装于windows启动菜单所在分区(C盘)
2.打开boot.ini(可以右键单击我的电脑--属性--系统--高级--启动和故障恢复--设置--编辑来打开),在末尾添一句c:\grldr = GRUB4DOS,可酌情修改 timeout ,下面是示例:
timeout=10
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="DeepinXP-V4" /noexecute=optin /fastdetect
c:\grldr = GRUB4DOS

3.访问/boot目录所在的分区,找到并打开menu.lst,在openSUSE在,该文件位于/boot/grub,打开后会看到类似于以下的文本(引导其它操作系统的项略掉)

# Modified by YaST2. Last modification on Sat Feb 21 18:41:06 CST 2009
default 2
timeout 8
gfxmenu (hd0,1)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: xen###
title Xen -- openSUSE 11.1 - 2.6.27.7-9
root (hd0,1)
kernel /xen.gz
module /vmlinuz-2.6.27.7-9-xen root=/dev/linux/openSUSE resume=/dev/linux/swap splash=silent showopts vga=0x31a
module /initrd-2.6.27.7-9-xen

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.7-9
root (hd0,1)
kernel /vmlinuz-2.6.27.7-9-default root=/dev/linux/openSUSE resume=/dev/linux/swap splash=silent showopts vga=0x31a
initrd /initrd-2.6.27.7-9-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.1 - 2.6.27.7-9
root (hd0,1)
kernel /vmlinuz-2.6.27.7-9-default root=/dev/linux/openSUSE showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
initrd /initrd-2.6.27.7-9-default


找到第一个以"title"为开头的行,将从行直到文件末尾的内容全部复制(如下),打开C盘的menu.lst,将其复制到文本的末尾。
title Xen -- openSUSE 11.1 - 2.6.27.7-9
root (hd0,1)
kernel /xen.gz
module /vmlinuz-2.6.27.7-9-xen root=/dev/linux/openSUSE resume=/dev/linux/swap splash=silent showopts vga=0x31a
module /initrd-2.6.27.7-9-xen

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.7-9
root (hd0,1)
kernel /vmlinuz-2.6.27.7-9-default root=/dev/linux/openSUSE resume=/dev/linux/swap splash=silent showopts vga=0x31a
initrd /initrd-2.6.27.7-9-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.1 - 2.6.27.7-9
root (hd0,1)
kernel /vmlinuz-2.6.27.7-9-default root=/dev/linux/openSUSE showopts ide=nodma apm=off noresume edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
initrd /initrd-2.6.27.7-9-default

4.如果你是以grub启动的可以改为以windows的菜单启动,也可以用grub引导(不过这就多此一举了)
5.好了,重启,在windows启动菜单中选择GRUB4DOS,找到linux的启动项,在上面直接点回车,就直接启动linux了,不再进入linux自己的grub

注:1.windows启动菜单可以在ntfs分区内,但就是进不了dos了。
2.访问/boot目录一般可以启动linux后访问,也可以使用liveCD挂载,还可以使用linux安装盘的系统援救模式下找到,但需要将 menu.lst复制到其它介质或分区后方可,如果windows下有可以访问ext2、ext3分区的程序或都/boot在fat分区内,也可以在 windows下访问/boot。
3.c:\grldr = GRUB4DOS一句和以"title"为开头的行中GRUB4DOS和title后一行内的文本是可以修改的,但最好为半角英文或半角数字。
4.形如###Don't change this comment - YaST2 identifier: Original name: failsafe###的语应该是可以删去的注释语句。
5.如果升级内核,也要同时修改、更新grub for dos的引导菜单。


相关文章:http://dev.csdn.net/article/67905.shtm
文章评论

共有 8 条评论

  1. xuejinhou 于 2009-08-16 00:39:34发表:

    貌似很麻烦啊

  2. pl_014 于 2009-08-12 11:47:08发表:

    恩,有道理,不过没试过。

  3. hantu 于 2009-08-12 00:20:42发表:

    不必这么麻烦,也可以不用grub for dos ,将grub安装到Linux分区的引导扇区并用dd命令将它提取,例如起名为grub.bin,将它放到C盘根目录,修改boot.ini加一行:c:\grub.bin="your linux" 就OK了。

  4. aaronshang 于 2009-08-11 22:49:10发表:

    正在学习中,谢谢作者的帮忙!

  5. wangyu 于 2009-08-11 18:48:02发表:

    呵呵,你换个vista或7试试

  6. pl_014 于 2009-08-11 18:22:34发表:

    不过删掉grub还要麻烦点,我们一般不删掉grub

  7. deepwhite 于 2009-08-11 18:01:51发表:

    这样可不在MBR上使用GRUB了,但是,一旦WINDOWS所在的分区挂掉,你的Linux起不来了。

  8. Harlech 于 2009-08-11 18:00:39发表:

    了解中