| Linux Newbie Guide IV - Lilo |
|
|
Page: 1/3 [Printable Version]
Startup issues (LILO and GRUB)
LILO and GRUB
Both the newer GRUB and the older LILO are boot loaders. They make it possible
for you to select the operating system to boot at the boot time. Most (all?)
of the booting problems described in this section can likely be overcome by
installing the most recent Linux kernel and the latest GRUB boot loader.
GRUB is better than LILO because LILO relies on the absolute hard drive
addresses to find the boot image, while GRUB understands the filesystems and
looks for a file containing the boot image. We recommend Mandrake
7.2--it has a nice 2.2 kernel and the GRUB boot loader. RedHat 7.0 still
relies on the older LILO.
The main GRUB configuration file is /boot/grub/menu.lst. Here
are comment on the items found in this file:
# Lines starting with the # mark are comments.
timeout 5
# the above setting starts booting the default operating system after 5
seconds unless a key is pressed
default 0
# the above setting makes the default operating system to be the first found
in the menu list
#
title linux
kernel (hd0,2)/boot/vmlinuz root=/dev/hda3 mem=64M
# The above two lines define a boottime menu item, and set the boot action
for this item.
# The first line names the menu item "linux".
# The second line specifies that the kernel is located on the first
physical hard
# drive (hd0), the second partition (2), the boot image is the
file /boot/vmlinux
# Also on the second line, the following options are passed to the kernel:
# root=/dev/hda3 (i.e., make the root partition the 3d partition on
the first hard drive (hda) ),
# mem=64M (i.e., use 64 megabytes of physical memory).
Good documentation for GRUB is available using info grub
Linux cannot detect all my memory
If you have more than 64 megabytes of physical memory, Linux kernel ver.
2.0.36 or lower will use, by default, only the first 64 MB. To see how much
memory Linux uses on your system, type:
cat /proc/meminfo
or
free
You can check your version of Linux kernel with:
uname -a
The last popular kernel with the "memory problem", 2.0.36, comes
with RedHat 5.2. My RedHat 6.0 came with kernel 2.2.5-15 so it does not
have the "memory problem" any more.
To get more than 64 MB memory recognized on RH5.2, you have to edit (as
root) the file /etc/lilo.conf, and add a line like this just before
your first "image=" statement:
append="mem=80M"
If you have an amount of memory different than 80 MB, adjust the above line.
For any changes in /etc/lilo.conf to take effect, you *must* re-run
the program
lilo
(watch if it runs without errors) and reboot. After the reboot, you can check
if your adjustment worked using either of these two commands:
cat /proc/meminfo
free
For testing purposes, or if you are having problems, the option of specifying
the amount of memory at the LILO prompt is useful:
[type at LILO prompt during bootup] linux "mem=16M"
Occasionally, I hear the advice to skip the upper few megabytes if you have
problems enabling all your memory, or the machine locks up. E.g., enable only
78 out of your 80 MB. This is apparently the case for some SCSI controllers
that use the very upper chunk of the main memory. Take it for what it's worth.
Occasionally on some systems, Linux recognizes only 16 MB of memory. This is
usually linked to the setting "memory hole at 15-16 MB" enabled in
the BIOS setup (the solution is to disable this BIOS setting). It is probably
a good idea to disable all "advanced" features in your BIOS setup
anyway (for example, the BIOS virus detection seems to be a common source of
problems ).
Mixture of memory chips with different timings can also lead to memory
recognition problems or to system crashes (the solution is to replace the
memory chips so that the timing of all memory chips is the same).
|