Kleines Script für Chroot
Hier ein Kleines Script um sich die einzelnen Schritte für Chroot zu ersparen.
Das Script erwartet den Scriptnamen und als Argument das Device in das 'gechrooted' werden soll, ohne ein führendes '/dev/'.
Zum Beispiel:
um ein Chroot in die Partition /dev/sda8 durchzuführen. Nachdem die Arbeiten in der Chroot-Umgebung erledigt sind, verlässt man sie wieder mit dem Befehl "exit". Das Script hängt danach die Mountpunkte wieder aus.
#!/bin/bash
CHROOTDIR=/mnt/chroot
# Make sure only root can run our script
if [ $EUID -ne 0 ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
# Make sure that $1 is not empty
if [ ! -n "$1" ]; then
echo -e "\033[1;33mYou must give an argument which device you want to chroot in (without leading '/dev/') "
echo -e "\033[1;33mExample '$0 sda8' will chroot the device /dev/sda8 into /mnt/chroot."
exit 1
fi
# Make sure that directory '/mnt/chroot' exists
if [ ! -d $CHROOTDIR ]; then
echo Error: No directory $CHROOTDIR existing. Creating it... !! >&2
mkdir -p $CHROOTDIR
fi
if [ -d $CHROOTDIR ]; then
echo Created directory $CHROOTDIR successfully... >&2
echo Now chrooting into /dev/$1 ... >&2
fi
if [ -d $CHROOTDIR ]; then
mount /dev/$1 $CHROOTDIR
mount -o bind /sys $CHROOTDIR/sys
mount -t proc proc $CHROOTDIR/proc
mount -o bind /dev $CHROOTDIR/dev
cp -L /etc/resolv.conf $CHROOTDIR/etc/resolv.conf
chroot $CHROOTDIR /bin/bash
fi
echo unmounting the devices from the chroot directory ... >&2
if [ -d $CHROOTDIR ]; then
umount $CHROOTDIR/proc
umount $CHROOTDIR/dev
umount $CHROOTDIR
fi
echo deleting chroot directory $CHROOTDIR ... >&2
rmdir $CHROOTDIR
if [ ! -d $CHROOTDIR ]; then
echo $CHROOTDIR deleted successfully. Good bye !! >&2
fi