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.
I'm sure this has been discussed time and again, but a search is not getting me any definitive answers to my question.
I've always booted Slackware with an initrd until recently. With my new installation of Slack Current (13.37), I didn't bother to create an initrd because of the constantly updating/transient nature of the current branch at the moment.
My question is this: when 13.37 does go final in a few days, should I go back to my normal practice of booting with an initrd?
Also, I think I understand how the initial ramdisk works, but is it really needed with the more modern kernels?
Thanks in advance...
~Eric
Click here to see the post LQ members have rated as the most helpful post in this thread.
Initrd is needed when you build things that are necessary to boot as modules, and thus are stored separately from the kernel on the HDD. For example filesystem support. The bootloader knows where the kernel is on the disk, and so can load it without needing anything. However, it doesn't know where the modules are and cannot access them without some modules, like filesystem support, IDE or SATA support, etc (catch22). So, you just make an initrd, which is an image containing these modules that is loaded with the kernel into RAM. piratesmack is correct, in that the huge kernels have everything built-in and thus don't need an initrd. However, if you make a custom kernel, like I do, I build in the things that are needed and leave the rest as modules, which is obviously the best thing to do. No bloated kernel, no initrd.
For those who (for religious reasons) can not use initrd, they still can use a ROOTFS embedded in the kernel, an initrd which is included in bzImage, at build time.
After all, all options can be set in the initrd command line ...
The same name as the /lib/modules/<kernel version> folder
But if you build ext4 support into your custom kernel by setting 'CONFIG_EXT4_FS=y' (not 'm'), then you don't even need an initrd (unless you use LVM, LUKS, or RAID like said above)
Last edited by piratesmack; 04-03-2011 at 03:47 PM.
For me, there are good reasons to use an initrd instead of using the huge kernel. I don't always run Slackware on "modern" hardware but I still want to be able to run a "modern" kernel.
Size: The generic kernel takes up < 1/2 the RAM, and I can shrink that further with configuration customizations, as needed, not only for my main multi gigabyte, multi CPU box, but also for my PIII laptops with 256-512MB of RAM
Speed: initrd/generic boots faster. YMMV
control: I only load what I need, which gives speed, RAM and HD savings, stability, and security.
Thanks all. Thanks very much. Those were some great answers. I'll probably go back to booting with the initrd after reading all these replies. I appreciate the time y'all took to answer my queries.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.