32bit chroot in siduction 64 einrichten

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche



Zuerst ist ein 32Bit-System mit debootstrap einzurichten:

apt-get install debootstrap
debootstrap --arch i386 sid /emul/ia32-linux ftp://ftp.debian.org/debian


Das dauert jetzt etwas. Dann in die chroot wechseln:

chroot /emul/ia32-linux

Jetzt solltet ihr folgende Datei editieren, damit Ihr apt-get benutzen könnt

nano /etc/dhcp/resolv.conf 

Falls Datei und Verzeichnis nicht vorhanden ist, einfach erstellen.

hier folgendes eintragen:

nameserver 192.168.0.1

Das natürlich anpassen, meist ist das die IP-Adresse Eures Routers.

mit

touch /etc/apt/sources.list.d/debian.list

eine Datei erstellen, einen Server aussuchen und dort eintragen. z.B.

echo "deb http://ftp.debian.org/debian/ sid main contrib non-free" >  /etc/apt/sources.list.d/debian.list

und dann

apt-get update
apt-get install libx11-6

die 32Bit chroot verlassen

exit


Im 64-bit System die Verbindungen zum 32-bit herstellen

jetzt in /etc/ld.so.conf folgendes hinzufügen

# chroot i386 system libs
/emul/ia32-linux/lib
/emul/ia32-linux/usr/lib
/emul/ia32-linux/usr/X11R6/lib
/emul/ia32-linux/usr/local/lib


jetzt einen Link in der 64bit Umgebung machen

cd /lib/x86_64-linux-gnu
ln -s /emul/ia32-linux/lib/ld-2.13.so ld-linux.so.2
ldconfig

Die ld-2.13.so ist die derzeit aktuelle, nachschauen welche aktuell ist und entsprechend anpassen mit:

ls -l /lib64 |grep ld-

Damit wäre das Gröbste gemacht. Jetzt noch die fstab anpassen, damit man X11, home etc. in der chroot nutzen kann.

/home           /emul/ia32-linux/home none  bind            0       0
/tmp            /emul/ia32-linux/tmp none   bind            0       0
/proc            /emul/ia32-linux/proc proc  defaults        0       0
/dev            /emul/ia32-linux/dev none   bind            0       0
/sys            /emul/ia32-linux/sys none  bind        0       0

Mounten der 32-bit Umgebung

mount /emul/ia32-linux/home
mount /emul/ia32-linux/tmp
mount /emul/ia32-linux/proc


Folgendes noch in die chroot kopieren /etc/passwd, /etc/shadow und /etc/group


In die chroot wechseln und user erstellen

chroot /emul/ia32-linux
adduser --uid ID USER


User wechseln

su - USER

Jetzt kann man schon Anwendungen starten, nachdem sie in der 32-bit-Ümbgebung installiert wurden. Z.B. iceweasel mit installiertem flashplugin wenn das 64-bit plugin mal wieder zickt.


dchroot (von mir noch nicht mit siduction getestet!)

Dieser Teil ist nicht erforderlich wenn ihr bereits den oberen Teil abgearbeitet habt!

Etwas einfacher geht es mit dchroot. Wieder mit

exit

in die 64Bit Welt wechseln.

apt-get install dchroot


die /etc/dchroot.conf anpassen

# ia32 chroot
ia32    /emul/ia32-linux


Ein kleines Script in /usr/local/bin/do_dchroot erstellen

#!/bin/sh
exec dchroot -c ia32 -d "$(basename $0)" "$@"


Ausführbar machen

chmod 755 /usr/local/bin/do_dchroot


Z.B ein paar Symlinks erstellen

cd /usr/local/bin
ln -s do_dchroot openoffice
ln -s do_dchroot oowriter
ln -s do_dchroot oocalc


Jetzt kann man reine 32bit Applikationen wie z.B. Wine der 32bit chroot installieren. Ich empfehle fertige Pakete, da sonst sehr sehr viele Abhängigkeiten fehlen und die chroot entprechend grösser wird.


Aus der 64Bit Welt kann man z.B. !Wine nun folgendermassen starten.

dchroot -c ia32 -d wine

Locales in der chroot einrichten

su
dchroot
apt-get install locales
dpkg-reconfigure locales


hier folg. auswählen

de_DE.UTF-8 UTF-8 

Jetzt sind Umlaute etc. auch in der chroot da und es gibt keine "locale" Fehlermeldungen.


FAQ:

Q: Warum eine 32Bit Umgebung? A: Es gibt einige Sachen, die unter 64Bit nicht laufen.

Q: Was? A: Manche Applikationen erscheinen -leider immer noch- oft auch erst später in 64bit Varianten.

Q: Was noch? A: Wine sowie damit gestartete Windows Applikationen (die auch fast immer 32bit sind) laufen nun auch, mit kleinen Scripten direkt aus der 64Bit Umgebung.


Danke an das Debian-AMD64 Team für das urspüngliche, aber inzwischen etwas veraltete originale !HowTo?.

ToDo: Test ob dchroot noch so funktioniert wie hier beschrieben -wenns jemand ausprobiert hat oder weiß, bitte ändern

Übernommen aus dem ehemaligen sidux-wiki