ns-mount - scripts - various script and utils
HTML git clone git://z3bra.org/scripts
DIR Log
DIR Files
DIR Refs
---
ns-mount (816B)
---
1 #!/bin/sh
2
3 ro=""
4 rw=""
5
6 usage() {
7 echo "usage: $(basename $0) -n name [-rw dir] mountpoint" >&2
8 }
9
10 while getopts "hn:r:w:" OPT; do
11 case $OPT in
12 n) nsname="$OPTARG";;
13 r) ro="$OPTARG";;
14 w) rw="$OPTARG";;
15 h) usage; exit 0;;
16 *) usage; exit 1;;
17 esac
18 done
19 shift $((OPTIND-1))
20
21 if [ -z "$nsname" ] || [ $# -lt 1 ]; then
22 usage
23 exit 1
24 fi
25
26 mp="$1"
27 ns=$(ns -i $nsname|awk '/root/{print $2}')
28 pid=$(ns -i $nsname|awk '/init/{print $2}')
29
30 opt="lowerdir=${ns}/${mp}"
31 if [ -n "$ro" ]; then
32 opt="${opt}:$(readlink -f $ro)"
33 elif [ -n "$rw" ]; then
34 wd="$HOME/.cache/overlayfs/work/$nsname"
35 mkdir -p "$wd" "${ns}/${mp}"
36 opt="${opt},workdir=$wd"
37 opt="${opt},upperdir=$(readlink -f $rw)"
38 fi
39
40 mkdir -p "${ns}/${mp}"
41 nsenter -t $pid -m -U --preserve-credentials -- \
42 mount --onlyonce -t overlay overlay -o "$opt" "$ns/$mp"