Initramfs & initrd - Confusion - Do I have to use them
DebianThis forum is for the discussion of Debian 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 always get confused in any literature on Linux which mentions about initrd or initramfs.
I know the default debian installation uses an initrd image during the boot (in the GRUB).
Some time back, I freed my boot process from using initrd image by compiling all the IDE and filesystem modules that are required into the kernel so that I don't have to use the "initrd" line in my GRUB config file(menu.lst).
Recently I installed a package called splashy and I encountered error and I was suggested to use the splashy program from initramfs.
I researched and found that initramfs will eventually replace initrd image.
How do I know if I am using initramfs right now during my boot process?
Does using initramfs image means appending an "initramfs" line in the GRUB just like we use to do for initrd?
How do I know if I am using initramfs right now during my boot process?
Check your boot log:
dmesg | grep initramfs
Quote:
Originally Posted by kushalkoolwal
Does using initramfs image means appending an "initramfs" line in the GRUB just like we use to do for initrd?
How do we create an initramfs?
Can anyone give some concise explanation?
The initramfs is now part of the kernel. Grub must have a pointer to the kernel but it doesn't need a separate pointer to the initramfs. You don't have to create an initramfs because it was installed with the kernel.
I don't know the precise answers, but afaik Debian already uses the initramfs tools: when I build a kernel not so long ago, I couldn't use the familiar mkinitrd command, as it wasn't installed (despite having the build-essential package installed though!). I had to install the initramfs tools to get an initrd image.
The initramfs is now part of the kernel. Grub must have a pointer to the kernel but it doesn't need a separate pointer to the initramfs. You don't have to create an initramfs because it was installed with the kernel.
-------------------
Steve Stites
Ok, I see thanks for your quick response. So is it possible to boot a debian system without initramfs just like I am currently booting my kernel without an initrd system.
Also what do it mean when the README file of the package "splashy" says, you should use splashy from initramfs. Does it mean that I should be using initramfs during my boot?
I don't know the precise answers, but afaik Debian already uses the initramfs tools: when I build a kernel not so long ago, I couldn't use the familiar mkinitrd command, as it wasn't installed (despite having the build-essential package installed though!). I had to install the initramfs tools to get an initrd image.
Hmm I thought initramfs tools should be for initramfs and not initrd.
mkinitrd or yaird should be for initrd.
Does it mean that I should be using initramfs during my boot?
If your kernel came with an initramfs installed then you are using an initramfs. There is no kernel parameter to turn initramfs on or off.
Quote:
Originally Posted by kushalkoolwal
Also what do it mean when the README file of the package "splashy" says, you should use splashy from initramfs.
If you have splashy installed in the kernel initramfs the you can tell the kernel to run splashy from the initramfs by passing the kernel a parameter in /boot/grub/menu.lst:
If your kernel came with an initramfs installed then you are using an initramfs. There is no kernel parameter to turn initramfs on or off.
If you have splashy installed in the kernel initramfs the you can tell the kernel to run splashy from the initramfs by passing the kernel a parameter in /boot/grub/menu.lst:
I apologize for still not being able to understand this picture and hence my question to this forum.
I do use vga=791 in my menu.lst. But I still don't know if I installed splashy in the kernel initramfs or not? How can I install something in initramfs?
Also, what do you mean when you say "your kernel came with an initramfs installed "? What if I just download 2.6.24 kernel from debian and using my 2.6.23 config file and just install it the regular way. Where does the initramfs come into the picture? Is that an option in the kernel config somewhere?
Also, what do you mean when you say "your kernel came with an initramfs installed "? What if I just download 2.6.24 kernel from debian and using my 2.6.23 config file and just install it the regular way. Where does the initramfs come into the picture? Is that an option in the kernel config somewhere?
Yes initramfs is a kernel config option:
To make the kernel use initramfs, set the following two options in the kernel’s .config file:
I always get confused in any literature on Linux which mentions about initrd or initramfs.
I know the default debian installation uses an initrd image during the boot (in the GRUB).
Some time back, I freed my boot process from using initrd image by compiling all the IDE and filesystem modules that are required into the kernel so that I don't have to use the "initrd" line in my GRUB config file(menu.lst).
Recently I installed a package called splashy and I encountered error and I was suggested to use the splashy program from initramfs.
I researched and found that initramfs will eventually replace initrd image.
How do I know if I am using initramfs right now during my boot process?
Does using initramfs image means appending an "initramfs" line in the GRUB just like we use to do for initrd?
How do we create an initramfs?
Can anyone give some concise explanation?
Will really appreciate it.
Initramfs replaces initrd. (filesystem instead of ramdisk)
But in /boot and in /boot/grub/menu.lst it is still -called- an initrd (if you have it). I think that is what confuses you.
If everything needed at boottime is in the kernel then you don't need it.
You create an initramfs with mkinitramsf wich comes in a package called initramfs-tools.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.