[问题]用NTloader引导ubuntu遇到的问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
neozhou
帖子: 16
注册时间: 2006-11-14 19:42

[问题]用NTloader引导ubuntu遇到的问题

#1

帖子 neozhou » 2006-11-14 20:18

上个月在XP的基础上装了ubuntu(linux装在第一个硬盘第三个主分区内),用grub引导(写入mbr),前几天因为某种原因,重装了XP(格式化C盘),grub就无法使用了,在网上看到一篇帖子,说是可以用grub4nt在NTLOADER基础上引导linux,于是试了一下,对grub4nt的menu.lst进行设置,在menu.lst文件内通过configfile直接引入Linux系统根分区内的/boot/grub/menu.lst菜单。
重启系统发现,可以进入grub菜单,但是点击进入ubuntu的命令后,屏幕出现"disk error",这是什么原因?
我C盘下的menu.lst是这样写的:
default 0
timeout 5
title GNU Grub menu
configfile (hd0,2)/boot/grub/menu.lst

linux分区下的menu.lst是这样的:
default 0
timeout 5
title ubuntu
root(hd0,2)
kernel /boot/vmlinuz-2.6.15-27-386 root/dev/hda3 ro quiet splash
initrd /boot/initrd.img-2.6.15-27-386
savedefault
boot

听说grub4nt不支持savedefault命令。不知道是不是这个原因,而我只想通过ntloader来加载Grub,最后由Grub实现Linux的引导,以避免每次重装WINDOWS还要配置GRUB的麻烦,所以想请大家帮帮忙看看,这该怎么解决?
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

#2

帖子 alpha.gu » 2006-11-15 19:23

假设你的分区是这样的,C: Windows /dev/hda1; Linux /dev/hda3

假设你的Linux的/boot/grub在 /dev/hda3

先用Linux LiveCD启动系统,启动后,grub进入grub设定

1. find /boot/grub/stage1
应该回报 (hd0,2)

2. root (hd0,2)
3. setup (hd0,2)
4. quit

然后dd if=/dev/hda3 of=/mnt/hda1/BootSect.bin bs=512 count=1
这样子,在C:就会生成BootSect.bin
然后编辑boot.ini,加入C:\BootSect.bin="Ubuntu Linux"
这样就可以用NtLoader来启动Linux了。
头像
alpha.gu
帖子: 1456
注册时间: 2006-09-10 16:06
联系:

#3

帖子 alpha.gu » 2006-11-15 19:26

如果还是要用Grub来作引导器,则LiveCD设定grub时,改为

root (hd0,2)
setup (hd0)


编辑menu.lst,加入:

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

这样应该就可以了,关于这个部分,我也是新手,摸索了很久呢。

希望楼主能看明白我写的东西,有些地方没有详细注解,但应该不会看不明白吧:)
neozhou
帖子: 16
注册时间: 2006-11-14 19:42

谢谢~

#4

帖子 neozhou » 2006-11-15 23:21

谢谢!问题已解决,现在可以进入ubuntu了。
我明白你的意思,你是让我把Linux分区的第一个大小为512字节的扇区复制到Windows启动分区根目录下名为BootSect.bin的文件,但是我的WINDOWS分区都是NTFS格式的,在linux下无法写入,后来我的解决办法就是,先把该文件生成到U盘里,再到WINDOWS下拷到C盘目录下。
可是我就想不通,为什么用configfile直接引入Linux系统根分区内的/boot/grub/menu.lst菜单无法启动linux呢?望高人指点。
回复