Generated code for debug command.
[libguestfs.git] / make-initramfs.sh.in
index 60e2ee2..6ff6e69 100755 (executable)
 
 set -e
 
+unset CDPATH
+
 # If you want to do some extra debugging and diagnosis of the
 # initramfs image, then uncomment this line.  This makes the image
 # larger.
 debug=yes
 
-modules="-i kernel -i bash -i coreutils -i lvm2 -i ntfs-3g -i util-linux-ng -i MAKEDEV -i net-tools"
+modules="-i kernel -i bash -i coreutils -i lvm2 -i ntfs-3g -i util-linux-ng -i MAKEDEV -i net-tools -i augeas-libs -i file"
 
 if [ "x$debug" = "xyes" ]; then
     modules="$modules -i module-init-tools -i procps -i strace -i iputils"
@@ -38,7 +40,14 @@ rm -f $output
 rm -f $koutput
 
 # Create the basic initramfs.
-@FEBOOTSTRAP@ $modules @REPO@ initramfs @MIRROR@
+@FEBOOTSTRAP@ $modules -u @UPDATES@ @REPO@ initramfs @MIRROR@
+
+# /sysroot is where the guest root filesystem will be mounted.
+mkdir initramfs/sysroot
+
+# Create /tmp if it is missing.
+mkdir -p initramfs/tmp
+@FEBOOTSTRAP_RUN@ initramfs -- chmod 0777 /tmp
 
 # Make a safe 'install_file' function to install files into the
 # filesystem.  XXX We need a 'febootstrap-install' utility.
@@ -62,9 +71,17 @@ find initramfs -name '*plymouth*' -print0 | xargs -0 rm -rf
 find initramfs -name '*python*' -print0 | xargs -0 rm -rf
 
 # Modules take up nearly half of the image.  It's a rough guess that
-# we don't need any drivers (which take up most of the space).
-#rm -rf initramfs/lib/modules/*/kernel/{drivers,sound}
-rm -rf initramfs/lib/modules/*/kernel/arch/x86/kvm
+# we don't need many drivers (which take up most of the space).
+find initramfs/lib/modules/*/kernel \
+  -name '*.ko' \
+  -a ! -name 'mii.ko' \
+  -a ! -name '8139cp.ko' \
+  -a ! -name 'ext2.ko' \
+  -a ! -name 'ext4.ko' \
+  -a ! -name 'crc16.ko' \
+  -a ! -name 'jbd2.ko' \
+  -a ! -name 'fuse.ko' \
+  -a -delete
 
 # Pull the kernel out into the current directory.  We don't want it in
 # the initramfs image.