GRUB problem or BIOS problem?
I have two harddisks in my system, one SATA (/dev/sda) and another PATA (/dev/hdb). I have 15 partitions on SATA harddisk and 10 partitions on PATA harddisk with different distributions installed. I use GRUB to load the desired operating system and had no problem in loading desired operating system. Recently, since there was space left in /dev/hdb, I created 2 extra partitions (/dev/hdb11 and /dev/hdb12) on it and installed STUX and Zenwalk Linux and accordingly modified menu.lst file of GRUB. GRUB boot menu shows entries for these distributions but when I try to load these operating systems, GRUB hangs. I have to reboot the system.
Other operating systems can be booted except the two newly installed systems. I use GRUB from Mandriva spring edition i.e. Mandriva 2007.1 Command fdisk -l /dev/hdb* shows all partitions. I can even mount these newly added partiions under /mnt directory and verify that distributions are installed. I have searched the forums for similar problem but could not get any solutions. Can anybody help?. |
What exactly are the error messages?
what happens after you select one of the problem entries? eg do you see the kernel starting up? |
What does your /boot/grub/menu.lst from Spring Mandy look like, maybe you should post that also.
|
Quote:
It may pay to post that output here. I'm very new here but have struggled with GRUB myself so have a smattering of understanding. Paul |
Hi Ak! [I can't spell names more than 4 letters long! :-)]
I run a similar setup to you - 15 partitions on my Sata drive, 24 partitions on my Pata drive, and I use a single small boot partition from which to boot all distros and WinXP from GRUB. I locate this small boot partition near the start of the drive. I can tell you about 2 problems, but not exactly what your problem is. First, I have found that most linux distros will not work on a Sata drive if they are installed on a partition higher than 15 [ie 3 Primary and 12 Extended/secondary. Depending on installation method used, the installer will usually fail. If you get as far as trying to boot this distro, it will fail to mount this root partition. There may be a work around for this but I have not seen one in any forum yet. I only tell you this as it seems you are already on this limit of partitions for your Sata drive. On large Sata Drives - 250 GB or 500 GB etc., this is quite a serious restriction. Also, for some reason, Fedora Core 6 will not install higher than partition 14, or Anaconda will fail. Now I use Fedora Core 7, but I played it safe and didn't try to install on partition 15. I have Knoppix5.1.1 running on partition 15. Second, there can be BIOS problems. With some bioses Grub can not reach the boot partition unless it is near the start of the HDD. In this case though you usually get the Grub Error 18. You didn't get any error message, so your problem is probably something else. Maybe syntax, or maybe with your motherboard you need some extra kernal parameter with these newly added distros? Good luck - I must run to my meeting now. Rob. |
GRUB problem or BIOS problem ?
Quote:
Quote:
# menu.lst - See: grub(8), info grub, update-grub(8) # grub-install(8), grub-floppy(8), # grub-md5-crypt, /usr/share/doc/grub # and /usr/share/doc/grub-doc/. splashimage=(hd0,5)/boot/grub/mysplash.xpm ## default num # Set the default entry to the entry number NUM. Numbering starts from 0, and # the entry number 0 is the default if the command is not used. # # You can specify 'saved' instead of a number. In this case, the default entry # is the entry saved with the command 'savedefault'. default 1 ## timeout sec # Set a timeout, in SEC seconds, before automatically booting the default entry # (normally the first entry defined). timeout 30 # Pretty colours color cyan/blue white/blue ## password ['--md5'] passwd ## ## Start Default Options ## ## default kernel options ## default kernel options for automagic boot options ## If you want special options for specifiv kernels use kopt_x_y_z title Windows XP (/dev/sda1,5,6) root (hd1,0) map (0x81) (0x80) map (0x80) (0x81) makeactive chainloader +1 title Mandriva 2007-spring (/dev/hdb6) root (hd0,5) kernel /boot/vmlinuz root=/dev/hdb6 splash=silent vga=788 resume=/dev/sda8 initrd /boot/initrd.img savedefault boot # Entry for fedora core 5 title Fedora Core 5 (/dev/sda9) root (hd1,8) kernel /boot/vmlinuz root=/dev/sda9 vga=788 initrd /boot/initrd.img title Yoper 3.0 Titanium (hdb7) root (hd0,6) kernel /boot/vmlinuz root=/dev/hdb7 ro initrd /boot/initrd.img savedefault boot title Ubuntu 6.06 (/dev/sda7) root (hd1,6) kernel /boot/vmlinuz root=/dev/sda7 ro quiet splash initrd /boot/initrd.img title Slax 5.1.6 (hdb3) root (hd0,2) kernel /boot/vmlinuz vga=769 root=/dev/hdb3 rw nopcmcia nohotplug title SUSE LINUX 10.1 (i586) (on /dev/hdb8) root (hd0,7) kernel /boot/vmlinuz root=/dev/hdb8 initrd /boot/initrd savedefault boot title Vector Linux 5.8 (hdb1) root (hd0,0) kernel /boot/vmlinuz root=/dev/hdb1 vga=788 splash=silent ro initrd /boot/initrd title PCLinuxOS 2007 (/dev/sda4) root (hd1,3) kernel /boot/vmlinuz root=/dev/sda4 vga=788 splash=silent initrd /boot/initrd.img title CentOS 4.4 (/dev/sda10) root (hd1,9) kernel /boot/vmlinuz-2.6.9-42.EL root=/dev/sda10 vga=788 initrd /boot/initrd-2.6.9-42.EL.img title Puppy 216 (sda11) kernel (hd1,10)/boot/vmlinuz root=/dev/sda11 ro vga=normal title MCN Live Delft (sda12) kernel (hd1,11)/boot/vmlinuz root=/dev/sda12 resume=/dev/sda8 splash=silent vga=788 apic=ht initrd (hd1,11)/boot/initrd.img title Dream Linux 2.2 (sda14) kernel (hd1,13)/boot/vmlinuz root=/dev/sda14 splash=silent vga=788 initrd (hd1,13)/boot/initrd title Slackware 11 (sda15) kernel (hd1,14)/boot/vmlinuz root=/dev/sda15 vga=788 title Sam Linux 2007 (hdb10) kernel (hd0,9)/boot/vmlinuz root=/dev/hdb10 vga=788 initrd (hd0,9)/boot/initrd.img title Stux Linux 5.8 (hdb11) root (hd0,10) kernel /boot/vmlinuz root=/dev/hdb11 vga=788 ro initrd /boot/initrd title Zenwalk (hdb12) root (hd0,11) kernel /boot/vmlinuz root=/dev/hdb12 vga=788 ro initrd /boot/initrd.splash Quote:
Device Boot Start End Blocks Id System /dev/hdb1 * 1 6113 3080920+ 83 Linux /dev/hdb2 6114 77545 36001728 5 Extended /dev/hdb5 6114 6596 243400+ 82 Linux swap / Solaris/dev/hdb6 6597 18786 6143728+ 83 Linux /dev/hdb7 18791 30409 5855661 83 Linux /dev/hdb8 30410 40560 5116072+ 83 Linux /dev/hdb9 50252 62441 6143728+ 83 Linux /dev/hdb10 62442 70758 4191736+ 83 Linux /dev/hdb11 70759 77545 3420616+ 83 Linux /dev/hdb12 40561 50251 4884232+ 83 Linux Partition table entries are not in disk order Suggestions made by Canopic are noted with thanks. I am amazed at the quick response. Thanks to all. |
One thing I'd like to mention, is to try simplifying the menu list for entries other than Mandriva's. Every time you upgrade a kernel you'll have to edit this file, and if the kernel entry is not quite right it won't boot. Have you seen how saikee keeps it simple, you just have to specify the partition containing the boot files and chainload:
http://www.justlinux.com/forum/showt...hreadid=143973 Back up you're current one first. |
Also, /dev/hdb suggests it is the second disk, you have root of those two installations in the first drive.
EDIT: I guess the others are setup like that and they boot. |
You could try:
1. defining the drives with a "device" entry in the grub.conf/menu.lst device (hd0,10) /dev/sdb11 device (hd0,11) /dev/sdb12 2. reinstalling grub to the MBR # grub grub> root (hd1,0) grub> setup (hd1) grub> quit |
I have found that some distro's read the bios in a different order.
I have 1 sata and 2 ide drives which Fedora 7 sees as sda1, sdb1 and sdc1, only the first is sata and it will only boot if the sata disk is the boot disk. Suse 10.2 sees them as sda1, hda1 and hda2 and will boot from either sda1 or hda1. Debian Etch also sees 2 ide and 1 sata but places the sata last in the list it passes to grub on install, it will only boot from ide 1. Most of the non running installs stop at Stage 1.5 and as it seems you do not get this far it could be some other problem for you but this info may assist. Afaik these problems only started with the last version of Grub, but that may be a false report. |
Grub pleads not guilty, your honour.
This is its defence. (1) Grub legacy declared no more support after Grub 0.97. Thus Grub has not been changed for at least 3 years. It isn't even maintained! (2) Kernel 2.6.20 and later decided to abandon the naming of Pata disk and group them under SCSI/Sata/USB disks family. Although some distros still support hda to hde many of them have jumped ship and go with the trend. ------------------------------------------------------- Distros with different kernels, thus seeing a Pata disks in different names, can coexist in the same box. You just have to edit the partition reference of hda to sda or sdb to suit the circumstance. The only problem that will cause problem is if your Pata disk has more than 15 partitions, which is the limit for a Sata, the new distros with latest kernels, cannot cope and could regard it as a raw disk. To the new kernels it is illegal to have more than 15 partitions as the device's minor number does not support more than 16 names. The 16th (or the 1st ) name is reserved for the whole disk. |
One way of getting past GRUB's limitations in understanding your system is to keep your kernels where GRUB can find them easily and load them from there. I have done the following successfully:
Create a directory in the shared boot partition for each distro and keep kernels and initrds there: Code:
/sharedBoot title Debian root (hd0,0) kernel /debian/vmlinuz root=/dev/hdb8 ro initrd /debian/initrd title Distro 27: Fluxbuntu 2.7 kernel root (hd0,0) kernel /fluxbuntu/kernel-2.7 root=/dev/hdb14 ro initrd /fluxbuntu/initrd-2.7 If the kernel and/or initrd files have the drivers needed to understand your system topology, then once the kernel is loaded from the shared boot directory, Linux will understand your system. |
grahamatlq:
Tried your suggestion with no luck. Thanks for help. tinkerbelle/saikee All distribution which I installed saw my SATA disk as /dev/sda and my PATA disk as /dev/hdb. Recently when I installed Zenwalk-4.6.1 on /dev/hdb2, I was completely confused during installation as it showed my PATA harddisk as /dev/sda and my SATA disk as /dev/sdb. From the number of partitions I could guess which partition is /dev/hdb2 (/dev/sda2 in Zenwalk's view). Upon Zenwalk installation, when I checked /etc/fstab, I found that root partition is shown as /dev/hdb2 whereas in kernel parameters if I put root=/dev/hdb2, Zenwalk will come out with error stating to correct my root= parameter. When I substituted root=/dev/hdb2 to root=/dev/sda2, I could boot. I find anamoly in /etc/fstab and kernel parameter amusing. To come to my problem, I have reformatted my PATA harddisk and created fresh partitions. The problem is now over. Thanks to all for help. |
From my observation the decision by the kernel newer than 2.6.20 to group Pata disks into the SCSI/Sata/USB family is a recent event and many issues have yet to be discovered and resolved.
There is a movement towards to calling the disk/partition by disk ID and by UUID. These types of addressing methods for the partitions are unique and can do away with the traditional device names problems. I am not sure how easy to use them but I have started a thread here.. The by-UUID method has been with the Ubuntu family for a while. I only notice the by-disk ID recently in a OpenSuse 10.3. Many of you may also know the Red Hat family has long been addressing the partition by the "label". Depending on how the Bios is written it may scan the SCSI disks before the Sata or Patas Disk thus giving the sda first on whichever is detected first. From experience the USB disks always come last. |
Hi! If you have not solved the problem yet , I had a similar problem
just recently. System would boot and hang. Came to find out that the BIOS was finding drives in the wrong order and trying to boot off the wrong one. As you can imagine, serious gastric disturbences were the result of this foolishness. I added a kernel boot parameter to my grub boot sequence and found this. Try this and see where the bios places things. boot single user so you can look around. Dont think it will hurt your setup. -------------------------grub.conf kernel /vmlinuz-2.6.21.4 -s root=/dev/hda10 ro ide=reverse ----------------------------------------------------------- ^^ single user. My root boot disk = /dev/hda10. Change to what yours is. I hit the E key before the machine boots and edit the boot parms. At least this is how I got mine to boot. Good luck. |
All times are GMT -5. The time now is 05:29 AM. |