We help IT Professionals succeed at work.

install SUSE linux along with windows solaris and redhat

naufal asked
Last Modified: 2013-12-06
Well i had three Os on my laptop i.e windows XP, Sun Solaris 9 and redhat linux 8. I needed to install sun java dektop system which is basically SUSE linux as far as i know. I had some free space in logical partition in windows XP. I deleted that and installed JDS on that location and then booted with linux 8 cd and edited grub.conf to include the title and parttion for JDS and installed grub again as SUSE deleted that. Now when i boot i have the four OS listed in grub loader and all three boot fine except JDS and says
"error no.13 : invalid or not executable format"

Donna kow how to proceede from here
Watch Question


What do you have in your menu.lst (or grub.conf) file for the SuSE installation (You may want to post your complete Grub config file)?
On which partition is the SuSE installation?


well here is the file and the partition table:

# 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,2)
#          kernel /boot/vmlinuz-version ro root=/dev/hda3
#          initrd /boot/initrd-version.img
title Red Hat Linux (2.4.18-14)
      root (hd0,2)
      kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
      initrd /boot/initrd-2.4.18-14.img
title WIN XP
      rootnoverify (hd0,1)
      chainloader +1
title SUN Solaris 9
      rootnoverify (hd0,0)
      chainloader +1
title Java Desktop System
      rootnoverify (hd0,7)
      chainloader +1

and the partition table is:

sk /dev/hda: 255 heads, 63 sectors, 4864 cylinders
Units = cylinders of 16065 * 512 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1       256   2048256   82  Linux swap
Partition 1 does not end on cylinder boundary:
     phys=(255, 30, 63) should be (255, 254, 63)
/dev/hda2           256      1530  10240461    7  HPFS/NTFS
/dev/hda3          1531      2295   6144862+  83  Linux
/dev/hda4          2296      4864  20635492+   f  Win95 Ext'd (LBA)
/dev/hda5          2296      2361    530113+  82  Linux swap
/dev/hda6          2362      2425    514048+   b  Win95 FAT32
/dev/hda7          2426      3700  10241406    7  HPFS/NTFS
/dev/hda8          3701      4353   5245191   83  Linux
/dev/hda9          4354      4419    530113+  82  Linux swap

where /dev/hda8 is the / for SUSE and /dev/hda9 is the swap for SUSE while /hda3 and 5 are / and swap for red hat 8 respectively and /dev/hda1 is solaris partition.

Did you install SuSE with a bootloader in /dev/hda8? The chainloder only works if the partition has it's own bootloader. Otherwise you need somthing like this:

     root (hd0,7)
     kernel /boot/vmlinuz-2.4.xx ro
     initrd /boot/initrd-2.4.xx.img

YOu need to change the kernel and initrd paths according to your installation.


well SUSE in not asking me abt installation of boot loader.... i have tried installing it with just / and swap as well as /boot , / and swap , and where do u want me to add these lines which u have mentioned


Add them to the Grub config file instead of
     rootnoverify (hd0,7)
     chainloader +1

You need something similar as you already have for your RedHat installation. Just take the RedHat entry in this file and modify it with the paths (and partitions) of your SuSE install. I don't think that SuSE supports file system labels, that's the reason why I left out the root=LABEL=/
(and it would be wrong, because this label is used by RedHat).

Do you have a SuSE boot floppy? If not, you can boot the system with the SuSE CD. Once you have the system running, you can start YaST and modify the boot  configuration. You should be able to install the bootloader in SuSE's root partition.


okies man i will try it in the morning now and will come to u if there is any problem later in the noon thanks

You seem to be in a different time zone :-)


yeah i have tried it and now it says
"error 15 file not found"

What exactly did you add? Did you check the file names on your SuSE partition and use them instead of the placeholder names I used?


ummmm no i am sorry but i don't have tht much idea plz tell me what do i need to see and where will i find it i have exactly added what you wrote
This one is on us!
(Get your first solution completely free - no credit card required)


