Mercurial > hg > aboriginal
changeset 1278:a542c58a4c8e
Add zapchroot script that unmounts everything under a directory.
author | Rob Landley <rob@landley.net> |
---|---|
date | Mon, 08 Nov 2010 21:06:29 -0600 |
parents | 6357653d921e |
children | 8c0b1c9b6525 |
files | sources/root-filesystem/bin/zapchroot |
diffstat | 1 files changed, 40 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/root-filesystem/bin/zapchroot Mon Nov 08 21:06:29 2010 -0600 @@ -0,0 +1,40 @@ +#!/bin/bash + +# Copyright 2010 Rob Landley <rob@landley.net> licensed under GPLv2 + +if [ "$1" == "-d" ] +then + DELETE=1 + shift +fi + +# Clean up a chroot directory + +ZAP=$(readlink -f "$1" 2>/dev/null) + +if [ ! -d "$ZAP" ] +then + echo "usage: zapchroot [-d] dirname" + exit 1 +fi + +i="$(readlink -f "$(pwd)")" +if [ "$ZAP" == "${i:0:${#ZAP}}" ] +then + echo "Sanity check failed: cwd is under zapdir" >&2 + exit 1 +fi + +# Iterate through the second entry of /proc/mounts in reverse order + +for i in $(awk '{print $2}' /proc/mounts | tac) +do + # De-escape octal versions of space, tab, backslash, newline... + i=$(echo -e "$i") + + # Skip entries that aren't under our chroot + [ "$ZAP" != "${i:0:${#ZAP}}" ] && continue + + echo "Umounting: $i" + umount "$i" +done