Archiv/schroot

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Paketquellen freischalten

  3. Ein Terminal öffnen

  4. Root-Rechte

  5. Textdateien bearbeiten

Inhaltsverzeichnis
  1. Einrichtung
  2. Benutzung
  3. Entfernen
  4. Erweiterte Konfiguration
    1. Dateisysteme einbinden
    2. Dateien übernehmen
    3. Mehrere chroot-Umgebungen unterschiedlic...
      1. Profile ab Ubuntu 14.04
  5. Hinweise
  6. Anwendungsbeispiele
    1. Programme in einer anderen Version insta...
    2. 32-Bit-Programme in einer 64-Bit-Install...
    3. Entwickeln und Testen von Software
  7. Manpages zu schroot
  8. Links

Mit schroot ("securely enter a chroot environment") kann man Befehle oder eine Login-Shell in einer chroot-Umgebung ausführen.

Das Programm schroot wurde als Ersatz für dchroot geschrieben und bietet eine größere Funktionalität, die Optionen sind aber ähnlich. Der Befehl dchroot ist noch als Wrapper um schroot vorhanden.

Merkmale:

Dieser Artikel beschreibt nur die grundlegende Verwendung von schroot. Für weitere Informationen kann man die Manpages zu Rate ziehen.

Einrichtung

Folgende Pakete müssen installiert werden [1]:

Paketliste zum Kopieren:

sudo apt-get install debootstrap schroot 

Oder mit apturl installieren, Link: apt://debootstrap,schroot

Zuerst erstellt man eine chroot-Umgebung, indem man folgenden Befehl in einem Terminal [3] ausführt:

sudo debootstrap precise /chroot-precise http://de.archive.ubuntu.com/ubuntu/ 

Der Befehl kann eine Weile dauern. Anschließend befindet sich in dem Verzeichnis /chroot-precise eine Minimalinstallation von Ubuntu 12.04. Statt precise kann man den Codenamen einer beliebigen Ubuntu- oder Debian-Version einsetzen.

Da bei dem Vorgang ein komplettes Basis-System in dem chroot-Verzeichnis installiert wird, sollte man darauf achten, dass genug Speicherplatz vorhanden ist. Eine Minimalinstallation benötigt ungefähr 500 MB. Will man später graphische Programme installieren, sollte man mindestens 1,5 GB einplanen.

Dann muss man noch schroot für diese chroot-Umgebung konfigurieren. Dazu öffnet man die Datei /etc/schroot/schroot.conf in einem Texteditor [5] mit Root-Rechten [4] und fügt einen Abschnitt mit folgendem Inhalt ein:

1
2
3
4
5
[precise-test]
description=Beschreibung der chroot-Umgebung
type=directory
directory=/chroot-precise
users=BENUTZER

In der ersten Zeile steht in eckigen Klammern der Name der chroot-Umgebung. Hinter directory= steht das Verzeichnis, in dem man die chroot-Umgebung mit debootstrap installiert hat. BENUTZER ersetzt man mit einer durch Kommas getrennten Liste der Benutzer, die auf die chroot-Umgebung zugreifen dürfen, in der Regel den eigenen Benutzernamen. Eine genauere Beschreibung der verwendeten Einstellungen kann man in der Manpage für schroot.conf nachlesen.

Alternativ kann man die Konfiguration auch unter /etc/schroot/chroot.d/ ablegen. Dazu erstellt man dort eine neue Datei mit diesem Inhalt. Der Dateiname kann zwar frei gewählt werden, die Datei aber keine Dateierweiterung haben, da sie sonst eventuell ignoriert wird (Das Verhalten hängt von der Version ab).

Grundsätzlich ist die chroot-Umgebung jetzt einsatzbereit. Hinweise für bestimmte Einsatzgebiete findet man im Abschnitt Anwendungsbeispiele.

Benutzung

In die chroot-Umgebung wechselt man mit dem folgenden Befehl:

schroot -c precise-test 

Der aktuelle Verzeichnisnamen ist derselbe, falls er in der chroot-Umgebung vorhanden ist. Verlassen kann man die chroot-Umgebung mit dem Befehl exit oder über die Tastenkombination Strg + D .

Einen einzelnen Befehl führt man so aus:

schroot -c precise-test ls 

Enthält der Befehl Optionen, muss -- vorangestellt werden, damit schroot die Optionen nicht selbst interpretiert:

schroot -c precise-test -- ls -l 

Entfernen

Zuerst sollte man sicherstellen, dass man alle chroot-Umgebungen verlassen hat und alle Sitzungen auch korrekt beendet wurden. Siehe dazu auch unter Hinweise. Außerdem kann man mit dem Befehl mount überprüfen, ob noch Verzeichnisse von schroot eingebunden sind (schroot bindet Verzeichnisse unter /var/lib/schroot/mount/ ein).

Achtung!

Es ist sehr wichtig, dies zu überprüfen, da sonst Datenverlust droht.

Das Verzeichnis kann man nun löschen mit dem Befehl

sudo rm -r /chroot-precise/ 

Erweiterte Konfiguration

