Red Hat Bugzilla – Bug 79982
Panics upon boot when /initrd is missing.
Last modified: 2014-03-16 22:33:04 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)
Description of problem:
I removed the empty directory /initrd during post-install configuration and
during the following boot, RH8.0 refused to boot.
The console-output was something similar to the following text:
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
Freeing unused kernel memory: 216k freed
Kernel panic: No init found. Try passing init= option to kernel.
I found this very confusing as all the initrd's are located under /boot, and it
had apparently found the kernel, so why not the initrd.
I booted into rescue-mode via the install-CD 1, and re-created /initrd. It
retried to boot and it worked great. _NOTHING_ else was done during the rescue-
operation, which isolates this as the source to the problem.
I am surprised and very unpleased to see that the removal of a single, empty
directory can cause kernel-panics upon boot.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. # rm -rf /initrd
2. # reboot
Actual Results: Kernel panic.
Expected Results: Nothing, the scripts should be able to handle this.
Don't Do That.
The directory is there for a reason; it's required for booting from an initrd.
I've mostly used RH7.0 which also boots off the ramdisk, but there was no directory called /initrd on that version. I could of course just accept that it's needed and so on, but I'm having a real hard time accepting the justification "The directory is there for a reason".
Could someone at least point me in the right direction when it comes to finding information regarding where the entire boot-procedure is documented for RH8.0?
mkinitrd uses the pivot_root syscall to switch the root filesystem from the
initrd to the real root filesystem. To do this, it needs a place to move the
mount of the initrd to; that's what /initrd is for. If it's not there, the
changing of the root