SlackwareThis Forum is for the discussion of Slackware Linux.
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.
Hi all, somewhat new Linux convert here with a first post.
For a few months I've been running WinXP, Slackware 13 (32-bit) and Linux Mint 7, using Grub as my bootloader. I recently decided to upgrade Mint to 8 and it upgraded Grub to version 1.97~beta4 in the process. It boots in to WinXP and Mint 8 with no problems, but all of the sudden there is a kernel panic when I try to load Slackware 13 (which I did not change).
Here are some details...
Error message (directly following the listing of all partitions):
No Filesystem could mount root, tried: romfs
Kernel panic - not syncing: VFS: Unable to mount root fs on uknown-block(8,7)
From grub.cnfg (which as I understand it replaces menu.lst in the updated grub):
root = /dev/sda7
It all worked fine before the Mint upgrade, which leads me to believe that something has changed in Grub.
Thanks, and let me know if I can provide any more details.
Click here to see the post LQ members have rated as the most helpful post in this thread.
Thanks for the response, I will definitely look in to the initrd. That came up a lot in my searches to try and fix this, but I'm always pretty hesitant to start trying anything resembling a solution until I find the one that makes sense to me. It always leads to a million failed attempts at fixing it by modifying files, adding files, deleting files, etc. and I always feel dirty at the end of that process...I digress.
I'll research the initrd -- don't really understand what it is, but I'm sure a few searches can catch me up.
As far as the huge kernel, I do actually have that. I've got four different menu items for Slackware in grub, but all of them come to a grinding halt with the same kernel panic.
Alright, a quick kernel how-to lesson for slackware
Slackware provides a huge, and a generic kernel. On 32-bit, it actually provides 2-huge kernels (one for -smp, and one for non-smp CPUs), and 2 generic (again, one -smp, and one for non-smp). Most systems these days can handle -smp kernels (even if they are single-processor), and this is typically the default.
On 64-bit, there are only two kernels - one huge, and one generic. 64-bit capable processors will always handle -smp kernels just fine, so Pat only needs to provide 1 of each.
So, the difference between huge and generic? Huge is, as it sounds, packed with just about every option enabled in the configuration. This means that most stuff, including chipset support, file systems, etc, are built into the kernel. The main use for this is installation, as almost all PC's will be have support without any trouble. However, in day-to-day tasks, it might be a little overkill.
The generic kernel is more modular kernel. So, stuff like file systems, chipset, etc. are all compiled as modules, and loaded only as your system requests it. This means it will run a little more efficiently than the huge kernel, because you are only loading stuff you need.
The huge kernel, since the file system and chipset are built into the kernel, will not require this initrd. However, the generic kernel, which has everything as a module, will. You need to have support in the ram disk for your file system + IDE/sata controller, otherwise the kernel will panic trying to mount your root partition (this is the error you are hitting trying to load that generic kernel).
Check out this document, which kind of explains what an initrd is, why it is used, and even how to create one. If you've been using slackware for a few months, and haven't created one yet, you probably have been using the "huge" kernel up until now. I would at least fix the grub entry to boot this kernel before doing anything else, and then transition to a generic kernel if you'd like.
So I understand the concept now, and in fact when I went down to the third option an attempted loading the huge kernel everything worked fine. So it does appear to be an intitrd issue, and I read through that link which makes perfect sense, copied the correct packages off the install dvd, installed them and created my initrd tree with no problems and......
Progress! Still isn't working. Here are the last few lines:
initrd.gz: Loading kernel modules from initrd image:
mount: mounting /dev/sda7 on /mnt failed: No such device
At this point it allows me to "try and fix it" but knows there is "trouble ahead".
I followed the instructions to use the reiserfs -- should I be doing the second example for an ext3 system using mbcache, jbd, etc?
Here again I don't really understand what I'm doing. Obviously reiserfs is a type of file system, but is it referring to the one that is used for the initrd, or does it need to match the one slack is on, or...confusion...
Thanks again for all your time, I truly appreciate it.
More helpful advice from all, but even with the initrd I can't seem to get the non-huge kernels to boot:
mount: mounting /dev/sda7 on /mnt failed: No such device
ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead...
Same type of message as before. There's gotta be something that I'm missing here. Followed the links to compiling your own kernels, looks very promising and I will no doubt try it in the future when I have more time. For now I'm just going to go ahead with the huge kernel, but it nags at me that I can't figure out what the issue is...