blob: 199f4c7f4084ab7df4b567253eeea73fbf753cc3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/bin/bash -eu
# uage: geronimo <directory>
# enter a chroot with various things bind-mounted so you can do
# useful work.
mnt_devices="proc dev dev/pts sys"
reverse_words() {
local -a rev=
for i in "$@"; do
rev=("$i" ${rev[@]})
done
echo ${rev[@]}
}
start() {
local mnt=$1
for i in $mnt_devices ; do
sudo mount -o bind /$i "$mnt"/$i
done
sudo mv "$mnt"/etc/resolv.conf "$mnt"/etc/resolv.conf.orig
sudo cp /etc/resolv.conf "$mnt"/etc/resolv.conf
sudo cp /etc/apt/sources.list "$mnt"/etc/apt
sudo chroot "$mnt" /bin/bash
}
stop() {
local mnt=$1
for i in $(reverse_words $mnt_devices); do
sudo umount "$mnt"/$i
done
sudo mv "$mnt"/etc/resolv.conf.orig "$mnt"/etc/resolv.conf
}
if [ $# -lt 1 ]; then
echo "usage: <directory>"
exit 1
fi
[ -d $1 ] || { echo "error: '$1' is not a directory"; exit 1; }
start $1
stop $1
|