[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Debian auf FreeBSD bootstrappen.


Hallo zusammen,

vergangenes WE habe ich zusammen mit Markus Hochholdinger viel Zeit
damit verbracht, herauszufinden, wie man am schmerzfreiesten ein
Debian-Userland unter FreeBSD installiert.

"deboostrap" ist wohl die Universalantwort. Aber es laeuft nur unter
Linux. Also habe ich mit ein gentoo-stage3 aus den FreeBSD Ports
installiert und kann dieses auch starten.

root@daemon:~# uname -srm
FreeBSD 6.0-RELEASE-p4 i386
root@daemon:~# chroot /usr/local/gentoo-stage3/ /bin/bash
daemon / # uname -a
Linux daemon.local.net 2.4.2 FreeBSD 6.0-RELEASE-p4 #1: Tue Jan 31
22:23:54 CET 2006 i686  GenuineIntel GNU/Linux
daemon / # 

Mittels deb2targz-20021217 habe ich unter FreeBSD im gentoo-Baum
deboostrap ausgekippt und getestet. 

Nachem er (inzwischen) eine ganze Reihe von Paketen gezogen hat, wirde
versucht, diese zu installieren. Das schlaegt allerdings fehl:

Zur Unterscheidung, die jeweiligen Prompts:
root@daemon:~#          FreeBSD-Bash
daemon / #              Gentoo-Bash (chroot in FreeBSD)
I have no name!@daemon:/#       Debian-Bash (chroot(chroot())


Here we go:

root@daemon:~# mkdir /usr/local/gentoo-stage3/dev
root@daemon:~# mount_devfs dev /usr/local/gentoo-stage3/dev
root@daemon:~# chroot /usr/local/gentoo-stage3/ /bin/bash
daemon / # debootstrap  sarge /debian
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional required dependencies: libtext-iconv-perl zlib1g 
I: Checking component main on http://ftp.debian.org/debian...
I: Retrieving adduser
I: Validating adduser
[...]
I: Validating exim4-daemon-light
I: Retrieving fdutils
I: Validating fdutils
I: Retrieving findutils
I: Validating findutils
I: Retrieving gcc-3.3-base
[...]
I: Extracting whiptail...
I: Extracting zlib1g...
ELF binary type "0" not known. <----------------------- HIER!
W: Failure trying to run: chroot /debian /sbin/ldconfig
I: Installing core packages...
W: Failure trying to run: chroot /debian dpkg --force-depends --install
var/cache/apt/archives/base-files_3.1.2_i386.deb var/cache/apt

Interessanterweise schliesst das Script ab mit:
W: Failure while configuring base packages.  This will be attempted 5 times.
W: Failure while configuring base packages.  This will be attempted 5 times.
W: Failure while configuring base packages.  This will be attempted 5 times.
W: Failure while configuring base packages.  This will be attempted 5 times.
I: Base system installed successfully. <---------- ;)

Ok, dann mal Fehleranalyse:

daemon / # chroot /debian /sbin/ldconfig
ELF binary type "0" not known.
/sbin/ldconfig: /sbin/ldconfig: cannot execute binary file

daemon / # ldd /debian/sbin/ldconfig 
/usr/bin/ldd: line 165: /lib/ld-linux.so.2: cannot execute binary file
/usr/bin/ldd: line 175: /lib/ld-linux.so.2: cannot execute binary file
ldd: /lib/ld-linux.so.2 exited with unknown exit code (126)
daemon / # file /debian/sbin/ldconfig
/debian/sbin/ldconfig: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, statically linked, stripped

Mir scheint, das Problem besteht mit allen statisch gelinkten
Linux-Executables in der Linux-Umgebung von FreeBSD.

Immerhin laesst sich schonmal die debian-Bash aus dem gentoo-chroot
heraus starten:

daemon / # chroot /debian/ /bin/bash
I have no name!@daemon:/# uname -a
Linux daemon.local.net 2.4.2 FreeBSD 6.0-RELEASE-p4 #1: Tue Jan 31
22:23:54 CET 2006 i686 GNU/Linux

Irgendwie scheint mir das ganze nicht sehr zielfuehrend zu sein.

Ein zweiter Versuch, ein Debian-Userland unter FreeBSD zu starten war,
ein "Debian auf FreeBSD" ISO-Image loopmack zu mounten (als md0 in
FreeBSD) und die dort liegenden Bootscripte zu starten. 

Alles scheitert letztlich daran, dass Debian zunaechst versucht, die
Hardware zu analysiseren und einzurichten, was natuerlich in einem
FreeBSD-chroot() nicht sinnvoll funktioniert.

Das Beispiel von gentoo-stage3 zeigt aber, dass ein mehr oder weniger
vollstaendiges Linux als chroot-Umgebung in FreeBSD benutzbar ist.

Wie muss ich vorgehen, damit es klappt?

Ich kann deb-Packages mittels deb2targz und tar in FreeBSD an einer
beliebigen Stelle extrahieren, kann ein linprocfs in die Umgebung
reinmounten, koennte ein devfs von FreeBSD in die Linux-Umgebung mounten
etc.

Ein nativ unter FreeBSD laufendes debootstrap, welches mir die Arbyte
abnimmt, waere mir natuerlich am liebsten.

Ideen dazu?

Gruss
-- 
Raphael Becker                                    http://rabe.uugrn.org/
                      http://schnitzelmitkartoffelsalat.und.rahmspin.at/
.........|.........|.........|.........|.........|.........|.........|..



-- 
http://mailman.uugrn.org/mailman/listinfo/uugrn