Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorial:server:chroot_debian

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 glibc1), 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.

1) z.B. für einen L4D-Server
tutorial/server/chroot_debian.txt · Zuletzt geändert: 2009/10/24 14:00 (Externe Bearbeitung)