David W Noon writes:

> On Fri, 9 Sep 2011 13:41:07 +0200, Alex Schuster wrote about Re:
> [gentoo-user] /dev/sda* missing at boot:
> 
> > David W Noon writes:
> > 
> > > The more I think about this merge of / and /usr, the dumber I think
> > > the idea is.  As I wrote in an earlier message on this list, the
> > > initramfs will be many times larger than the kernel itself.
> > > Indeed, my /boot partition is only 32 MiB, and that will be too
> > > small to contain all the extra libraries and programs to run the
> > > initramfs script.
> > 
> > Here, I only need 2.2 M for the kernel, 1.7 M for System.map, and 3.5
> > M for the initramfs.
> 
> My kernels are even smaller than yours: around 1.8MiB; and I have no
> initramfs at all -- currently.
> 
> The problem is the initramfs will bloat out significantly once large
> run-time libraries are required for early housekeeping, such as fsck
> for various types of filesystem.  In particular, the old e2fsck.static
> program has been dropped from e2fspprogs (about 3 years ago) and we now
> have the following:
> 
> dwn@karnak ~ % ldd /sbin/e2fsck
>       linux-gate.so.1 =>  (0xb7832000)
>       libext2fs.so.2 => /lib/libext2fs.so.2 (0xb77c1000)
>       libcom_err.so.2 => /lib/libcom_err.so.2 (0xb77bd000)
>       libblkid.so.1 => /lib/libblkid.so.1 (0xb7798000)
>       libuuid.so.1 => /lib/libuuid.so.1 (0xb7793000)
>       libe2p.so.2 => /lib/libe2p.so.2 (0xb778b000)
>       libc.so.6 => /lib/libc.so.6 (0xb7604000)
>       libpthread.so.0 => /lib/libpthread.so.0 (0xb75ea000)
>       /lib/ld-linux.so.2 (0xb7833000)
> 
> As you can see, the fsck utility for ext2/3/4 filesystems requires
> glibc and libpthread, as well as its smaller custom libraries.  Putting
> all the run-time libraries into the initramfs will make it both large
> and a maintenance chore.

Okay, it seems I very much underestimated the problems. In my case, I
only need the initramfs in order to scan for logical volumes and to open
the luks-encrypted root partition. Other partitions are mounted _after_
the initramfs was left.
With the UDEV change, /usr needs to be mounted from _inside_ the
initramfs. So you're right, much more stuff is being needed. The
above libraries and the e2fsck binary total to 2.3 M here. The initramfs
is gzipped, so we have 1 M. Still not _that_ much, but I don't know what
else might be needed.
And something must put it into the initramfs... I assume genkernel will
get this feature? Surely the Gentoo devs won't expect us users to do this
all by ourselves?

> What kind of libraries do you have inside your initramfs?

I have no idea... but I can have a look. Ah - none at all. /lib contains a
directory with all sorts of keymaps, an empty luks directory, and some 56
kernel modules.

        Wonko

Reply via email to