分页: 1 / 1

[讨论]能不能不装grub在mbr上而启动Linux

发表于 : 2006-05-05 22:05
xinye0123
我想把grub装在Linux分区所在的引导扇区里或者不安装,用wingrub去启动,请问该怎么做?应该注意些什么?

发表于 : 2006-05-05 22:47
麻佳

发表于 : 2006-05-06 11:49
xinye0123
如果你的系统现在正在使用grub引导方式,请在操作之前查看一下/boot/grub/menu.lst的内容,建议将/boot/grub/menu.lst拷贝一份以备用(将它拷到fat32分区中存放就可以)!

进入window环境下

1) 下载grub020p.zip并解压到C盘根目录下,打开C盘查看一下是否有以下文件

C:\boot (文件夹)
C:\ChangeLog.txt
C:\compile
C:\COPYING
C:\grldr
C:\grub4lin
C:\grub-0.95-patch1-startups
C:\grub-0.95-patch2-findroot
C:\grub-0.95-patch3-ntfs
C:\grub-0.95-patch4-emulation
C:\grub-0.95-patch5-splash
C:\grub-0.95-patch6-scdrom
C:\grub-0.95-patch7-bioscdrom
C:\grub.exe
C:\grub.pif
C:\README.txt
C:\robin.xpm.gz
C:\scratchpad.txt

2) 修改C:\boot\grub\menu.lst ,用你刚才从linux系统中拷贝的menu.lst覆盖C:\boot\grub\menu.lst

3) 进入grub命令行方式 (出现grub引导菜单时按c键)
> root (hd0,0)
> setup (hd0)

4) 重启计算机

第3项 两个命令具体作用是什么?他的grub是不是装在Linux所在分区的boot目录里?因为我没有光驱,软驱,mbr搞坏了很麻烦的,所以不想把grub装在mbr上,以前碰到多次装了grub,xp就进不去了

发表于 : 2006-05-06 21:08
laneast
可以用WindowsXP自己的引导程序来引导的
安装的时候把Grub装Linux的根分区,比如我的就是/dev/hda2
然后在grub的命令方式运行:
>chainloader (hd0,1)+1 # 根据你Linux所在的分区情况
>boot
然后就可以进入Linux了,然后在linux下把引导扇弄到Windows下的C:\上去:
sudo dd if=/dev/hda2 of=/media/hda1/bootsect.lnx bs=512 count=1 # 根据你的具体情况改动
sudo vi /media/hda1/boot.ini
在boot.ini后面加上一句
c:\bootsect.lnx="Ubuntu GNU/Linux"
然后重启,开机的时候选Ubuntu GNU/Linux那项试试:)

发表于 : 2006-05-06 22:37
nobug
我现在就是这样的,安装ubuntu的时候不安装grub跟lilo,然后使用XP的启动菜单引导dosgrub的menu.lst,然后就可以进入ubuntu了,升级内核的时候也只要相应的改一下menu.lst里ubuntu的内核文件名就可以了。

发表于 : 2006-05-08 15:49
xinye0123
5楼的朋友,你的意思是说当Ubuntu提示你安装grub的时候掉过吗?那根目录下还会有/boot目录吗?接着在dosgrub上的menu.lst上该怎么写呢?我就想你那样

发表于 : 2006-05-08 20:48
nobug
正解。安装系统时提示安装grub跟lilo都取消,不用管它的警告,文件跟目录都会有,只是它不会往MBR写东西了,这样第一次启动时也就进不了ubuntu,需要进入XP修改dosgrub的menu.lst,内核文件名必须跟安装的内核文件名一致,否则启动ubuntu时就找不到文件了。

下面是我的设置,供你参考。

XP的启动文件C:\boot.ini

代码: 全选

[Boot Loader]
Timeout=10
Default=c:\grldr               [color=red]------------缺省启动grub[/color]
[Operating Systems]
multi(0)disk(0)rdisk(0)partition(4)\XP="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(5)\WINDOWS="Windows Server 2003, Standard" /fastdetect
c:\grldr="Grub"                [color=red]------------dosgrub的安装位置[/color]
C:\BOOT\BOOTDISK.bin="虚拟软盘" 
C:\BOOT\NTFS.bin="CIA Commander" 
C:\BOOT\BOOTSECT.cdr="光驱" 
grub的启动菜单文件C:\boot\grub\menu.lst
这个文件很长,把没用的部分注释掉,下面是关键的部分

代码: 全选

###############################################################################
# 启动硬盘上的其它系统
###############################################################################
##[color=red]每个启动项由3行组成,第一行标题随便写,自己认识就行,后2行的分区位置及文件名不可写错,(hd0,2)以及/dev/hda3表示/boot分区在第一硬盘第三主分区,根据你的分区修改,被注释的2.6.12-9-386是5.10安装时的内核文件版本,现在用的是升级后的2.6.15-21-686[/color]
#title	Ubuntu, kernel 2.6.12-9-386 on (hd0,2)
#kernel	(hd0,2)/boot/vmlinuz-2.6.12-9-386 root=/dev/hda3 ro quiet splash
#initrd	(hd0,2)/boot/initrd.img-2.6.12-9-386
title		Ubuntu, kernel 2.6.15-21-686 on (hd0,2)
kernel	(hd0,2)/boot/vmlinuz-2.6.15-21-686 root=/dev/hda3 ro quiet splash
initrd	(hd0,2)/boot/initrd.img-2.6.15-21-686

#title	Ubuntu, kernel 2.6.12-9-386 on (hd0,2) (recovery mode)
#kernel	(hd0,2)/boot/vmlinuz-2.6.12-9-386 root=/dev/hda3 ro single
#initrd	(hd0,2)/boot/initrd.img-2.6.12-9-386
title		Ubuntu, kernel 2.6.15-21-686 on (hd0,2) (recovery mode)
kernel	(hd0,2)/boot/vmlinuz-2.6.15-21-686 root=/dev/hda3 ro single
initrd	(hd0,2)/boot/initrd.img-2.6.15-21-686

title	Ubuntu, memtest86+ on (hd0,2)
kernel	(hd0,2)/boot/memtest86+.bin
如果你的ubuntu能通过grub管理XP启动最好让它安装,省得改来改去,我是不得不这样,ubuntu的grub启动我的XP失败,害的我差点进不了XP,只好这样解决了。如果你也要这样做,记得先保证dosgrub能正常启动。

发表于 : 2006-05-29 17:24
laneast
xinye0123 写了:5楼的朋友,你的意思是说当Ubuntu提示你安装grub的时候掉过吗?那根目录下还会有/boot目录吗?接着在dosgrub上的menu.lst上该怎么写呢?我就想你那样
上面的那个是有了dosgrub之后我的做法
之前我都是把grub装在Linux下的根分区上(假如是/dev/hda2),不装在mbr上,然后在分区的时候把hda2设置成激活的,重启后是直接进入Ubuntu的,然后把/dev/hda2的第一个扇区弄到Windows的C盘(对于我是/dev/hda1)下:
dd if=/dev/hda2 of=/media/hda1/bootsect.lnx of=512 count=1
然后编辑c:\boot.ini(/media/hda1/boot.ini)
在[operating systems]下面加上
c:\bootsect.lnx="Ubuntu GNU/Linux"
然后再把/dev/hda1改成激活的,把/dev/hda2取消激活就可以了

其实只要把grub装在Linux的分区下,然后dd出个512字节放到c:\下面去,然后编辑boot.ini就可以了,我上面的方法可以,用LiveCD也可以