From 0e8b0a71c2aa38201c12eb6c7ad7d38000361cc6 Mon Sep 17 00:00:00 2001 From: Chris Sosa Date: Thu, 29 Apr 2010 14:05:30 -0700 Subject: [PATCH] Adds a script to unmount any mount points in your boards image dir and free loopback devices Review URL: http://codereview.chromium.org/1759015 --- clean_loopback_devices | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 clean_loopback_devices diff --git a/clean_loopback_devices b/clean_loopback_devices new file mode 100755 index 0000000000..4fbb5549aa --- /dev/null +++ b/clean_loopback_devices @@ -0,0 +1,34 @@ +# Copyright (c) 2010 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +# +# Force cleans loopback devices from within your chroot environment. This +# script is to help mitigate losing loopback devices on build_images +# failures. This script only affects mountpoints and loopback devices +# that were created within this chroot. + +# Load common constants. This should be the first executable line. +# The path to common.sh should be relative to your script's location. +. "$(dirname "$0")/common.sh" + +# Script must be run inside the chroot. +assert_inside_chroot + +DEFINE_string output_root "$DEFAULT_BUILD_ROOT/images" \ + "Directory in which to place image result directories (named by version)" +DEFINE_string board "$DEFAULT_BOARD" \ + "The board to build an image for." + +OUTPUT_DIR="${FLAGS_output_root}/${FLAGS_board}" + +echo "This will unmount any directory under $OUTPUT_DIR:" +read -p "Are you sure (y/N)? " SURE +SURE="${SURE:0:1}" # Get just the first character +if [ "${SURE}" != "y" ] +then + echo "Ok, better safe than sorry." + exit 1 +fi + +sudo umount "$OUTPUT_DIR"/*/* 2> /dev/null +sudo losetup -d /dev/loop* 2> /dev/null