Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=fwlive.git;a=commitdiff;h=d5547bd2a233011985dacad577ff7258e9bed528

commit d5547bd2a233011985dacad577ff7258e9bed528
Author: Miklos Vajna <vmik...@frugalware.org>
Date:   Thu Nov 3 01:14:36 2011 +0100

speed up generation of the rootfs image by installing packages directly to the 
loopback device

diff --git a/create-iso.sh b/create-iso.sh
index a5817b2..194f76d 100755
--- a/create-iso.sh
+++ b/create-iso.sh
@@ -6,10 +6,13 @@ rm -rf $TREE/iso
#Create Iso with grub
#TODO: add fwlive gfx
mkdir -p $TREE/iso/boot/grub
+mkdir -p $TREE/rootfs
+mount $TREE/squashfs-root/LiveOS/rootfs.img -o loop $TREE/rootfs
cp -v $TREE/rootfs/boot/grub/message $TREE/iso/boot/grub/
cp -v $TREE/rootfs/boot/vmlinuz $TREE/iso/boot/
cp -v $TREE/rootfs/boot/initrd.img.xz $TREE/iso/boot/
cp -v $TREE/rootfs/usr/lib/grub/i386-frugalware/stage2_eltorito 
$TREE/iso/boot/grub/
+umount $TREE/rootfs
cat >$TREE/iso/boot/grub/menu.lst <<EOF
default=0
timeout=5
diff --git a/create-rootfs.sh b/create-rootfs.sh
index 67dc08f..82957e4 100755
--- a/create-rootfs.sh
+++ b/create-rootfs.sh
@@ -8,8 +8,12 @@ if [ "`id -u`" != 0 ]; then
exit 1
fi

-# Create empty dir
-rm -rf $CHROOTDIR
+# Mount loop
+mkdir -p $CHROOTDIR
+rm -f $TREE/rootfs.img
+dd if=/dev/zero of=$TREE/rootfs.img bs=1M count=1024
+mkfs.ext4 -F $TREE/rootfs.img
+mount -o loop $TREE/rootfs.img $CHROOTDIR
mkdir -p $CHROOTDIR/{etc,proc,sys,var/cache/pacman-g2,var/tmp/fst,tmp,var/log}

# Mount chroot
@@ -19,6 +23,34 @@ mount -t sysfs none $CHROOTDIR/sys >/dev/null
mount -o bind /var/cache/pacman-g2 $CHROOTDIR/var/cache/pacman-g2 >/dev/null
echo "Successfully mounted chroot directories."

+# Pre-install tweaks
+mkdir -p $CHROOTDIR/etc/{profile.d,sysconfig}
+## file /etc/profile.d/lang.sh
+echo "export LANG=$FWLIVELANG" >$CHROOTDIR/etc/profile.d/lang.sh
+echo "export LC_ALL=\$LANG" >> $CHROOTDIR/etc/profile.d/lang.sh
+if [ "`echo $FWLIVELANG|sed 's/.*\.\(.*\).*/\1/'`" == utf8 ]; then
+       echo "export CHARSET=utf-8" >> $CHROOTDIR/etc/profile.d/lang.sh
+else
+       case $FWLIVELANG in
+               en_US)
+                       echo "export CHARSET=iso-8859-1" >> 
$CHROOTDIR/etc/profile.d/lang.sh ;;
+               fr_FR)
+                       echo "export CHARSET=iso-8859-15" >> 
$CHROOTDIR/etc/profile.d/lang.sh;;
+               *)
+                       echo "export CHARSET=iso-8859-15" >> 
$CHROOTDIR/etc/profile.d/lang.sh;;
+               esac
+fi
+chmod +x $CHROOTDIR/etc/profile.d/lang.sh
+## file /etc/sysconfig/keymap
+## TODO:To improve the function ( ex : for french keymap=fr-latin1 )
+case $FWLIVELANG in
+       en_*)
+               keymap=us ;;
+       *)
+               keymap=`echo $FWLIVELANG |sed 's/_.*//'` ;;
+esac
+echo "keymap=$keymap" > $CHROOTDIR/etc/sysconfig/keymap
+
# Build it
echo "Building chroot environment"
if [ -e pacman-g2.conf ]; then
@@ -33,9 +65,20 @@ fi
echo "Server = 
http://ftp.frugalware.org/pub/frugalware/frugalware-$TREE/frugalware-$ARCH"; >> 
pacman-g2.conf
pacman -Sy base -r "$CHROOTDIR" --noconfirm --config pacman-g2.conf

