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