PDA

View Full Version : Knoppix to restore RH9 Kernel



ncsuapex
12-18-2004, 05:46 AM
I've done a very bad thing and accidently removed the 2.4.20-31.9 kernel from my Redhat 9 PC. Can I use Knoppix to restore it somehow? I have Knoppix 3.3 CD and I've used it a few times, just to play around with it, but I am not sure of it's limitations.

thanks

firebyrd10
12-18-2004, 06:04 AM
If you A: have a copy of the kernel (will work)
B: have a kernel config file and rebuild it. (might not work)

UnderScore
12-18-2004, 02:13 PM
Lets assume that /dev/hda3 is your RH9 root partition. Boot with Knoppix. Mount the root partition as read write right-clicking on the iconod the desktop and changing the device properties. Open a konsole window & get root access. Copy or download the RH9 kernel RPM file. Install the rpm: rpm -Uvh linux-2.4.20-31.9-i386.rpm. Edit the grub.conf file or the lilo.conf file. If necessary run lilo command. Reboot.

ncsuapex
12-18-2004, 09:27 PM
OK Im about to try this but before I do, What do I need to edit the grub.conf file with? How will I know what info to put in it?

UnderScore
12-18-2004, 09:57 PM
If it is the exact same kernel version as the one that was lost then you probably do not need to edit it . If you do need to edit it, all you should have to do is to replace the current kernel line & have it point to the new kernel. The RH9 manual Chapter 2 should be a good point of reference: http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/ref-guide/.
I hope this helps.
James

ncsuapex
12-19-2004, 12:12 AM
Ok, I only have hda1 and hda2

I changed bot permissions to RW. I set the password for root via the command line terminal. I "sudo su -" get the root prompt and run this command "mount /mnt/hda1 -o remount,rw" I also tried the same command with hda2.

I get this error:

mount: /mnt/hda1 not mounted already, or bad option

Why is it not mounting?

ncsuapex
12-19-2004, 03:18 AM
ok I was able to mount to my harddrive with

mount /dev/hda2 /mnt/hda2

I DL'ed a copy of the RPM and am now running

alien -i packagename.rpm


we'll see if this works

UPDATE

I got this message when I ran the above command

alien -i kernel-source-2.4.20-8.i386.rpm
dpkg: unable to access dpkg status area: Read-only file system


what should the properties of the .rpm file be?

right now it is rw-r-r

UnderScore
12-19-2004, 05:45 AM
I am sorry if I left out a crucial step. You do not, should not use alien.
Upon mounting hda2, copy the kernel RPM file to /mnt/hda2/tmp. Next you have to chroot into hda2. A chroot is a change root. It makes the system think that /mnt/hda2 is your new / as opposed to its current root from the Knoppix CD. Using the following command:
chroot /mnt/hda2 /bin/bash
Then you can use rpm to install the kernel package.
rpm -ivh /tmp/kernel-version.rpm
If this works, edit grub.conf if necessary. Next exit the chroot with the exit command. Unmount /dev/hda2:
umount /mnt/hda2
Reboot.
Again, my apologies.
James

ncsuapex
12-19-2004, 07:12 PM
James,

No problem, the Alien thing was working anyways. Ok I tried what you posted and I was able to install the kernel RPM. Now about the grub.conf file.

I ran a find / -name grub.conf and it came back with:
/etc/grub.conf

I did a ls -al on /etc/grub.conf and got this:

lrwxrwxrwx 1 root root 22 Oct 15 2003 grub.conf -> ../boot/grub/grub.conf


I am not sure by looking at that link where grub.conf is located. I tried all the DIRs(while still in chroot mode)

I opened a new terminal console and did a cd to /mnt/hda1
I found grub.conf under /boot/grub

the contents are:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/hda2
# initrd /initrd-version.img
#boot=/dev/hda
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
password --md5 $1$adRtnzb5$hNqORBo.f757r8WftCiHM1

default=0
timeout=10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.20-8)
root (hd0,0)
kernel /boot/vmlinuz-2.4.22-xfs ro root=LABEL=/
initrd /boot/initrd-2.4.20-8.img


I changed the kernel line because when I checked /boot i found a file called vmlinuz-2.4.22-xfs

I was unable to find any initrd*.img files by running find / -name initrid*.*


Thanks for your help.

j

ncsuapex
12-21-2004, 12:55 AM
uggh.. I've been messing with this thing for the last few days and still can't seem to get it working