Red Hat Bugzilla – Bug 97174
Automatically add /initrd if missing during boot
Last modified: 2007-04-18 12:54:45 EDT
Description of problem:
The boot process depends on the existence of the /initrd directory. If this
directory is missing, the kernel panics and booting fails. For various reasons,
this directory was missing from some systems and they were stuck with an
unbootable system (see bug 54945 and bug 79982). This bug bit me yesterday.
The design seems fragile to me, and several ideas occurred to me that would
strengthen the system design.
1. The responsibility for creating /initrd is with the filesystem package,
however each kernel requires it. The kernel RPMs could verify the existence of
the directory. Yes, I know this breaks the RPM package encapsulation, but that
/initrd cannot be put into each kernel's RPM is, in my opinion, a design flaw
in RPM itself, since the kernel is the only module that uses this directory. I
digress. Anyway, I suggest putting it into each kernel's RPM because in
diagnosing my system's boot problem I thought to verify each kernel's
installation but not the (in my opinion more obscure) filesystem package.
2. Add a hint to the kernel diagnostics so that before it calls pivot_root, it
checks for the existence of /initrd, complains if it is not present, and
suggests that it be created. The current hint, "Kernel panic: no init found. Try
passing init= option to kernel." is misleading.
3. My favorite: if /initrd is missing, the kernel creates it. A missing
/initrd directory serves no purpose except to block booting, and who wants that?
Just create the directory and get on with the boot. (If the directory is created
on demand, it can be deleted later because its continued presence really doesn
't add value.
Version-Release number of selected component (if applicable):
kernels 2.4.20-9, 2.4.20-13.9, 2.4.20-18.9 (and probably others)
*** This bug has been marked as a duplicate of 97173 ***
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.