[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

giant initrd.img testing

Initial testing of the giant initrd is not going so well.  First, it
appears you have to bump the memory up to 1 GB.  Second, qemu and the
kernel are both pretty unhappy about such a large initrd.  So I may not
be able to do this after all.

While I was trying to think of a new plan, I decided to see what was
taking up so much space in the initrd.  Check this list of big offenders
out, and see if you can help me think of ways to remove or reduce them:

-r--r--r--   1 root     root      5784008 Aug 23 13:51 etc/selinux/targeted/policy/policy.24

We have both the policy file and the contents of
/etc/selinux/targeted/modules, which contains a policy.kern file equal
in size to the above.  Do we really need both of these?  Do we need the
modules directory at all?  It sure does contain a lot of crud that'll
never get run while anaconda's around.

-r--r--r--   1 root     root     99158752 Aug 23 14:05 usr/lib/locale/locale-archive 

This is the biggest file in the initrd.  Nothing else comes close.  What
can we do about this?  In the past, we've gone back and forth on
generating it manually vs. using the system one to achieve some savings.
Given how enormous it is, I think spending some time generating it
manually is worth it even if we trim the file by half.

-r-xr-xr-x   1 root     root      2280024 Jul 20 01:29 usr/lib64/dri/radeong_dri.so
-r-xr-xr-x   1 root     root      2165224 Jul 20 01:29 usr/lib64/dri/swrastg_dri.so
-r-xr-xr-x   1 root     root      1943960 Jul 20 01:29 usr/lib64/dri/swrast_dri.so
-r-xr-xr-x   1 root     root      2280024 Jul 20 01:29 usr/lib64/dri/r300_dri.so
-r-xr-xr-x   1 root     root      2114608 Jul 20 01:29 usr/lib64/dri/unichrome_dri.so
-r-xr-xr-x   1 root     root      2131256 Jul 20 01:29 usr/lib64/dri/savage_dri.so
-r-xr-xr-x   1 root     root      2192520 Jul 20 01:29 usr/lib64/dri/mga_dri.so
-r-xr-xr-x   1 root     root      2267784 Jul 20 01:29 usr/lib64/dri/radeon_dri.so
-r-xr-xr-x   1 root     root      2102144 Jul 20 01:29 usr/lib64/dri/r128_dri.so
-r-xr-xr-x   1 root     root      2307288 Jul 20 01:29 usr/lib64/dri/r200_dri.so
-r-xr-xr-x   1 root     root      2328232 Jul 20 01:29 usr/lib64/dri/i965_dri.so
-r-xr-xr-x   1 root     root      2273368 Jul 20 01:29 usr/lib64/dri/i915_dri.so
-r-xr-xr-x   1 root     root      2170952 Jul 20 01:29 usr/lib64/dri/tdfx_dri.so
-r-xr-xr-x   1 root     root      2244696 Jul 20 01:29 usr/lib64/dri/r600_dri.so

Are these really necessary for a responsive installation experience?
That's 30 MB right there.

-r--r--r--   1 root     root      5634892 Aug 23 13:53 usr/share/icons/Mist/icon-theme.cache

I can't imagine that a 5.6 MB icon cache is really required.

-r--r--r--   1 root     root       224224 Aug 18 12:51 usr/share/anaconda/loader.tr

This is a second copy of this file, which I believe is my patchset's

-r--r--r--   1 root     root      8618994 Jul 21 21:03 usr/share/cracklib/pw_dict.pwd

We only use this 8.6 MB file to check root's password once.  There's got
to be a smarter and smaller way of doing that.

Overall, it looks like there's a lot of savings here without even
needing to make tough choices about which binaries and libraries need to
get cut.  And there are some really big, really dumb binaries in the
initrd too.

- Chris

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]