… which I am obviously not. I thought I understood Grub well enough to make a menu.lst, but here goes.
I have long had Opensuse 11.1 on this machine at home. It has an older PATA 160GB drive with an 80GB SATA drive. Suse is on the PATA. Windows XP is on the SATA, and I had room on the SATA to install CentOS 5.3, which we use at work. I wanted a copy to play with at home.
The install went fine, but CentOS’s Grub menu never even appeared when I rebooted. I went back into their installer and selected “swap drive orders” and it started working. I can boot into Windows or CentOS … but NOT Opensuse. I get “error 2: Bad file or directory type.”
The only way I can get into Opensuse is with my supergrub boot CD (which is a wonderful thing, believe me!).
I’m going to post all the specs, starting with my partition info (purpose/usage of the partition is in parentheses):
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0007a0f4
Device Boot Start End Blocks Id System
/dev/sda1 1 3338 26804452 7 HPFS/NTFS (Windows XP)
/dev/sda2 * 3339 4512 9430155 83 Linux (CentOS /)
/dev/sda3 4513 9489 39977752+ 83 Linux (CentOS /home)
/dev/sda4 9490 9729 1927800 5 Extended
/dev/sda5 9490 9729 1927768+ 82 Linux swap / Solaris (swap)
Disk /dev/sdb: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x23d423d3
Device Boot Start End Blocks Id System
/dev/sdb1 * 2 2611 20964825 83 Linux (Opensuse /)
/dev/sdb2 2612 13054 83883397+ 83 Linux (Opensuse /home)
/dev/sdb3 13055 19457 51432097+ c W95 FAT32 (LBA) (Windows drive "D")
Here’s the original Opensuse menu.lst.
# Modified by YaST2. Last modification on Sun Jul 19 13:10:46 CDT 2009
default 0
timeout 8
gfxmenu (hd1,0)/boot/message
###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.23-0.1
root (hd1,0)
kernel /boot/vmlinuz-2.6.27.23-0.1-pae root=/dev/disk/by-id/ata-WDC_WD1600JB-00REA0_WD-WMANM3539733-part1 resume=/dev/disk/by-id/ata-WDC_WD800JD-60LSA5_WD-WMAM9LW04495-part3 splash=silent showopts vga=0x348
initrd /boot/initrd-2.6.27.23-0.1-pae
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.1 - 2.6.27.23-0.1
root (hd1,0)
kernel /boot/vmlinuz-2.6.27.23-0.1-pae root=/dev/disk/by-id/ata-WDC_WD1600JB-00REA0_WD-WMANM3539733-part1 showopts ide=nodma apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x348
initrd /boot/initrd-2.6.27.23-0.1-pae
###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
rootnoverify (hd0,0)
chainloader +1
Here’s the CentOS menu.lst.
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,1)
# kernel /boot/vmlinuz-version ro root=/dev/sda2
# initrd /boot/initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-128.2.1.el5)
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-128.2.1.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-128.2.1.el5.img
title CentOS (2.6.18-128.el5)
root (hd0,1)
kernel /boot/vmlinuz-2.6.18-128.el5 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.18-128.el5.img
title OpenSuse 11.1
root (hd1,0)
kernel /boot/vmlinuz-2.6.27.23-0.1-pae root=/dev/disk/by-id/ata-WDC_WD1600JB-00REA0_WD-WMANM3539733-part1 resume=/dev/disk/by-id/ata-WDC_WD800JD-60LSA5_WD-WMAM9LW04495-part3 splash=silent showopts vga=0x348
initrd /boot/initrd-2.6.27.23-0.1-pae
title Windows XP
rootnoverify (hd0,0)
chainloader +1
Here’s the clue: Opensuse and CentOS have different device maps. In fact, I don’t think Cent understands “device by ID.”
Opensuse device.map:
(hd0) /dev/disk/by-id/ata-WDC_WD800JD-60LSA5_WD-WMAM9LW04495
(hd1) /dev/disk/by-id/ata-WDC_WD1600JB-00REA0_WD-WMANM3539733
CentOS device map:
# this device map was generated by anaconda
(hd1) /dev/hda
(hd0) /dev/sda
However, they look the same – in both cases, hd0 is the 80G SATA and hd1 is the 160G PATA.
Any ideas?