Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
okay. i finnaly got pclos, windows, and suse all on the same machine. I cant get suse to boot. any way i can set up the boot loader (grub) to boot suse as well? help would be appreciated
thanks.
It's pretty easy, you just need to have an entry in the grub menu for suse as well as pclinux. You can probably use the entry from pclinux as a guide. If it's still confusing post what's in /boot/grub/menu.lst (I've sometimes seen it in /etc instead of /etc) and tell us what partitions each OS is on.
Absolutely---
First we need to know where each OS is installed and how grub is configured. From your description, it sounds like you can boot into PCLinux and thus that is likely where the grub config file is.
fdisk -l will tell you where all your partitions are--hopefully from this we can figure out where SUSE is installed and configure grub so it can find it.
If you want to jump ahead a bit, look at /boot/grub/menu.lst You will be adding an entry to this which looks something like this:
title SUSE
root (hdX,Y)
kernel /boot/vmlinuz root=/dev/ZZZZ
initrd /boot/initrd
hdX,Y is the drive and partition # where the /boot directory is, and ZZZZ is the location where the kernel will mount the "root" of the filesystem---namely /. Unless you made a separate /boot partition, these tso entries will be the same, but the first is in grubspeak, and the second is in Linuxspeak.
eg for the 4th partition on the first IDE/PATA drive:
root (hd0,3)
..........root=/dev/hda4
etc.
Next, "vmlinuz" and "initrd" (the 2nd one) need to be replaced by the actual names of the files in /boot. One easy way is to simply create aliases in /boot
Finally, if the IS a separate /boot partition, take "/boot" out of the two lines--thus:
title SUSE
root (hd0,6)
kernel /vmlinuz root=/dev/sda7
initrd /initrd
and change the other values accordingly
That looks like it should work. There might be a problem if suse calls the kernel and initrd something other than just vmlinuz and initrd. Some distros add something like the kernel version number at the end or something like that. But a lot of times if this is done then vmlinuz is just a link to vmlinuz-[latest kernel #]. You can try mounting the suse partition from within PCLinux and looking into suse's /boot to see what suse does.
As I mentioned earlier, the generic "vmlinuz" and "initrd" need to be replaced by the real names. I always just make aliases in the /boot directory. Then all my grub entries are the same (less to keep track of)
If you do "chainloading" you never have a need to know the kernel and initrd names.
In a nutshell you let the boot loader boot a Linix in exactly the same way it boots a Windows. All you have to do is to make sure the Linux to be chainloaded has the boot loader in its root partition.
The reward (or the downside of it if you like) is you can proceed to boot over 100 systems without the need to learn any more about booting.
I would be more than happy to look into your case.
There is nothing specially about chainloading as it is done by Lilo and NTLDR too.
It is the duty of every Linux installer to check for a boot loader in every partition and include it as a booting alternative if one is found. That is the very basis how a Linux can automatically boot a Windows but doesn't know if it is a Dos, a Win9x, a Win2k, a XP or a Vista. A MS system always has the boot loader stored in the boot sector.
To make a Linux chainloadable requires its boot loader restricted inside the root partition. That is totally logical because there is only one MBR and we can't install every Linux to the same MBR. In the 145-system link in my signature I have the entire 145 operating systems chainloaded and not even one kernel is mentioned in the menu.lst. It is kind of lazy thing to do I admit as I had the menu.lst written out before installing any of the systems. Actually I was lazier than that as I generated the menu.lst by writting a small program to do the loops. Any way it is an example how one can get away without doing the hard work.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.