====== Chroot mit Debian ====== Unter gewissen Umständen benötigt man neuere Versionen, die es nur einem anderen Debian-Zweig gibt. Braucht man z.B. eine aktuelle glibc((z.B. für einen L4D-Server)), so müsste man von ''Debian-Lenny'' das Paket installieren. Da aber viele Nutzer ''Debian-Sarge'' verwenden und aus bestimmten Gründen nicht wechseln wollen bzw. können, kommt ein Update nicht in Frage.\\ \\ Mit einem einfachen Trick, kann man ein ganzes Debian-System unterhalb des Wurzelverzeichnisses einrichten. Zu diesem kann man mittels ''chroot /neues_debian /bin/hash'' wechseln und ist dann dort im Verzeichnis eingesperrt. ===== Minimales Debian in einem Verzeichnis einrichten ===== Zuerst muss das Programm ''debootstrap'' installiert werden: apt-get update apt-get install debootstrap sudo Jetzt erstellt man ein Vereichnis in der das neue Debian heruntergeladen werden soll: mkdir /chroot_lenny debootstrap lenny /chroot_lenny http://ftp.debian.org/debian/ ===== Neue Umgebung einrichten ===== Damit die Umgebung richtig funktioniert, müssen die beiden Verzeichnisse ''/chroot_lenny/proc'' und ''/chroot_lenny/dev'' gemountet werden: echo "proc /chroot_lenny/proc proc none 0 0" >> /etc/fstab mount /chroot_lenny/proc mount /dev/ /chroot_lenny/dev -o bind Konfiguration und ggf. ein Userverzeichnis kopieren: cd /etc cp hosts passwd group shadow /chroot_lenny/etc/ cp -R /home/userverzeichnis /chroot_lenny/home/ In die neue Umgebung mittels ''chroot'' wechseln: chroot /chroot_lenny /bin/bash Jetzt die Struktur in /dev erstellen lassen: cd /dev /sbin/MAKEDEV generic Fehlende Programme in der neuen Umgebung installieren: apt-get update apt-get install locales bzip2 Locales einrichten: dpkg-reconfigure locales Am besten ''de_DE.UTF-8 UTF-8'' auswählen. ===== Sudo einrichten ===== Damit ein normaler User ''chroot'' ausführen kann, muss dieser mittels sudo dazu die Berechtigung erteilt bekommen. Die Datei ''/etc/sudoers'' muss die folgende Zeile hinzugefügt werden: username ALL=NOPASSWD: /usr/sbin/chroot So darf der User mittels ''sudo'' den Befehl ''chroot'' ausführen. ===== Minimales System für steam einrichten ===== Falls das ''hldsupdatetool'' in der neuen Umgebung ausgeführt werden soll, muss zuerst der Symlink uncompress angelegt werden. ln -s $(which gunzip) $(dirname $(which gunzip))/uncompress Handelt es sich um ein 64-Bit-System müssen noch die 32-Bit-Bibliotheken eingerichtet werden: apt-get install ia32-libs ===== Im neuen System einloggen und den Server starten ===== Nachdem man alles eingerichtet hat, kann man später immer wieder mit dem Konfigurierten User in die neue Umgebung wechseln. Mittels screen bleibt die Umgebung aktiv, da ansonsten ohne screen nach dem Schließen von Putty die Umgebung wieder beendet würde. screen -S l4d-server sudo chroot /chroot_lenny /bin/bash su USERNAME Vergisst man mittels des Befehls ''su'' sich in der neuen Umgebung als der richtige User anzumelden, ist man mit root eingeloggt. Auch wenn es die Chroot-Umgebung ist, ist es sicherer den Server nicht mit ''root'' laufen zu lassen. ===== Server starten ===== In diesem Beispiel starten wir einen Server für Left 4 Dead. ./srcds_run -game left4dead Nachdem der Server gestartet wurde, kann der Screen mittels ''STRG+A D'' in den Hintergrund verschoben werden. ===== Screen wiederholen ===== Mittels ''screen -r SCREENNAME'' kann der gewünschte Screen von der "Chroot-Umgebung" zurückgeholt werden.