SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
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.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
How is it not simpler to avoid a step entirely? Initrd is a workaround and by definition adding something not required is more complex than just solving the issue up front, especially in this case where we are talking about simple filesystem support. Why would anyone ever wish to blacklist a filesystem? How would it ever conflict with anything? I might be convinced that an initrd used in the case of some problematic specific hardware might be AS GOOD a solution as hard-wired into the kernel, but with the exception that I noted of encryption, I am aware of no situation in which it is superior or required.
I am wondering why if, as it appears, that the only reason you "require" an initrd is for ext4 support, you would choose to add such complexity when simply enabling the needed modules at kernel level solves all these issues? Granted it takes longer to rebuild a kernel than to run mkinitrd but once it's done you never have to do it again, unlike mkinitrd... and the bonus is you have a simpler, more reliable system.
If I don't change my kernel, I don't need to re-run mkinitrd either.
One more thought - reverse the order of the lilo stanzas, put stock first and generic second, so they install to different locations in the boot record. Maybe even try adding a third stanza with a different initrd so that it will also reside in a different location on disk.
I have never had a lilo problem with or without initrd that could not be resolved, so I am very curious about this one!
Could you also provide a but more info on the drive, mfgr, partition scheme, etc. and on the machine itself.
I am wondering why if, as it appears, that the only reason you "require" an initrd is for ext4 support, you would choose to add such complexity when simply enabling the needed modules at kernel level solves all these issues? Granted it takes longer to rebuild a kernel than to run mkinitrd but once it's done you never have to do it again, unlike mkinitrd... and the bonus is you have a simpler, more reliable system.
This started with my trying to boot off an encrypted LVM, like I usually do when I put Slackware on a laptop. In attempting to isolate the problem I found I got the same error by just attempting to boot a generic kernel off a plain MBR partition with an initrd on this hardware. If I'm on plain partitions I generally don't use an initrd.
I fail to see what makes a system that doesn't use an initrd simpler and more reliable. What's sure instead is that having a built-in driver prevents to blacklist it, but you could need to avoid that a device be held by the wrong driver. Bear in mind that some devices can be claimed by several drivers, and it's good to be able to choose which one will be used. But of course that can need to provide the modules in an initrd.
For that matter, in production machines I generally don't use modules at all except for DRM and audio, and that's only because both of those really "want" to be modules (which I find irritating). On a new Slackware install I'm usually only running the stock kernel long enough to boot, download the latest stable branch, and build it. So if I can fix this, I'll only actually be using the initrd to unlock the LUKS partition in the long term.
And, now that I say that, I do recall there's a built-in initrd option, which I may take a look at, though IIRC that's mostly contemplated for embedded systems and it may not meet my needs. (EDIT: now I remember: if it hasn't changed since 2.X, you can't pivot_root out of it.)
Haven't had a chance to inspect your lilo configuration, however a noteworthy point I need to mention first: you can capture the contents of the kernel panic/kernel oops/kernel dump via a serial cable console (utilizing uucp/putty).
There are usb-serial devices, however they can be problematic. I don't have any experience using those devices in linux, but I do recall them being especially problematic in windows (I had a ton of driver issues).
This started with my trying to boot off an encrypted LVM, like I usually do when I put Slackware on a laptop. In attempting to isolate the problem I found I got the same error by just attempting to boot a generic kernel off a plain MBR partition with an initrd on this hardware. If I'm on plain partitions I generally don't use an initrd.
Haven't had a chance to inspect your lilo configuration, however a noteworthy point I need to mention first: you can capture the contents of the kernel panic/kernel oops/kernel dump via a serial cable console (utilizing uucp/putty).
There are usb-serial devices, however they can be problematic. I don't have any experience using those devices in linux, but I do recall them being especially problematic in windows (I had a ton of driver issues).
"Problematic" doesn't even begin to cover it (I do a lot of serial port programming for the lab I work at). ttyUSB gets really hairy, and anyways the USB stack isn't up at this point. Thanks, though!
You mentioned you can succesfully load the huge kernel. A VFS related error.. have you ever at any point been able to use the generic kernel on this system w/ a initrd?
I'm asking because my guess would be that you are missing the module for the storage controller in your initrd. That is generally the reason you would use an initrd in the first place, as it is common practice to recompile your kernel with the drivers your system requires.
Can you do me a favor, load the huge kernel, and run (as root):
lspci -vvv | grep modules
lspci -vvv | grep driver
and provide the output?
Also, you can load the usb stack by including the following modules in the initrd:
ehci-hcd
uhci-hcd
usb-storage
If you can borrow a serial cable or usb adapter from your work, it would be worth it to see the exact kernel dump you have on screen.
Richard I don't know how I missed that, I should've looked at the first post more carefully. Thanks.
My previous statement made sense before the grub2 info.
Since you're installing lilo in the mbr, maybe the mbr is corrupt. Try clearing out the mbr via dd and then installing the initrd by running lilo:
you may want to back mbr first:
Quote:
dd if=/dev/sda of=/path/mbr-backup bs=512 count=1
overwrite current mbr w/ zeros:
Quote:
dd if=/dev/zero of=/dev/sda bs=512 count=1
then run lilo
worth a shot in my opinion. I'm trying to think of the major differences that distinguish grub and lilo. Obviously there is a functionality within lilo that isn't jiving with your initrd that needs to be narrowd down.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.