Revert "GRMLBASE/98-clean-chroot: get rid of /etc/mtab"
[grml-live.git] / etc / grml / fai / config / scripts / GRMLBASE / 98-clean-chroot
index c2f3f77..1a736ee 100755 (executable)
@@ -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,6 +17,8 @@ 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
@@ -39,15 +41,14 @@ if grep -q 'updatebase.GRMLBASE' ${target}/etc/udev/kernel-upgrade 2>/dev/null ;
   $ROOTCMD rm -f /etc/udev/kernel-upgrade
 fi
 
-echo "Removing /var/lib/apt/lists/*-stuff, dpkg-status-old and pkgcache.bin"
-rm -f $target/var/lib/apt/lists/*Packages \
-      $target/var/lib/apt/lists/*Release \
-      $target/var/lib/apt/lists/*Sources \
-      $target/var/lib/apt/lists/*IndexDiff \
-      $target/var/lib/apt/lists/*.gpg \
-      $target/var/cache/apt-show-versions/* \
-      $target/var/cache/debconf/templates.dat-old \
-      $target/var/cache/apt/*.bin
+set +u
+if ifclass RELEASE ; then
+set -u
+  echo "Not updating package list as RELEASE class is set."
+else
+  echo "Updating package list"
+  $ROOTCMD apt-get update
+fi
 
 echo "Cleaning apt places"
 $ROOTCMD apt-get check 2>/dev/null
@@ -72,6 +73,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*
@@ -79,6 +83,7 @@ fi
 
 echo "Cleaning and removing some misc files and directories"
 find $target/etc -type f -name *.pre_fcopy -delete
+find $target/etc -type l -name *.pre_fcopy -delete
 rm -rf --one-file-system $target/etc/sysconfig/* \
        $target/etc/motd.dpkg-* $target/etc/auto.master.*dpkg* \
        $target/etc/samba/*.SID $target/etc/samba/*.tdb \
@@ -90,9 +95,10 @@ rm -rf --one-file-system $target/etc/sysconfig/* \
        $target/etc/*group- $target/var/spool/postfix/maildrop/* \
        $target/etc/*.old $target/etc/*.original \
        $target/etc/lvm/.cache $target/etc/lvm/cache/.cache \
-       $target/etc/lvm/backup/main $target/tmp/* \
+       $target/etc/lvm/backup/* $target/tmp/* \
        $target/var/tmp/* $target/var/backups/* \
-       $target/var/lib/mysql $target/var/log/lilo_log.* $target/core*
+       $target/var/lib/mysql $target/var/log/lilo_log.* $target/core* \
+       $target/etc/blkid.tab
 
 # remove only "temporary" or saved files in the given directories
 nuke(){
@@ -103,7 +109,7 @@ 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/*' -not -name install_packages.list 2>/dev/null); do
     :> "$i"
   done
 }
@@ -182,23 +188,21 @@ if ! [ -d $target/etc/resolvconf ] ; then
   echo "Warning: resolvconf not installed"
 else
   echo "Setting up resolvconf"
-  if [ -L $target/etc/resolvconf/run ] ; then # resolvconf with /run
-    # /etc/resolvconf/run symlinks to /run/resolvconf
-    RESOLV_CONF=/run/resolvconf/
-  else # no /run present
-    RESOLV_CONF=/etc/resolvconf/run/
-  fi
+  if [ ! -L $target/etc/resolvconf/run ] ; then # resolvconf without symlink?!
+    RESOLV_CONF=/etc/resolvconf/run
+    rm -rf   ${target}/${RESOLV_CONF}
+    mkdir -p ${target}/${RESOLV_CONF}
 
-  rm -rf   ${target}/${RESOLV_CONF}
-  mkdir -p ${target}/${RESOLV_CONF}
+    touch ${target}/${RESOLV_CONF}/enable-updates
+    mkdir ${target}/${RESOLV_CONF}/interface
 
-  touch ${target}/${RESOLV_CONF}/enable-updates
-  mkdir ${target}/${RESOLV_CONF}/interface
-
-  cat > ${target}/${RESOLV_CONF}/resolv.conf << EOF
+    cat > ${target}/${RESOLV_CONF}/resolv.conf << EOF
 # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
 #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
 EOF
+  fi
+  rm -f ${target}/etc/resolv.conf
+  $ROOTCMD ln -s /etc/resolvconf/run/resolv.conf /etc/resolv.conf
 fi
 
 if ! $ROOTCMD test -x /usr/bin/updatedb ; then