better mounting of virtual filesystems in chroot
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
parent
a9109c94a4
commit
a035b52a0d
2 changed files with 23 additions and 8 deletions
|
@ -23,13 +23,25 @@ chroot="/$__object_id"
|
||||||
cat << DONE
|
cat << DONE
|
||||||
# Prepare chroot
|
# Prepare chroot
|
||||||
[ -d "${chroot}/proc" ] || mkdir "${chroot}/proc"
|
[ -d "${chroot}/proc" ] || mkdir "${chroot}/proc"
|
||||||
mount -t proc none "${chroot}/proc"
|
mountpoint -q "${chroot}/proc" \
|
||||||
|
|| mount -t proc -o nosuid,noexec,nodev proc "${chroot}/proc"
|
||||||
|
|
||||||
[ -d "${chroot}/sys" ] || mkdir "${chroot}/sys"
|
[ -d "${chroot}/sys" ] || mkdir "${chroot}/sys"
|
||||||
mount -t sysfs none "${chroot}/sys"
|
mountpoint -q "${chroot}/sys" \
|
||||||
|
|| mount -t sysfs -o nosuid,noexec,nodev sys "${chroot}/sys"
|
||||||
|
|
||||||
[ -d "${chroot}/dev" ] || mkdir "${chroot}/dev"
|
[ -d "${chroot}/dev" ] || mkdir "${chroot}/dev"
|
||||||
mount --rbind /dev "${chroot}/dev"
|
mountpoint -q "${chroot}/dev" \
|
||||||
|
|| mount -t devtmpfs -o mode=0755,nosuid udev "${chroot}/dev"
|
||||||
|
|
||||||
|
[ -d "${chroot}/dev/pts" ] || mkdir "${chroot}/dev/pts"
|
||||||
|
mountpoint -q "${chroot}/dev/pts" \
|
||||||
|
|| mount -t devpts -o mode=0620,gid=5,nosuid,noexec devpts "${chroot}/dev/pts"
|
||||||
|
|
||||||
[ -d "${chroot}/tmp" ] || mkdir -m 1777 "${chroot}/tmp"
|
[ -d "${chroot}/tmp" ] || mkdir -m 1777 "${chroot}/tmp"
|
||||||
mount -t tmpfs none "${chroot}/tmp"
|
mountpoint -q "${chroot}/tmp" \
|
||||||
|
|| mount -t tmpfs -o mode=1777,strictatime,nodev,nosuid tmpfs "${chroot}/tmp"
|
||||||
|
|
||||||
if [ ! -f "${chroot}/etc/resolv.conf" ]; then
|
if [ ! -f "${chroot}/etc/resolv.conf" ]; then
|
||||||
cp /etc/resolv.conf "${chroot}/etc/"
|
cp /etc/resolv.conf "${chroot}/etc/"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -22,12 +22,15 @@ chroot="/$__object_id"
|
||||||
|
|
||||||
cat << DONE
|
cat << DONE
|
||||||
umount -l "${chroot}/tmp"
|
umount -l "${chroot}/tmp"
|
||||||
|
umount -l "${chroot}/dev/pts"
|
||||||
umount -l "${chroot}/dev"
|
umount -l "${chroot}/dev"
|
||||||
umount -l "${chroot}/sys"
|
umount -l "${chroot}/sys"
|
||||||
umount -l "${chroot}/proc"
|
umount -l "${chroot}/proc"
|
||||||
rm -f "${chroot}/etc/resolv.conf"
|
rm -f "${chroot}/etc/resolv.conf"
|
||||||
# ensure /etc/resolvconf/resolv.conf.d/tail is not linked to \
|
if [ -d "${chroot}/etc/resolvconf/resolv.conf.d" ]; then
|
||||||
# e.g. /etc/resolvconf/resolv.conf.d/original
|
# ensure /etc/resolvconf/resolv.conf.d/tail is not linked to \
|
||||||
rm -f "${chroot}/etc/resolvconf/resolv.conf.d/tail"
|
# e.g. /etc/resolvconf/resolv.conf.d/original
|
||||||
touch "${chroot}/etc/resolvconf/resolv.conf.d/tail"
|
rm -f "${chroot}/etc/resolvconf/resolv.conf.d/tail"
|
||||||
|
touch "${chroot}/etc/resolvconf/resolv.conf.d/tail"
|
||||||
|
fi
|
||||||
DONE
|
DONE
|
||||||
|
|
Loading…
Reference in a new issue