#!/bin/bash GOOD=$'\e[32;01m' NORMAL=$'\e[0m' BAD=$'\e[31;01m' CURRENT_SYS=`uname -m` [ "${CURRENT_SYS}" = "i686" ] && TARGET_SYS="x86_64" [ "${CURRENT_SYS}" = "x86_64" ] && TARGET_SYS="i686" [ "${TARGET_SYS}" = "i686" ] && LINUX="linux32" [ "${TARGET_SYS}" = "x86_64" ] && LINUX="linux64" if [ ! `which ${LINUX} > /dev/null 2>&1` ] then echo " ${BAD}*${NORMAL} Error : cannot find the ${LINUX} executable" exit 1 fi echo -e " ${GOOD}*${NORMAL} Current system is : ${CURRENT_SYS}" echo -e " ${GOOD}*${NORMAL} Target system is : ${TARGET_SYS}" #mkdir -p /emul/${TARGET_SYS}/emul/${CURRENT_SYS} mount -o bind / /emul/${TARGET_SYS}/emul/${CURRENT_SYS} mount -o bind /home /emul/${TARGET_SYS}/home mount -o bind /root /emul/${TARGET_SYS}/root mount -o bind /usr/portage /emul/${TARGET_SYS}/usr/portage # Files that do not need to be duplicated are symlinked for ETCFILE in resolv.conf passwd shadow shadow- group hosts mtab; do echo " >>> /etc/${ETCFILE} copied to /emul/${TARGET_SYS}/etc/${ETCFILE}" cp -f /etc/${ETCFILE} /emul/${TARGET_SYS}/etc/${ETCFILE} done echo -e " ${GOOD}*${NORMAL} Chroot-ing to /emul/${TARGET_SYS}" ${LINUX} chroot /emul/${TARGET_SYS} /bin/bash -l # Unmounting stuff umount /emul/${TARGET_SYS}/emul/${CURRENT_SYS} umount /emul/${TARGET_SYS}/home umount /emul/${TARGET_SYS}/root umount /emul/${TARGET_SYS}/usr/portage