hey khkremer
i am really sorry to bother you so much but what i was doing was that since suse overwrites the redhat grub and just shows me windows and suse in its own grub menue what i was doing was that after the installation i booted from lredhat cd and edited the redhat grub.conf and reinstalled the redhat grub so i assume u are not asking me to put this thingy ion the suse grub.conf anyways i will try to put in the information in the linux grub.conf and then get to u asap



hey khremer

IT WORKED!!!!! wonderful job man i am really gratefull...... okie i am not sure that if i accept the answer at this point wether i can communicate with you gain or not by posting the comment so just one little help. My job nature is such that i never bothered about this thing but can u just tell me what actually it means i mean the kernel paths and intrd paths u told me to write for suse and the kernel and initrd paths witten for redhat in the grub.conf...... so that i can have the concept as well

thanks a lot once again

P.S i guess i will accept the answer also immediately after this and hiopefully would still be able to contact u

We can use this question for as long as we have stuff to talk about :-)

When you boot Linux, you are actually running a program: The kernel. This (very special) program initializes your hardware and at the end starts the init process, which eventually gives you a login prompt. So to boot Linux, the bootloader needs to know which kernel to load. Grub can boot a partition in two ways: If the partition is bootable, you just specify the chainloader option, and Grub does not even care what OS you are booting (this is what you do for Windows and Solaris). The other method is to boot Linux: For this to work, you tell Grub which kernel image to load.

The problem with modern systems and kernels is that you need a lot of drivers just to get your computer up and running. Drivers that may not be compiled into your kernel (a driver can either be compiled into the kernel, and therefore be available as soon as the kernel is started, or stored in a file as a "module". These modules are loaded once the kernel is up and has access to the file system). If you need for example a file system driver that is not compiled into your kernel to access e.g. your root file system you have a  problem. Or, if you root file system is on a SCSI disk for which you need a special driver, you have a problem, ... To get around these problems, the 'initial ram disk' was created. This is a small ram disk that does contain all those drivers that are necessary to boot the system. The kernel only needs the driver for this initrd to access these modules and load them. ONce this is done, the real root file system is loaded.

The Grub options you used specify the kernel image and the path to the initial ram disk file.

Does this answer your questions?


right so for this
   kernel (hd0,7)/boot/vmlinuz root=/dev/hda8
     initrd (hd0,7)/boot/initrd

kernel is in (hd0,7) obvious and the path is /boot.... and initrd is in /boot...

Three more things
 why do u have to specify root=/dev/hda8 i.e where the root is residing when u have alraeady specified (hd0,7)
why for redhat it is root=LABEL=/ while not in case of SUSE
annd lastly if u say that u specify chainloader when the partition is bootable .... a single disk with just linux on it wuld be a bootable parttion so why do u say its not bootable or in any case u have to specify the kernel path as i guess u can boot with more than one kernel if u want i.e may be two different compiled kernels
and yeah one more thing i haven't yet checked but i guess the bootable flag was present for a windows parttion as well as SUSE on my partition table so whats the importance of that flag or if i am right it does not have any thing to do when the chain loader option is specified

Your kernel does not have to be on your root partition. You could for example store your SuSE kernel on your RedHat partition. And, there is actually a good usecase for this: A system with an older BIOS may have problems booting from a partition above cylinder 1024. By storing the Linux kernel on a partition below cyl 1024, you can make it work. So it's not always the root partition that's specified for your kernel. This is the reason why we have to specify the root partition. THere are two ways this can be done: SuSE 8.x does not support labels on file systems, so we have to actually use the device name. RedHat 9 does support partition labels, so you can give your partition a symbolic name that is easier to remember than /dev/hda8.

A partition is bootable if it has a bootloader installed. You can install Grub either in the Master Boot Record (MBR), or on the individual partition. If you select to store Grub on your SuSE partition, you don't have to know where the kernel is and where to load the initrd from to add it to a bootloader in the MBR. This could for example be another installation of Grub, or a third party bootloader.
Having a bootable partition is not the same as marking it as bootable. The Windows bootloader requires that your Windows partition is marked as bootable, but Grub does not care.


righto thanks man thanks a lot!
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.


Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.