-# Umount
+# Post-install tweaks
+chroot $CHROOTDIR sh -c 'echo "root:fwlive" | chpasswd'
+
+# Umount chroot
echo "Attempting to umount chroot directories..."
umount $CHROOTDIR/proc >/dev/null
umount $CHROOTDIR/sys >/dev/null
umount $CHROOTDIR/var/cache/pacman-g2 >/dev/null
echo "Successfully umounted chroot directories."
+
+# Umount loop
+df -h $CHROOTDIR
+umount $CHROOTDIR
+rmdir $CHROOTDIR
+# TODO see later if this reduces size
+#e2fsck -f rootfs.img
+#resize2fs rootfs.img -M
diff --git a/create-squash.sh b/create-squash.sh
index 457d9de..f6c2267 100755
--- a/create-squash.sh
+++ b/create-squash.sh
@@ -7,50 +7,6 @@ if [ "`id -u`" != 0 ]; then
exit 1
fi

-## Password root
-chroot $CHROOTDIR sh -c 'echo "root:fwlive" | chpasswd'
-## file /etc/profile.d/lang.sh
-## TODO:Make /etc/profile.d/less.sh, /etc/locale.conf and finish export charset
-echo "export LANG=$FWLIVELANG" >$CHROOTDIR/etc/profile.d/lang.sh
-echo "export LC_ALL=\$LANG" >> $CHROOTDIR/etc/profile.d/lang.sh
-if [ "`echo $FWLIVELANG|sed 's/.*\.\(.*\).*/\1/'`" == utf8 ]; then
-       echo "export CHARSET=utf-8" >> $CHROOTDIR/etc/profile.d/lang.sh
-else
-       case $FWLIVELANG in
-               en_US)
-                       echo "export CHARSET=iso-8859-1" >> 
$CHROOTDIR/etc/profile.d/lang.sh ;;
-               fr_FR)
-                       echo "export CHARSET=iso-8859-15" >> 
$CHROOTDIR/etc/profile.d/lang.sh;;
-               *)
-                       echo "export CHARSET=iso-8859-15" >> 
$CHROOTDIR/etc/profile.d/lang.sh;;
-               esac
-fi
-chmod +x $CHROOTDIR/etc/profile.d/lang.sh
-## file /etc/sysconfig/keymap
-## TODO:To improve the function ( ex : for french keymap=fr-latin1 )
-case $FWLIVELANG in
-       en_*)
-               keymap=us ;;
-       *)
-               keymap=`echo $FWLIVELANG |sed 's/_.*//'` ;;
-esac
-echo "keymap=$keymap" > $CHROOTDIR/etc/sysconfig/keymap
-
-
-rm -f $TREE/rootfs.img
-dd if=/dev/zero of=$TREE/rootfs.img bs=1M count=1024
-mkfs.ext4 -F $TREE/rootfs.img
-loop=$(mktemp -d)
-mount -o loop $TREE/rootfs.img $loop
-cp -a $CHROOTDIR/* $loop
-df -h $loop
-umount $loop
-rmdir $loop
-
-# TODO see later if this reduces size
-#e2fsck -f rootfs.img
-#resize2fs rootfs.img -M
-
mkdir -p $TREE/squashfs-root/LiveOS
mv $TREE/rootfs.img $TREE/squashfs-root/LiveOS
# TODO can be xz
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to