Elena Quinn
asked on
Kernel Panic after Kernel update - what am I doing wrong?
Hi Folks,
I have just tried to update my kernel from 2.6.24.5 to 2.6.39-rc3 on a Slackware 12.1 distribution. I have successfully updated the kernel before, but it was from a newer distribution and newer kernel(Slackware 13.1 and 2.6.33.4).
After I updated and rebooted, I got the following error:
Here are the steps, I took to update the kernel:
1. Unpack the kernel file:
3. Configure the new kernel:
In the above step, I just hit 'enter' for every question, accepting the default.
4. I also ran the menu config to make sure some things were installed, like support for USB 3.0.
5. Compile the kernel:
6. Install the kernel:
7. Edit lilo.conf so I can choose which kernel to boot to.
8. Run lilo
9. Reboot and select Linux2.6.39-rc3 to boot.
Then, the error happens. I would appreciate any assistance to help me figure out what I did wrong or what the problem might be.
Thanks,
Equinn
I have just tried to update my kernel from 2.6.24.5 to 2.6.39-rc3 on a Slackware 12.1 distribution. I have successfully updated the kernel before, but it was from a newer distribution and newer kernel(Slackware 13.1 and 2.6.33.4).
After I updated and rebooted, I got the following error:
List of all partitions:
0300 4194302 hda driver: ide-cdrom
0800 312571224 sda driver: sd
0801 244197560 sda1 00000000-0000-0000-0000-000000000sda1
0802 68372640 sda2 00000000-0000-0000-0000-000000000sda2
No filesystem could mount root, tried: romfs
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1)
Pid: 1, comm: swapper Not tainted 2.6.39-rc3-smp #1
Call Trace:
[<c103322b>] ? printk+0x1b/0x20
[<c10322fa>] panic+0x5a/0x180
[<c14bacf7>] mount_block_root+0x187/0x260
[<c10afb47>] ? sys_mknod+0x27/0x30
[<c14ba530>] ? do_early_param+0xa0/0xa0
[<c14bae33>] mount_root+0x63/0xd0
[<c14baff3>] prepare_namespace+0x153/0x1b0
[<c10a1deo>] ? sys_access+0x20/0x30
[<c14ba64c>] kernel_init+0x11c/0x150
[>c13461b6>] kernel_thread_helper+0x6/0xd
Here are the steps, I took to update the kernel:
1. Unpack the kernel file:
cp linux-2.6.39-rc3.tar.bz2 /usr/src
cd /usr/src
tar jxvf linux-2.6.39-rc3.tar.bz2
2. Copy the old config to the new kernel source directory:cp/usr/src/linux/.config /usr/src/linux-2.6.39-rc3
3. Configure the new kernel:
make oldconfig
In the above step, I just hit 'enter' for every question, accepting the default.
4. I also ran the menu config to make sure some things were installed, like support for USB 3.0.
make menuconfig
5. Compile the kernel:
make bzImage
make modules
make modules_install
6. Install the kernel:
cd /boot
rm vmlinuz
ln -s vmlinuz-huge-smp-2.6.24.5-smp vmlin24
cp /usr/src/linux-2.6.39-rc3/arch/x86/boot/bzImage /boot/vmlinuz-2.6.39-rc3
ln -s vmlinuz-2.6.39-rc3 vmlin39
7. Edit lilo.conf so I can choose which kernel to boot to.
# Linux bootable partition config begins
image = /boot/vmlin24
root = /dev/sda1
label = Linux2.6.24.5
read-only
image = /boot/vmlin39
root = /dev/sda1
label = Linux2.6.39-rc3
read-only
# Linux bootable partition config ends
8. Run lilo
lilo
9. Reboot and select Linux2.6.39-rc3 to boot.
Then, the error happens. I would appreciate any assistance to help me figure out what I did wrong or what the problem might be.
Thanks,
Equinn
ASKER
Hi Wesly,
First, I don't know what that is. Where do I find it and what do I do about it?
Second, the old kernel was using a SATA disk and it is able to boot and I used that config to configure the new kernel. So wouldn't that have avoided this problem?
I'm new at this so I apologize if I'm supposed to know this.
Thanks,
Equinn
First, I don't know what that is. Where do I find it and what do I do about it?
Second, the old kernel was using a SATA disk and it is able to boot and I used that config to configure the new kernel. So wouldn't that have avoided this problem?
I'm new at this so I apologize if I'm supposed to know this.
Thanks,
Equinn
You need to recreate the initrd with the drivers for the card your root file system is on
I've not used slackware before so I use mkinitrd to do it after updating modules.conf
I've not used slackware before so I use mkinitrd to do it after updating modules.conf
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Wesly,
Thanks for the readme. I don't understand why I would need an initrd.gz, if it wasn't being used on the previous kernel. I didn't see anything about it in lilo.conf.
Also, on my previous attempts that were successful (granted from a newer kernel), I didn't have to do that.
Thanks,
Equinn
Thanks for the readme. I don't understand why I would need an initrd.gz, if it wasn't being used on the previous kernel. I didn't see anything about it in lilo.conf.
Also, on my previous attempts that were successful (granted from a newer kernel), I didn't have to do that.
Thanks,
Equinn
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
the error you posted seems to indicate that the system does not have the drivers to find the operating system, you should at least confirm that the initrd is actually correct or if you can supply more information.
ASKER
OK, I couldn't find any 'initrd' files in the /boot directory. Then I ran the mkinitrd like the tutorial suggested and it made the initird..gz file. Then I edited lilo.conf and ran lilo. But I still couldn't boot. It had a different error, something about something not being where it was supposed to be, and gave me a prompt so I could "fix it" (yeah, right. clearly they don't know the level of newbie they're dealing with).
So then I went back and reconfigured the kernel and made sure that the SATA drivers and the file system were both built in. I recompiled and installed and low and behold it booted. I still don't quite understand why those things wouldn't automatically be in the original config file. I thought using 'make oldconfig' would take everthing the original kernel had and make it the same in the new kernel. I don't think I will ever quite understand Linux.
So then I went back and reconfigured the kernel and made sure that the SATA drivers and the file system were both built in. I recompiled and installed and low and behold it booted. I still don't quite understand why those things wouldn't automatically be in the original config file. I thought using 'make oldconfig' would take everthing the original kernel had and make it the same in the new kernel. I don't think I will ever quite understand Linux.
http://itslaves.com/web/guest/forum/message_boards/message/66813
---------- quote -----
A SATA disk was used, and the libraries were missing for it - in the initrd.gz file.