X-Git-Url: https://git.grml.org/?p=grml-live.git;a=blobdiff_plain;f=etc%2Fgrml%2Ffai%2Fconfig%2Fscripts%2FGRMLBASE%2F98-clean-chroot;h=c053a9e457eb94ae0170e93ae1bbd0cdd973adeb;hp=923277fe900c58aca3264a940836d9d639692137;hb=005cdc1ea39899e025f302f05e16fb93bb66fee9;hpb=1b426d8a9fe1f3a04fab168d6851734bf5e84f52 diff --git a/etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot b/etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot index 923277f..c053a9e 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot +++ b/etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot @@ -9,7 +9,7 @@ set -u set -e -if ! [ $(ls $target/boot/config-* 2>/dev/null) ] ; then +if ! ls $target/boot/config-* &>/dev/null ; then echo "No kernel config files (/boot/config-*) found. No kernel-image package installed?" >&2 exit 1 fi @@ -17,11 +17,28 @@ fi echo "Creating ~/.zshrc" touch $target/root/.zshrc +$ROOTCMD rm -f /etc/apt/apt.conf.d/90grml-apt-proxy.conf + if [ -x $target/usr/sbin/localepurge ] ; then echo "Running localepurge" $ROOTCMD localepurge else - echo "Warning: localepurg not installed" + echo "Warning: localepurge not installed" +fi + +# revert dpkg-divert of hooks/instsoft.GRMLBASE, which is +# used to work around /etc/kernel/postinst.d/zz-update-grub failing +# inside openvz environment, see #597084 +if $ROOTCMD dpkg-divert --list | grep -q '/usr/sbin/update-grub' ; then + echo "Undoing dpkg-divert of update-grub executable" + $ROOTCMD rm -f /usr/sbin/update-grub + $ROOTCMD dpkg-divert --rename --remove /usr/sbin/update-grub +fi + +# revert udev workaround of hooks/updatebase.GRMLBASE +if grep -q 'updatebase.GRMLBASE' ${target}/etc/udev/kernel-upgrade 2>/dev/null ; then + echo "Removing /etc/udev/kernel-upgrade created by updatebase.GRMLBASE" + $ROOTCMD rm -f /etc/udev/kernel-upgrade fi echo "Removing /var/lib/apt/lists/*-stuff, dpkg-status-old and pkgcache.bin" @@ -57,6 +74,9 @@ fi echo "Removing host ssh-keys" rm -f $target/etc/ssh/*key* +echo "Removing dbus machine-id" +rm -f $target/var/lib/dbus/machine-id + if [ -d $target/var/spool/squid/ ] ; then echo "Cleaning /var/spool/squid/0*" rm -rf $target/var/spool/squid/0* @@ -88,18 +108,21 @@ nuke(){ # set all files in the given directories to a length of zero zero(){ - for i in $(find "$@" -type f -size +0 -not -name \*.ini 2>/dev/null); do + for i in $(find "$@" -type f -size +0 -not -name \*.ini -not -path '*/fai/*' 2>/dev/null); do :> "$i" done } echo "Cleaning log and cache directories" nuke ${target}/var/log ${target}/var/cache -zero ${target}/var/local ${target}/var/log \ - ${target}/var/spool ${target}/var/lib/games \ - ${target}/var/cache/man ${target}/var/lib/nfs \ - ${target}/var/lib/xkb ${target}/var/mail/grml \ - ${target}/var/account/pacct +zero ${target}/var/account/pacct \ + ${target}/var/cache/man \ + ${target}/var/lib/games \ + ${target}/var/lib/nfs \ + ${target}/var/lib/xkb \ + ${target}/var/local \ + ${target}/var/log \ + ${target}/var/mail/grml # on /run we don't have to create it if [ -d ${target}/var/run ] ; then @@ -123,7 +146,7 @@ else $ROOTCMD ldconfig fi -if [ -x $target/usr/bin/update-menus ] ; then +if ! [ -x $target/usr/bin/update-menus ] ; then echo "Warning: update-menus not installed" else echo "Updating windowmanager menus" @@ -183,7 +206,7 @@ else EOF fi -if ! [ -x $target/usr/bin/updatedb ] ; then +if ! $ROOTCMD test -x /usr/bin/updatedb ; then echo "Warning: updatedb not installed" else echo "Updating locate-database"