红联Linux门户
Linux帮助
当前位置: 红联Linux门户 > SuSE

XP & Suse 11 之 Grub 的迷惑 !

发布时间:2008-09-12 18:55:58来源:红联作者:sean666
简单来说 开此文是要说说双系统启动的疑问....
我有一颗SATA和一颗IDE硬碟
SATA装XP。IDE装Suse 两颗硬碟可由bios设定启动顺序
所以..设定SATA作启动 就只会进XP完全读不到Grub去进入Suse
设定IDE作启动 就可以正常启动grub进入Suse-linux 但grub启动选单选择XP是进不了XP的...
明明menu.lst就没设定错,却进不了XP。 这情况只有装ubuntu不会发生(最近试用好几版linux)
** 以下是我的硬碟分区资料
*BIOS设定IDE启动*
Disk /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xc95f0520

Device Boot Start End Blocks Id System
/dev/sda1 * 1 6527 52428096 7 HPFS/NTFS
/dev/sda2 6528 6919 3148740 c W95 FAT32 (LBA)
/dev/sda3 6920 28443 172891530 7 HPFS/NTFS
/dev/sda4 28444 30401 15727635 5 Extended
/dev/sda5 28444 30401 15727603+ bc Unknown

Disk /dev/sdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xc442934a

Device Boot Start End Blocks Id System
/dev/sdb1 1 4864 39070048+ 7 HPFS/NTFS
/dev/sdb2 * 4865 9729 39078112+ f W95 Ext'd (LBA)
/dev/sdb5 8392 9729 10747453+ b W95 FAT32
/dev/sdb6 4865 5126 2104452 82 Linux swap / Solaris
/dev/sdb7 5127 6432 10490413+ 83 Linux
/dev/sdb8 6433 8391 15735636 83 Linux

Partition table entries are not in disk order

------------------------------------------------------------------------
*设定SATA硬碟作为启动时的分区表就不用管了,反正跟另一颗IDE是搭不着的。

*以下为 /boot/grub/menu.lst 内容*

# Modified by YaST2. Last modification on Fri Sep 12 00:23:54 CST 2008
default 0
timeout 8
gfxmenu (hd0,6)/boot/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.0 - 2.6.25.16-0.1
root (hd0,6)
kernel /boot/vmlinuz-2.6.25.16-0.1-default root=/dev/disk/by-id/scsi-SATA_ST380013A_5JVLDWE1-part7 resume=/dev/sdb6 splash=silent showopts vga=0x317
initrd /boot/initrd-2.6.25.16-0.1-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.0 - 2.6.25.16-0.1
root (hd0,6)
kernel /boot/vmlinuz-2.6.25.16-0.1-default root=/dev/disk/by-id/scsi-SATA_ST380013A_5JVLDWE1-part7 showopts ide=nodma apm=off acpi=off noresume edd=off x11failsafe vga=0x317
initrd /boot/initrd-2.6.25.16-0.1-default

###Don't change this comment - YaST2 identifier: Original name: windows 1###
title Windows XP
rootnoverify (hd0,6)
chainloader (hd1,0)+1

---------------------------------------------------------------------------------

我只知道 因为两颗硬碟可以由BIOS设定哪一颗作为优先启动,可能会导致Grub识别错误或混乱
但是 我比较想知道为何ubuntu却可以做到启动XP?(当时我是设定IDE作优先启动)
不过我不喜欢ubuntu的介面,没亲和力,尤其是终端机介面,Suse的终端机介面就好看很多,很有质感!
我在想会不会是ubuntu安装时,Grub安装时另外加入硬体id识别,所以才能启动XP?
因为我有特地看了一下ubuntu下Grub的 /boot/grub/menu.lst 内容,里面关于XP有多了硬体id识别码
我原本有备份下来,但是重装Suse时被格式化掉了。
以上问题期望这里的高手大大们为小弟解惑!感激~
文章评论

