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.
I'm tempted to draw the conclusion that the configuration of a Linux system is pretty complicated, and even confusing. For one thing, the configutation files for one application/service seem to be located in several places.
Take GRUB. There is "/boot/grub/grub.conf", and there is "/etc/sysconfig/grub". Which file do I modify if I wish to mount my Linux disk onto another machine?
.conf usually means it's the configuration file. So you would normally edit the app.conf file to edit the configuration, such is the case with grup:
/boot/grub/grub.conf
What if there is inconsistency between "/boot/grub/grub.conf" and "/etc/sysconfig/grub", regarding, say, where GRUB is located? Would it still work it out?
Originally posted by correro What if there is inconsistency between "/boot/grub/grub.conf" and "/etc/sysconfig/grub", regarding, say, where GRUB is located? Would it still work it out?
Could you be more specific? If you mean:
/etc/sysconfig/grub is a text file that reads:
#Grub location:
/usr/local/bin/grub
And
/boot/grub/grub.conf reads:
#Grub location
/usr/bin/grub
Then look to see which one exists. Most likely both won't. If both do, try:
ps -ax
And see which one is running (if any).
Obviously this won't be true with grub, but I am just using the example of the file in question
I think the confusion is where grub is and where grub.conf is. Grub is going to be the actual binary file, or something along those lines. grub.conf is simply the configuration file that you edit for grub to use/look at when it is called.
Well GRUB actually is a bit complicated like that. I'm not nearly correct in this, but here's a simple idea on how it works:
Grub places a small file, containing very little in the MBR. Everything it actually needs to boot linux is on the hd of the linux partition. Everything it needs to boot win is on the win partition. It basically just contains symlinks, not much else. This is why you don't need to run grub after making changes to ensure they are fed to the MBR.
Bad, bad example, but works for simplicity's sake. For more info on how grub works, or just more accurate info, check out some of the links on google.com/linux It's actually quite interesting.
GRUB is located on hdb. However, you don't need grub to boot win, just need to tell your BIOS where win is (the small file grub placed on the MBR does this), then win will boot win.
Grub points to win, win in turn then boots. Grub points to linux, which then in turn points to your grub executable and boots.
It really does seem very confusing if you don't know how grub works, or how boot loaders work (not that I am an expert, I've just read quite a bit on how grub and bootloaders in general work). Really, I suggest at least checking out this how-to (doesn't really explain alot, but should give you a small idea, check out www.google.com/linux and search on grub for more info, if you are really interested it's worth the read): http://www.tldp.org/HOWTO/Linux+Win9x+Grub-HOWTO/
I'm starting to get the picture. Thanks for your patience, MasterC.
To follow up with the previous example, if GRUB is on hdb, and then I change the Linux disk to master (therefore hdb becomes hda), or change it to secondary master (hdb becomes hdc), will it still boot?
Good question, I don't think so though. It's pointing to the specific device, notice in grub.conf which device. I don't think it would boot in that case, but stranger things have happened.
Like I said though, I am far from a boot loader expert, just read a lot of pages on boot loading, grub, and lilo.
Oh, and anytime, these are the kinds of questions that intrigue me (I was supposed to go to bed an hour ago )
that will be what you want eventually but (i would assume) that you don't want to change anything until AFTER you swap the device. swap the drive over and when you go to boot change the command you actually use to boot with (press e) replacing any hd1's with hd0 and then boot it and it should boot fine. once you're comfortable with that then change the configuration file permanently.
i've actually only been on grub a short time myself and havne't tried swapping a drive though so you *might* need to reinstall grub again into the bootloader so that it will know where to look for the grub.conf.
Getting back to the original question, there is one rule that is universally applicable to Grub. ALWAYS edit /boot/grub/menu.lst. There may be other files that are linked to this file, and there may be distros that make use of a link to this file. But the only consistent, certain method of effecting changes in Grub behavior is to edit /boot/grub/menu.lst.
Why is that different from Lilo (/etc/lilo.conf)? Because Linux is not a monolithic, monopolistic set of software, there are bound to be differences. Yes, there are standards that many distros have chosen to subscribe to, but there are also multiple (sometimes) competing standards that will someday be settled, but for now just aren't.
There are also differences in how some software creators view some standards. For instance, one could make a case that since Grub actually (at least initially) runs outside Linux, it is really not a Linux configurable item and therefore doesn't have to be in /etc, and infact makes more sense to be in /boot. I don't know that the GNU folks have chosen that as their rationale, but it could make some sense.
These differences can be confusing, that much is true, but for the most part, such differences are the exception rather than the rule.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.