[lfs-support] Can't boot into LFS kernel.

Henrik /KaarPoSoft henrik at kaarposoft.dk
Wed Sep 12 02:56:00 PDT 2012

On 09/12/12 05:03, Khoa Nguyen wrote:
> Can you tell me more about busybox ?
> What do you mean "busybox in an initramfs" ?
> I understand that due to failed boot process because the kernel can't 
> mount the root file system to read /etc/inittab.
> So we use busybox to mount manually . Right ?
When the kernel boots, it mounts the root file system and executes 
/sbin/init from there.
/sbin/init becomes process number one, and is responsible for system 
initialization (eg. running rc.d scripts and more).

But the kernel does not understand boot=<uuid>, only 
boot=<path-to-device>, and if for some reason the kernel can not mount 
the root file system, you are stuck.

Initramfs is a compressed archive of files. The initramfs file is read 
from disk by grub and passed to the kernel. The kernel is then mounting 
this (as a ramfs ) as the root filesystem and executes /sbin/init.

The /sbin/init in the initramfs can then do whatever is necessary to 
mount the real root filesystem from disk, and finally run /sbin/init on 
the real root file system. Or it can run a whole system directly from 
the initramfs, never touching your disk.

My init file in the initramfs looks like this:

It basically mounts the /proc /sys and /dev special directories, finds 
the real root file system and mounts it, and finally executes /sbin/init 
on the real root file system.

However, if something goes wrong (or if you specify busybox on the 
command line) it will drop into a /bin/sh shell from busybox.

BusyBox combines tiny versions of many common UNIX utilities into a 
single small executable. It provides replacements for most of the 
utilities you usually find in GNU fileutils, shellutils, etc.

My way of building the initramfs:
(line 128-145)

Good luck...


More information about the lfs-support mailing list