共有 6 条评论

  1. beta402 于 2008-10-05 14:51:15发表:

    贴上偶的 menu.lst 希望有帮助
    为1 SATA硬盘,2 ATA 硬盘分别安装了 windows XP ,Ubuntu, suse 10.0 , Debian 4.0和 Foresight 2.0
    使用suse安装的Grub1.5引导系统,初装时 无法引导Debian 和foresight ,后修改menu.lst实现所有系统的引导。

    # Modified by YaST2. Last modification on 五 10月 3 20:52:26 CST 2008
    color white/blue black/light-gray
    default 3
    timeout 8
    gfxmenu (hd1,5)/boot/message

    ###Don't change this comment - YaST2 identifier: Original name: linux###
    title SUSE Linux Enterprise Desktop 10
    root (hd1,5)
    kernel /boot/vmlinuz root=/dev/hda6 vga=0x314 resume=/dev/hda5 splash=silent showopts
    initrd /boot/initrd

    ###Don't change this comment - YaST2 identifier: Original name: Debian GNU/Linux, kernel 2.6.18-6-686 (/dev/hda3)###
    title Debian GNU/Linux, kernel 2.6.18-6-686 (/dev/hda3)
    kernel (hd1,2)/boot/vmlinuz-2.6.18-6-686 root=/dev/hda3 ro
    initrd (hd1,2)/boot/initrd.img-2.6.18-6-686

    ###Don't change this comment - YaST2 identifier: Original name: Ubuntu, kernel 2.6.12-9-amd64-generic Default (/dev/sda3)###
    title Ubuntu, kernel 2.6.12-9-amd64-generic Default (/dev/sda3)
    kernel (hd0,2)/boot/vmlinuz root=/dev/sda3 ro quiet splash
    initrd (hd0,2)/boot/initrd.img

    ###Don't change this comment - YaST2 identifier: Original name: windows###
    title Windows
    chainloader (hd0,0)+1

    ###Don't change this comment - YaST2 identifier: Original name: failsafe###
    title Failsafe -- SUSE Linux Enterprise Desktop 10
    root (hd1,5)
    kernel /boot/vmlinuz root=/dev/hda6 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
    initrd /boot/initrd
    ###foresight
    title ForeSight (/dev/hda8)

    kernel (hd1,6)/vmlinuz-2.6.25.9-2-fl.smp.gcc4.1.x86.i686 root=/dev/hda8 ro quiet splash
    initrd (hd1,6)/initrd-2.6.25.9-2-fl.smp.gcc4.2.x86.i686.img

  2. sean666 于 2008-10-05 02:28:55发表:

    title Windows XP
    map (hd0,0) (hd1,0)
    map (hd1,0) (hd0,0)
    rootnoverify (hd1,0)
    chainloader +1
    makeactive
    boot
    --------------------------------------
    以上为正确可启动双系统OS!

    一些资讯提供有此类问题的网友…
    因为我是sata装XP,IDE装SUSE
    Bios可以设定哪一颗硬碟做为优先启动
    所以就必须给Grub一个重要的指令码 ↓
    map (hd0,0) (hd1,0)
    map (hd1,0) (hd0,0)
    以上两行指令码是告诉Grub两颗硬碟的开机磁区相等
    也就是(hd0,0) =(hd1,0) (hd1,0) =(hd0,0)
    map 是指令(hd0,0) (hd1,0)& (hd1,0) (hd0,0)是参数
    这样Grub就会两颗硬碟的开机磁区都去找!
    当然…只有一颗硬碟的就不必这样做了!
    另外…Suse11 预设安装完之后、以及使用它的‘开机载入’程式设定
    它会把windows的开机磁区写成和安装Grub的磁区为同一个
    以我这个例子…Grub是安装在(hd0,6)
    设定略过档案系统检查时它也会设定成和安装Grub的磁区为同一个
    所以往上看一下开版文就会发现‘rootnoverify (hd0,6)’是错误的
    (此顺便回答楼上第2个问题)
    同样都是Grub1.5版本,Suse 和 Ubuntu 却一个会犯错,没空去搞懂它。

  3. beta402 于 2008-10-04 22:22:45发表:

    这天刚好研究了多系统多硬盘的安装导致系统引导错误的问题
    对于LZ的问题,有两处存在问题:
    1、80G硬盘的分区表是否错误?
    /dev/sdb2 * 4865 9729 39078112+ f W95 Ext'd (LBA)
    这里的可引导的标记居然在sdb2分区,即在windows下的扩展分区,这也许就是Grub引导不能进入XP系统的原因。
    2、menu.lst里关于Xp系统的部分
    rootnoverify (hd0,6) 这也有问题。

  4. netviewer 于 2008-09-21 08:19:24发表:

    以上言论,没看清原文。

  5. netviewer 于 2008-09-21 08:04:02发表:

    suse 装于ide,grubby于ide,
    xp装于sata,boot.ini于sata,
    ide---》grub---{sueu,
    {boot.ini---》xp,
    stat---》boot.ini---》xp,
    ok了。

  6. 太平桥 于 2008-09-13 12:36:07发表:

    有可能是 grub 无法读取Windows 所在分区。

    本人愚见,你的分区有点混乱。
    两个盘共分了大概 9 个区,80G 硬盘的 boot 位置也看不明白。
    建议独立 /boot 分区 并设置为主分区。