#!/bin/bash CHROOTDIR="/chroot" NO_COLOR="\033[0m" BLUEGREEN="\033[0,36m" RED="\033[1,31m" GREEN="\033[0,32m" YELLOW="\033[0,33m" BLUE="\033[0,34m" function mountverify { [[ $# != 1 ]] && return 1 local mountpoint=${CHROOTDIR}$1 echo -en " ${BLUE}${mountpoint} ... " if grep -q ${mountpoint} /etc/mtab; then echo -e "${YELLOW}already mounted${NO_COLOR}" else [[ $1 == "/proc" ]] \ && local mountcommand="mount -t proc none ${mountpoint}" \ || local mountcommand="mount -o bind $1 ${mountpoint}" ${mountcommand} >/dev/null \ && echo -e "${GREEN}done${NO_COLOR}" \ || echo -e "${RED}failed${NO_COLOR}" fi } echo -e "${BLUEGREEN}Mouting directories into chroot ... ${NO_COLOR}" mountverify /proc mountverify /dev mountverify /sys mountverify /var/portage mountverify /var/distfiles mountverify /usr/src/linux mountverify /lib/modules mountverify /tmp echo -en "${BLUEGREEN}Coping /etc/resolv.conf into chroot ... ${NO_COLOR}" cp /etc/resolv.conf ${CHROOTDIR}/etc/resolv.conf \ && echo -e "${GREEN}done${NO_COLOR}" \ || echo -e "${RED}failed${NO_COLOR}" echo -e "${BLUEGREEN}Chrooting ... ${NO_COLOR}\n" chroot ${CHROOTDIR} /bin/bash