KDE im chroot

=Allgemeines= In dieser Anleitung ist eine relativ sichere Methode beschrieben, wie auf dem WeTab ein KDE gestartet werden kann. Der KDE läuft in einer chroot Umgebung, so dass das "normale" WeTab System nicht beeinträchtigt wird. Es funktioniert definitiv nicht alles im KDE, alleine beim Starten kommen zwei Meldungen des Crashmanagers. Dieses Howto soll jedoch einen Anhaltspunkt dafür bieten was möglich ist. Gegebenenfalls könnt ihr es ja für eigene Projekte verwenden und auch verbessern ;)

'''ACHTUNG: Der KDE wird innerhalb des chroot als root ausgeführt. Dies stellt natürlich ein Sicherheitsrisiko dar, da über das proc und dev Dateisystem weiterhin auf die WeTab Umgebung zugegrifen werden kann.'''

Was ist chroot
Über chroot hat Wikipedia einen Artikel. Hier ein kleiner Auszug: "chroot steht für „change root“ und ist eine Funktion auf Unix-Systemen, um das Rootverzeichnis zu ändern. Sie wirkt sich nur auf den aktuellen Prozess und seine Kindprozesse aus."

=Vorbereitung=

Benötigt wird ein lauffähiges (K)Ubuntu 32 Bit System. Dieses starten und als normaler Benutzer eine Konsole öffnen.

debootstrap installieren
sudo aptitude install debootstrap

Image Dateisystem erstellen, formatieren und mounten
Zunächst eine 5GB große Image Datei erstellen (Die Größe kann bei Bedarf auch geändert werden) dd if=/dev/zero of=~/ubuntu.img bs=1M count=5000 Die Image Datei mit einem Loop-Device verknüpfen sudo losetup /dev/loop0 ~/ubuntu.img ext3 Dateisystem im Image erstellen sudo mkfs.ext3 /dev/loop0 Temporären Ordner zum Mounten erstellen mkdir /tmp/chroot das root-Filesystem mounten sudo mount /dev/loop0 /tmp/chroot

Ubuntu Grundsystem per debootstrap installieren
sudo debootstrap lucid /tmp/chroot/ Nun habt ihr etwas Zeit zum Kaffee trinken ;)

Abschließende Konfiguration
Locales kopieren sudo cp /var/lib/locales/supported.d/local /tmp/chroot/var/lib/locales/supported.d chroot betreten und Locales erstellen sudo chroot /tmp/chroot/ dpkg-reconfigure locales chroot verlassen exit Dateisysteme auswerfen und loop-Verknüpfung löschen sudo umount /tmp/chroot sudo losetup -d /dev/loop0

=Kopieren und starten des Ubuntu Images= Die Datei ~/ubuntu.img irgendwie aufs WeTab verfrachten (z.B. USB Stick, scp usw.) Aufgrund der Größe werdet ihr sie nicht ohne weiteres mit einem FAT formatiertem USB Stick kopieren können. Ich habe es einfach per scp kopiert: scp ~/ubuntu.img BenutzerAufDemWeTab@IpVomWeTab:/home/BenutzerAufDemWeTab Ich gehe ab hier davon aus das die Datei in eurem Home Verzeichnis liegt. Pfade also evtl. anpassen! Alle weiteren Eingaben erfolgen in der Konsole des WeTab (SSH oder wie hier beschrieben: Konsole unter STRG ALT F6)

Dateisysteme einbinden
Zunächst einen Ordner zum Mounten des Images erstellen: mkdir ~/ubuntu Anschließend das root-Dateisystem und /proc sowie /dev mounten sudo mount -o loop ubuntu.img ~/ubuntu sudo mount -t proc /proc ~/ubuntu/proc sudo mount -o bind /dev ~/ubuntu/dev fstab und hosts datei kopieren sudo cp /etc/hosts ~/ubuntu/etc/ sudo cp /etc/fstab ~/ubuntu/etc/

chroot betreten
sudo chroot ~/ubuntu

KDE installieren
Durch den folgenden Befehl wird die gesamte Kubuntu Desktop Distribution installiert (inkl. OpenOffice, Kontact, Konversation, amaroK, K3B, uvm.) Wer das nicht alles möchte kann auch nur kde-core installieren und weitere Anwendungen dann manuell. aptitude install kubuntu-desktop Jetzt habt ihr wieder Zeit zum Kaffee trinken ;)

WeTab GUI beenden und KDE starten
chroot verlassen exit In den Mehrbenutzermodus ohne X wechseln sudo init 3 X Server starten (Achtung, es handelt sich um ein großes X, dann Leerzeichen, dann kaufmännisches &) X & chroot wieder betreten sudo chroot ~/ubuntu KDE starten export DISPLAY=:0 startkde

'''ACHTUNG: Der KDE wird innerhalb des chroot als root ausgeführt. Dies stellt natürlich ein Sicherheitsrisiko dar, da über das proc und dev Dateisystem weiterhin auf die WeTab Umgebung zugegrifen werden kann.'''

= Weblinks =
 * Marco Martin KDE-Mobile Blog entry