请教,我2个硬盘,2个系统,如何设置GRUB

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
头像
x2chi
帖子: 22
注册时间: 2009-07-05 15:34

请教,我2个硬盘,2个系统,如何设置GRUB

#1

帖子 x2chi » 2009-08-24 23:26

我的机器2个硬盘,第一个装的是UBUNTU904,第二个是XP。
平时我用XP的时候都是在BIOS里关掉第一个硬盘。换回来的时候再关掉第二个硬盘。
不过这样太麻烦了。
我装的是GRUB2。
折腾半天,差点启动不了。
现在WINDOWS不能启动,选了WIN那项之后,就在屏幕左上角一个光标闪阿闪的,半天不动。

那位达人帮个忙,下面是grub.cfg里的内容。
还有,为什么ubuntu的启动项有这么多?删掉行不行?

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/update-grub using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set default=0
set timeout=5
set root=(hd0,1)
search --fs-uuid --set 1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2
if font /usr/share/grub/ascii.pff ; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
terminal gfxterm
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_hurd ###
### END /etc/grub.d/10_hurd ###

### BEGIN /etc/grub.d/10_linux ###
set root=(hd0,1)
search --fs-uuid --set 1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2
menuentry "Ubuntu, linux 2.6.28-15-generic" {
linux /boot/vmlinuz-2.6.28-15-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro quiet splash
initrd /boot/initrd.img-2.6.28-15-generic
}
menuentry "Ubuntu, linux 2.6.28-15-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-15-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro single
initrd /boot/initrd.img-2.6.28-15-generic
}
menuentry "Ubuntu, linux 2.6.28-14-generic" {
linux /boot/vmlinuz-2.6.28-14-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro quiet splash
initrd /boot/initrd.img-2.6.28-14-generic
}
menuentry "Ubuntu, linux 2.6.28-14-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-14-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro single
initrd /boot/initrd.img-2.6.28-14-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic" {
linux /boot/vmlinuz-2.6.28-13-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro quiet splash
initrd /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-13-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-13-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro single
initrd /boot/initrd.img-2.6.28-13-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic" {
linux /boot/vmlinuz-2.6.28-11-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
}
menuentry "Ubuntu, linux 2.6.28-11-generic (single-user mode)" {
linux /boot/vmlinuz-2.6.28-11-generic root=UUID=1fd40ad4-38a3-43fe-9fa0-8b9c68ff16c2 ro single
initrd /boot/initrd.img-2.6.28-11-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
linux /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
linux /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows NT/2000/XP (loader) (on /dev/sdb2)" {
set root=(hd1,2)
chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file is an example on how to add custom entries
### END /etc/grub.d/40_custom ###
头像
x2chi
帖子: 22
注册时间: 2009-07-05 15:34

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#2

帖子 x2chi » 2009-08-24 23:33

哦,我的xp是NTFS的。
头像
Terpineol
帖子: 1230
注册时间: 2007-12-09 14:35

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#3

帖子 Terpineol » 2009-08-24 23:40

看花了眼没有找到WIN的选项在那,这个可能比较麻烦,一是保证grub所在盘是第一启动设备二正确书写XP启动项
Linux is for human being,love is for human making
头像
x2chi
帖子: 22
注册时间: 2009-07-05 15:34

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#4

帖子 x2chi » 2009-08-24 23:51

说句题外话,很奇怪的事情,比如我用硬盘启动了windows或者ubuntu,关机后,将bios里两个硬盘都开,再启动时,自动启动上一次启动的系统,而不是启动第一个硬盘的ubuntu。

刚才我搜到这么一句话:
windows 引导必须读取NTLDR
mbr 的引导其实也是一样都要读取NTLDR。

GRUB 只是将 引导权交给 NTLDR。
但由于GRUB不认NTFS分区所以找不到NTLDR文件,所以引导不了!!!

觉得有点不可信。

win的选项在倒数第二段:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows NT/2000/XP (loader) (on /dev/sdb2)" {
set root=(hd1,2)
chainloader +1
}
### END /etc/grub.d/30_os-prober ###
头像
Terpineol
帖子: 1230
注册时间: 2007-12-09 14:35

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#5

帖子 Terpineol » 2009-08-25 0:00

SATA硬盘的话我不知道可不可跳线强制主从盘,bios启动时可以选择从那个硬盘启动的不用关硬盘的,grub2不熟,不过你的XP启动项(HD1,2)把2改成1或者说0看看
Linux is for human being,love is for human making
头像
x2chi
帖子: 22
注册时间: 2009-07-05 15:34

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#6

