Das Rootserver-Experiment

Erlebnisse eines Rootserver (Beinahe-) Neulings

Verantwortlich für den Inhalt dieser Seite ist Mattias Schlenker, Inhaber Mattias Schlenker IT-Consulting Mattias Schlenker work Kochstraße 21, 04275 Leipzig. Germany work Fon +49 341 3032616. Die Steuernummer beim Finanzamt Leipzig erhalten Sie auf Anfrage. http://www.mattiasschlenker.de

Diese Seite läuft unter Wordpress 2.x.x. News und Kommentare können als RSS-2.0-Feed abonniert werden.

uClibc-Chroot-Umgebung

Wer das 4MB Mini-Linux bauen möchte oder einfach ein kompaktes statisches Binary beispielsweise der BusyBox oder des Dropbear-SSH-Servers benötigt, sollte das in einer uClibc-Chroot-Umgebung tun. Denn uClibc führt nicht nur zu kompakteren Binaries, sondern vermeidet jegliche dynamisch gelinkten Bibliotheken — beim Bauen einiger Tools gegen glibc, die Login-Funktionen nutzten, werden einige glibc-Komponenten immer dynamisch verwendet.

Die Verwendung ist einfach:

  • Zuerst werden einige spezielle Dateisysteme ins Chroot gemountet:
    mount -t proc none uclibc-chroot/proc
    mount -t devpts none uclibc-chroot/dev/pts
    mount -o bind /tmp uclibc-chroot/tmp
  • Dann kann per Chroot ins uClibc-System gewechselt werden
    LC_ALL=C chroot uclibc-chroot /bin/bash

Im Chroot können Sie beispielsweise im nun gemeinsam mit dem Hostsystem genutzten /tmp die gewünschten Programme statisch bauen, herausfischen und auch auf älteren Linux-Systemen oder Systemen mit C-Bibliotheksproblemen laufen lassen.

Ich nutzte derartige Binaries beispielsweise um auf ganz alten Systemen “rsync” nachzurüsten. Die uClibc-Umgebung ist gegen uClibc 0.9.29 gebaut und verwendet die Header von Linux 2.6.20. Beim Einsatz der erzeugten Binaries auf einem ganz alten Linux kann es unter Umständen erforderlich sein, eine Chroot-Umgebung mit Headern von 2.4 zu erstellen. Dabei helfen die Buildrootscripte von uClibc.org. Nach Fertigstellung ist allerdings zu beachten, dass unter Umständen “ar” und einige der von BusyBox bereitgestellten Tools nicht ausreichend funktionieren. In der zum Download angebotenen Umgebung ist dies korrigiert.

2 Antworten auf “uClibc-Chroot-Umgebung”

  1. Noob (September 30th, 2007 um 7:49 pm)

    Hallo bekomme beim entpacken folgende Fehlermeldung:
    uclibc-chroot/usr/include/c++/i686-linux-uclibc/bits/stdc++.h.gch/O0g.gch
    Segmentation fault

    Was mache ich falsch?

    Könntest du eventuell eine Umgebung für Kernel 2.4 bauen und i486?

    Oder vielleicht einen link zu den scripten, die finde ich irgendwie nicht….

    Danke.

  2. Mattias (September 30th, 2007 um 8:31 pm)

    Die Scripte gibt es unter

    http://buildroot.uclibc.org/download.html

    Ich baue gerne beim nächten Mal auch für i486/2.4. Wird aber erst gegen Ende Oktober der Fall sein.

Antwort hinterlassen