Dateisysteme einbinden

Über die Datei /etc/schroot/default/fstab wird festgelegt, welche Einhängepunkte in der chroot-Umgebung zur Verfügung stehen. Sie kann nach Bedarf geändert werden und folgt der Syntax der /etc/fstab.

Standardmäßig wird auch das Homeverzeichnis eingebunden, sodass die Anwendung in der chroot-Umgebung vollen Zugriff auf die persönlichen Daten hat. Sollte man dies nicht wollen, kann man die entsprechende Zeile aus der Datei entfernen. Sollen gar keine Verzeichnisse eingehängt werden, ersetzt man besser in der Konfiguration der chroot-Umgebung die Zeile type=directory durch type=plain.

Dateien übernehmen

Die Datei /etc/schroot/default/copyfiles enthält eine Liste von Dateien, die beim Start in die chroot-Umgebung kopiert werden. Damit lassen sich Konfigurationsdateien in der chroot-Umgebung mit denen im Hauptsystem synchron halten.

Mehrere chroot-Umgebungen unterschiedlich konfigurieren

Die in diesem Kapitel beschriebenen Einstellungen sind zunächst für alle chroot-Umgebungen wirksam. Mit Profilen können verschiedene chroot-Umgebungen für unterschiedliche Einsatzzwecke auch unterschiedlich konfiguriert werden.

Profile sind Verzeichnisse in /etc/schroot. Einige unterschiedliche Profile sind schon vorhanden:

Ein eigenes Profil erstellt man, indem man eines der Verzeichnisse kopiert und den Inhalt den eigenen Wünschen anpasst.

Profile ab Ubuntu 14.04

Man fügt in die Konfiguration der entsprechenden chroot-Umgebung folgende Zeile ein:

1
profile=Profil

Der Vorgabewert ist default.

Hinweise

Anwendungsbeispiele

Programme in einer anderen Version installieren

Wenn man ein Programm verwenden will, das in der aktuellen Ubuntu-Version noch nicht (oder nicht mehr) vorhanden ist oder man eine ältere Version parallel verwenden will, kann eine chroot-Umgebung hilfreich sein. Auch für Software aus unsicheren Quellen (z.B. PPA, nicht paketierte Programme) kann man eine chroot-Umgebung verwenden, um zu vermeiden die Stabilität seines System zu gefährden. Ebenso kann man Debian in einer chroot-Umgebung installieren.

Man sollte aber bedenken, dass die Konfigurationsdateien verschiedener Programmversionen möglicherweise nicht kompatibel sind. Daher sollte man in diesem Fall darauf verzichten, das Home-Verzeichnis einzubinden (siehe auch Erweiterte Konfiguration).

32-Bit-Programme in einer 64-Bit-Installation verwenden

Als Benutzer der AMD64-Version von Ubuntu sieht man sich mitunter mit dem Problem konfrontiert, dass man bestimmte Programme benötigt, die jedoch nur in einer 32-Bit-Version vorliegen. Da die AMD64-Technologie in der Hinsicht abwärtskompatibel ist, dass auch unter einem 64-Bit-System gleichzeitig 32-Bit-Programme ausgeführt werden können, steht dem Einsatz derartiger Programme prinzipiell nichts im Weg (siehe auch 64bit-Architektur (Abschnitt „32-Bit-Programme-erzwingen“)). Häufig jedoch benötigen "größere" Programme (wie beispielsweise der Firefox-Browser) noch zusätzliche Systembibliotheksdateien, um tatsächlich funktionieren zu können, von diesen Bibliotheken muss dann ebenfalls eine 32-Bit-Version vorliegen. Wenngleich es zwar prinzipiell auch möglich ist, gleichzeitig 32-Bit-Versionen und 64-Bit-Versionen von Bibliotheksdateien auf dem System zu installieren, ist dies in der Praxis sehr umständlich und daher nur in individuellen Einzelfällen interessant. Dieser Abschnitt beschreibt die Besonderheiten einer 32-Bit-chroot-Umgebung auf einem 64-Bit-System.

Zum Erstellen der chroot-Umgebung verwendet man folgenden Befehl:

sudo debootstrap --arch i386 precise /chroot-precise32 http://de.archive.ubuntu.com/ubuntu/ 

Man kann folgende schroot-Konfiguration benutzen:

1
2
3
4
5
6
7
8
[trusty32]
description=Ubuntu 14.04 Trusty Tahr (32 Bit)
directory=/chroot-trusty32
users=BENUTZER
type=directory
profile=desktop
personality=linux32
preserve-environment=true

Weitere Hinweise:

Entwickeln und Testen von Software

Eine chroot-Umgebung kann nützlich sein beim

Manpages zu schroot

Beschreibung Ubuntu 14.04
Der schroot-Befehl schroot 🇬🇧
Dateiformat für chroot-Beschreibungen schroot.conf 🇬🇧
Dateiformat für chroot-Profile schroot-script-config 🇬🇧
Schroot setup-Skripte schroot-setup 🇬🇧
Häufige Fragen schroot-faq 🇬🇧