Implement dpkg-divert handling to address failing update-grub in openvz environments.
authorMichael Prokop <mika@grml.org>
Thu, 7 Jul 2011 12:30:27 +0000 (14:30 +0200)
committerMichael Prokop <mika@grml.org>
Thu, 7 Jul 2011 12:30:27 +0000 (14:30 +0200)
etc/grml/fai/config/hooks/instsoft.GRMLBASE
etc/grml/fai/config/scripts/GRMLBASE/98-clean-chroot

index 473d8bc..8600154 100755 (executable)
@@ -88,6 +88,14 @@ EOF
       echo "Warning: there was an error executing apt-get update, continuing anyway."
    fi
 
+   # 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 "Diverting update-grub executable"
+     $ROOTCMD dpkg-divert --rename --add /usr/sbin/update-grub
+     $ROOTCMD ln -s /bin/true /usr/sbin/update-grub
+   fi
+
   # newer aptitude versions won't remove essential packages using
   # 'aptitude -f -y install file-rc' anymore, therefore force it:
   $ROOTCMD aptitude -o Aptitude::ProblemResolver::Keep-All-Tier=60000 -f -y install file-rc
index a9bb0e0..e397aa2 100755 (executable)
@@ -24,6 +24,15 @@ else
   echo "Warning: localepurg 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
+
 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 \