You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
- #!/bin/bash
-
- # make sure this was run as root
- if [ $UID -ne 0 ] ; then
- echo "Need to be root; trying sudo"
- exec sudo $0 "$@"
- fi
-
- # enter the chroot and run the command (if supplied) or a shell
- . config || exit 0
-
- run() {
- echo "+" "$1"
- chroot ${FS} env -i \
- HOME=/root \
- PATH=/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
- TERM=$TERM \
- IN_CHROOT=1 \
- bash -c "$1"
- RET=$?
- if [ $RET -ne 0 ] && [ "$1" != "exec bash" ] ; then
- printf "%s\n" "----------- WARNING: failed with exit code $RET"
- sleep 5
- fi
- }
-
- set -e
- mount -t proc none ${FS}/proc
- mount -t sysfs none ${FS}/sys
- mount -t devpts none ${FS}/dev/pts
-
- run "echo 'nameserver 8.8.8.8' > /etc/resolv.conf"
- run "dbus-uuidgen > /var/lib/dbus/machine-id"
- run "dpkg-divert --local --rename --add /sbin/initctl"
- run "ln -s /bin/true /sbin/initctl"
- run "dpkg-divert --local --rename --add /usr/sbin/update-grub"
- run "ln -s /bin/true /usr/sbin/update-grub"
-
- set +e
- if [ -z "$1" ] ; then
- run "exec bash"
- else
- run "$1"
- fi
- run "apt-get clean"
- run "rm /sbin/initctl"
- run "dpkg-divert --rename --remove /sbin/initctl"
- run "rm /usr/sbin/update-grub"
- run "dpkg-divert --rename --remove /usr/sbin/update-grub"
- run "rm /var/lib/dbus/machine-id"
- run "> /etc/resolv.conf"
- run "rm -rf /tmp/* /tmp/.??* /root/.bash_history"
-
- umount ${FS}/dev/pts
- umount ${FS}/sys/kernel/security || true
- umount ${FS}/sys
- umount ${FS}/proc
-
- echo "cleaned up"
|