#!/bin/bash # LibreChRoot # Enters a chroot # Copyright 2010 Nicolás Reynolds # ---------- GNU General Public License 3 ---------- # This file is part of Parabola. # Parabola is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # Parabola is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with Parabola. If not, see . source /etc/libretools.conf [[ "$UID" != "0" ]] && { error "This script must be run as root." exit 1 } custom_config=${XDG_CONFIG_HOME}/libretools/libretools.conf [[ -e ${custom_config} ]] && source ${custom_config} # Enter the chroot copy by default root=${1:-$CHCOPY} CACHEDIR=${CACHEDIR:-/var/cache/pacman/pkg} [[ ! -d ${CHROOTDIR}/${root} ]] && { error "${CHROOTDIR}/$root is not a dir." exit 1 } mount -t proc proc ${CHROOTDIR}/${root}/proc/ mount -t sysfs sys ${CHROOTDIR}/${root}/sys/ mount -o bind /dev ${CHROOTDIR}/${root}/dev/ # Share pacman cache mount -o bind ${CACHEDIR} ${CHROOTDIR}/${root}/var/cache/pacman/pkg cp -L /etc/resolv.conf ${CHROOTDIR}/${root}/etc/resolv.conf chroot ${CHROOTDIR}/${root} /bin/bash umount ${CHROOTDIR}/${root}/proc/ umount ${CHROOTDIR}/${root}/sys/ umount ${CHROOTDIR}/${root}/dev/ umount ${CHROOTDIR}/${root}/var/cache/pacman/pkg exit 0