mkinitramfs - Boot your Linux WELL!
Welcome to mkinitramfs
I've started this projects because I was looking for a clean way to boot my Linux system.
What's the problem?
Ok. I have my Linux installation which is installed on first, ext3 formatted partition of primary master IDE drive. Also I have something like root=/dev/hda1 on my kernel command line and since I have a modern distro, it uses initramfs, or initrd at worst, which has to be able to guess what file system do my / uses.
Now, what happens if I just brought new shiny SATA drive and copied my Linux installation? - My system will certainly not boot. Why? - Because my root device is now probably /dev/sda1. And its getting worse - If you boot, while your flash drive is plugged in, there are chances that it will be the one who scores to be /dev/sda1, moving your / to be /dev/sdb1.
I've started to think - Why do I have to know on which disk my / is located? What I care about is a file system I want to boot from - my file system. And file system is very well distinguished by its UUID.
Now boot procedure becomes as simple as this:
- Let udev discover all available hard drives in the system, build raid arrays, activate LVMs, etc.
- Search for my UUID in /dev/disk/by-uuid
- Mount it, chroot and exec init
- If your Linux supports your hardware, mkinitramfs will boot it. No matter where your root file system resides - it can be IDE, SCSI, RAID, etc.
- Currently we support the following, high-level storage devices:
- Written in pure Bash in short, straigh-forward way. Just about 500 lines of easy understandable code.
- Extensible via plugins. For example, mdraid support plugin is just 8 lines of code.
- Support for fbsplash boot themes - you get eye-candy during mkinitramfs boot stage. Read more at SplashSupport? page.
Here is the list of the distros supported out-of-the-box:
- None yet.
If you system is not listed, please read general integration instructions - booting your system using mkinitramfs is rather easy.