Hello, first some details:
I work with several operating systems: Suse 10.3, Slack 12, Slack 12.1 and Vista.
I have 2 HD’s:
On hd0 there are 4 partitions used by:
0: swap
1: Suse /
2: Suse /usr
3: Suse /home
On hd1 there are 7 partitions used by:
0: Vista
1: Slack 12 /
2: Slack 12 /home
3: extended partition:
4: backup files (no operating system)
5: Slack 12.1 /
6: Slack 12.1 /home
Till now I booted Suse, Slack 12 and Vista with Grub.
Slack 12.1 with Lilo
Grub is installed in the MBR of hd0 and Lilo is installed in the MBR of hd1
I want to boot Slack 12.1 also with grub.
This is the menu.lst:
# Modified by YaST2. Last modification on zo aug 24 12:17:14 CEST 2008
default 0
timeout 5
gfxmenu (hd0,1)/boot/message
##YaST - activate
##YaST - generic_mbr
###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 10.3 - 2.6.22.18-0.2
root (hd0,1)
kernel /boot/vmlinuz-2.6.22.18-0.2-default root=/dev/disk/by-id/scsi-SATA_WDC_WD2500JS-22_WD-WCANKF735819-part2 vga=0x31a resume=/dev/sda1 splash=silent showopts
initrd /boot/initrd-2.6.22.18-0.2-default
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 10.3 - 2.6.22.18-0.2
root (hd0,1)
kernel /boot/vmlinuz-2.6.22.18-0.2-default root=/dev/disk/by-id/scsi-SATA_WDC_WD2500JS-22_WD-WCANKF735819-part2 vga=normal showopts ide=nodma apm=off acpi=off noresume edd=off 3
initrd /boot/initrd-2.6.22.18-0.2-default
###Don't change this comment - YaST2 identifier: Original name: slackware###
title Slackware 12.0
root (hd1,1)
kernel /boot/vmlinuz-2.6.21.5-smp root=/dev/hda2 vga=791 splash=silent showopts
initrd /boot/initrd.gz
###Don't change this comment - YaST2 identifier: Original name: slackware12and1###
title Slackware 12.1
root (hd1,5)
kernel /boot/vmlinuz-2.6.24.5-smp root=/dev/hda5 vga=791 splash=silent showopts
initrd /boot/initrd.gz
###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows Vista
rootnoverify (hd0,1)
map (hd0) (hd1)
map (hd1) (hd0)
makeactive
chainloader (hd1,0)+1
As you can see I added an entry with Slackware 12.1 but this will not boot, also not when I try:
root (hd1,4) or root(hd1,6) or root=/dev/hda4 or root=/dev/hda6 or any other combination, it does not find the kernel image?!
I can start Suse, Vista and Slack 12 with this grub menu, but…
how can I boot the extended partition with slack 12.1 with grub??
(I can boot slack 12.1 with lilo)
Maybe a stupid question, but I can’t find a solution…:shame:
First of all, stop numbering your partitions from 0. Both fdisk and Linux number them starting from 1. It’s GRUB that numbers partitions from 0.
So what you want for 12.1 is:
title Slackware 12.1
root (hd1,5)
kernel /boot/vmlinuz-2.6.24.5-smp root=/dev/hdb6 vga=791 splash=silent showopts
initrd /boot/initrd.gz
It would be /dev/hdb6, because it’s the second disk and partition 6. Did you try this combination?
And you have a similar mistake for 12.0.
You are right about the numbering of partitions, but I numbered it how grub does, only to keep it clear.
Thanks for the quick answer.
I tried your suggestion, but it does not work: grub can’t find the image.
Once again: ALL other entries work, so ALSO slackware 12.0 is correctly started with root=/dev/hda2. So NOT with hdb2.
On the grub’s command line, when I type:
root (hd1,5)
it gives the correct partition type; but when I try:
kernel / (press tab) grub gives an error it can’t find any files!
(also not with root(hd1,6) )
when I try on grub’s command line:
root (hd1,1) or root(hd0,1) and after that:
kernel / (press tab) grub gives a complete file list what the possible files are. WHY doesn’t grub give ANY files ore results when I try to access the extended partition?
I presume your device.map has hd0 = hdb and hd1 = hda? (Other things probably wouldn’t work if it weren’t, but just a double-check.)
And it is hda6, not hda5 - assuming 6 is the actual number assigned to the partition in the table. Numbering is not necessarily sequential. And grub’s numbering starting with zero is also not sequential; it is the partition number -1.
Take a look at the partition table in sectors (with fdisk add -u). There should be 63 sectors between the start of the extended and the start of the first logical. (I’ve seen grub be weird with geometries and, as well, not be able to find files that I positively know are there.)
You are using the direct-boot method in your menu.lst. Try installing grub from Slax 12.1 to its hda6 boot sector, and chainload to it.
How old is the BIOS and how big is the disk? There are some limitations to the block number that can be accessed by the BIOS and your extended partition may be too far into the disk to be accessed.
Also are you sure about that layout? Show us the result of fdisk -l /dev/hdb
Sorry for my late answer…busy, busy, busy.
The names of the hd’s are: sda and sdb (sorry…
)
Here is the device mapping for disk sdb:
Disc /dev/sdb: 251.0 GB, 251000193024 bytes
255 heads, 63 sectors/track, 30515 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00089042
device Boot Start End Blocks Id System
/dev/sdb1 * 1 3825 30720000 7 HPFS/NTFS
/dev/sdb2 3826 6253 19502910 83 Linux
/dev/sdb3 6254 12658 51448162+ 83 Linux
/dev/sdb4 12659 30515 143436352+ f W95 Ext’d (LBA)
/dev/sdb5 12659 15923 26218080 83 Linux
/dev/sdb6 * 15923 19187 26218080 83 Linux
/dev/sdb7 19187 30515 91000098 83 Linux
I don’t know how old the bios is, I bought the pc new in jan 2007 (intell dual core 64 bits)
The other disk is sda:
Disc /dev/sda: 250.0 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00097d36
Device Boot Start End Blocks Id System
/dev/sda1 1 262 2104483+ 82 Linux-swap /Solaris
/dev/sda2 * 263 6790 52436160 83 Linux
/dev/sda3 6791 14623 62918572+ 83 Linux
/dev/sda4 14624 30401 126736785 83 Linux
The strange thing is that lilo (installed in the mbr of sdb) can boot without any problem slackware 12.1 on /dev/sdb6
AND: I can boot also with grub (installed in the mbr of sda) Suse (of course) and slack 12.0 on /dev/sdb2
I tried installing grub on sdb, this can start slack 12.0 but same errors with 12.1
When I have a grub command line and type:
root (hd1,4) —>this is my extra backup space
kernel /(press tab)
I get a list of possible files -from the backup files.
when I type:
root (hd1,5)
kernel /(press tab)
I get directly a message: bad file or blocklist
Why can Lilo boot /dev/sdb6 and grub not? 
I remember some limit of BIOS booting on large ATA drives. Ah here it is:
The ATA Interface Limit (128 GiB / 137 GB) Barrier
You should check if there are any BIOS or GRUB settings that may get past this limit. Otherwise you could put the boot files for 12.1 in say the 12.0 partition.
Don’t know about LILO maybe it has some way of working around the problem.
Thanks for your explanation!
I figured out that the start of the sixth partition (/dev/sdb6) is just a few bites too far away! It’s indeed this barrier, 128 gb, that causes the problem.
Thanks for the link to the website where this is all explained, and for the answers.