X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=grml-debootstrap;h=a97f5ece929625a1623f3f8799aabf1ecc5ee25a;hb=3aa73011a14ca04e2ba24ff18783c15ffe6f21f1;hp=ffcb6aa2eefe8cbe34aec3c9c85cb4013a4a60f0;hpb=8a4a3c89471607c4603550ecba326b2799cf137e;p=grml-debootstrap.git diff --git a/grml-debootstrap b/grml-debootstrap index ffcb6aa..a97f5ec 100755 --- a/grml-debootstrap +++ b/grml-debootstrap @@ -821,6 +821,14 @@ if [ "$CURRENT_ARCH" != "x86_64" ] ; then fi # }}} +# Support for generic release codenames is unavailable. {{{ +if [ "$RELEASE" = "stable" ] || [ "$RELEASE" = "testing" ] ; then + eerror "Generic release codenames (stable, testing) are unsupported. \ +Please use specific codenames such as lenny, squeeze, wheezy or jessie." ; eend 1 + bailout 1 +fi +# }}} + checkconfiguration # finally make sure at least $TARGET is set [the partition for the new system] {{{ @@ -1338,6 +1346,26 @@ execute_scripts() { } # }}} +try_umount() { + local tries=$1 + local mountpoint="$2" + + for (( try=1; try<=tries; try++ )); do + if [[ ${try} -eq ${tries} ]]; then + # Last time, show errors this time + umount "${mountpoint}" && return 0 + else + # Not last time, hide errors until fatal + if umount "${mountpoint}" 2>/dev/null ; then + return 0 + else + sleep 1 + fi + fi + done + return 1 # Tried enough +} + # execute chroot-script {{{ chrootscript() { if ! [ -r "$MNTPOINT/bin/chroot-script" ] ; then @@ -1355,7 +1383,7 @@ chrootscript() { else chroot "$MNTPOINT" /bin/chroot-script ; RC=$? fi - umount "$MNTPOINT"/dev + try_umount 3 "$MNTPOINT"/dev eend $RC fi