帖子 x2chi » 2009-08-25 0:12

哦,我改过,无论改成1、0……n,都不成,2是正确的。
我现在很怀疑是不是ntfs的原因。可文件夹里明明有ntfs.mod这个文件!
头像
Terpineol
帖子: 1230
注册时间: 2007-12-09 14:35

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#7

帖子 Terpineol » 2009-08-25 0:18

你的怀疑应该不成立,我就用过一次grub2,暂时帮你不到,反正可以用先多放狗找找看吧
Linux is for human being,love is for human making
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#8

帖子 smallapple » 2009-08-25 9:28

x2chi 写了:哦,我改过,无论改成1、0……n,都不成,2是正确的。
我现在很怀疑是不是ntfs的原因。可文件夹里明明有ntfs.mod这个文件!
怀疑是错的,不是ntfs的问题,是xp启动机制问题,试试这个

menuentry "Windows NT/2000/XP (loader) (on /dev/sdb2)" {
set root=(hd1,2)
drivemap -s (hd1) ${root}
chainloader +1
}
头像
x2chi
帖子: 22
注册时间: 2009-07-05 15:34

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#9

帖子 x2chi » 2009-08-26 23:30

smallapple 写了:
x2chi 写了:哦,我改过,无论改成1、0……n,都不成,2是正确的。
我现在很怀疑是不是ntfs的原因。可文件夹里明明有ntfs.mod这个文件!
怀疑是错的,不是ntfs的问题,是xp启动机制问题,试试这个

menuentry "Windows NT/2000/XP (loader) (on /dev/sdb2)" {
set root=(hd1,2)
drivemap -s (hd1) ${root}
chainloader +1
}
我 照你的改了,可是。。。。电脑竟然说不认得chainloader这个命令。。。。奇怪阿,没写错阿。 :em20
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#10

帖子 smallapple » 2009-08-27 9:26

把chainolader +1改为 chainloader /ntldr
或试试从第二硬盘mbr启动
menuentry "Windows NT/2000/XP (loader) (on /dev/sdb2)" {
drivemap (hd0) (hd1)
drivemap (hd1) (hd0)
set root=(hd1)
chainloader +1
}
linwx
帖子: 30
注册时间: 2008-01-10 14:28

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#11

帖子 linwx » 2009-08-27 10:24

应该不用在BIOS里面改的,是XP那一个分区下的boot.ini文件的参数不对。具体的可以上网找
linwx
帖子: 30
注册时间: 2008-01-10 14:28

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#12

帖子 linwx » 2009-08-27 10:27

BOOT.INI内容的意思
[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS改成default=multi(0)disk(1)rdisk(0)partition(1)\WINDOWS
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect改成multi(0)disk(1)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

试一下,不过还是上网查一查好。
linwx
帖子: 30
注册时间: 2008-01-10 14:28

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#13

帖子 linwx » 2009-08-27 10:30

我想GRUB2应该没有问题。
multi(0)disk(0)rdisk(0) 第二硬盘应该不是0,而是1,可以试一试.到网上查就知道是什么意思了
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#14

帖子 smallapple » 2009-08-27 10:38

linwx 写了:我想GRUB2应该没有问题。
multi(0)disk(0)rdisk(0) 第二硬盘应该不是0,而是1,可以试一试.到网上查就知道是什么意思了
这个应该是不能启动xp的。xp的启动机制不能从第二硬盘启动。

改成下面这个应该是可以的。(在虚拟机双硬盘试过,可行)
menuentry "Windows NT/2000/XP (loader) (on /dev/sdb2)" {
drivemap (hd0) (hd1)
drivemap (hd1) (hd0)
set root=(hd1,2)
chainloader +1
}
头像
yifeimiao
帖子: 50
注册时间: 2007-01-03 9:19

Re: 请教,我2个硬盘,2个系统,如何设置GRUB

#15

帖子 yifeimiao » 2009-08-27 15:00

grub来回跳~一点问题也没有

比如一键恢复里写的
title WinXP/2000/2003
find --set-root /ntldr
chainloader /ntldr

title Win7/Vista/2008
find --set-root /bootmgr
chainloader /bootmgr
可以在ubuntu所在硬盘设置这个跳转到windows

或者在windows盘里用grub4dos跳入ubuntu
回复