Hi,
To (re)compile a kernel you first download the latest tarball -->
. The obvious place to put it is /usr/src. Then do :
cd /usr/src
rm linux
tar jxvf linux-2.4.16.tar.bz2
mv linux linux-2.4.16
ln -s linux-2.4.16 linux
cd linux
make oldconfig
make xconfig (or make menuconfig if not in X) -- Select all the bits you want to build incl ntfs under filesystems....
make dep
make clean
make bzImage
make modules
make modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.16
cp System.map /boot/System.map-2.4.16
If you have scsi then do :
/sbin/mkinitrd /boot/initrd-2.4.16.img 2.4.16
Next you alter /etc/lilo.conf and add a new image block for the new kernel :
image = /boot/vmlinuz-2.4.16
root = /dev/hda7 <-- example only as per your existing block
label = Linux2416
read-only
If your existing image block has an 'append=' line copy that to the new image block and, if required, add the 'initrd=/boot/initrd-2.4.16.img' entry.
Then you update lilo in the boot sector with /sbin/lilo -v . I tend to do all of the above as root for simplicity although not all steps require it.
Then reboot...
N.B. Be careful if you have redhat 7.2 or Mandrake 8.1 with ext3 / jfs or similar. The 'standard' kernels provided with those distros have been patched (i.e. are different to the vanilla ones from kernel.org on which they are based). If you need ext3 or similar you would have to get the source code patches and patch the kernel source after untarring and before the 'make xconfig' stage.
Hope this helps