Booting a FreeBSD 5.4 amd64 kernel on root filesystem populated
with i386 binaries
peter at wemm.org
Tue Aug 9 17:32:06 GMT 2005
On Monday 08 August 2005 01:13 pm, Brooks Davis wrote:
> On Mon, Aug 08, 2005 at 03:00:49PM -0500, Guy Helmer wrote:
> > Should it be possible to boot a FreeBSD 5.4 amd64 kernel (built
> > with IA32 compatibility) using a root filesystem that contains i386
> > binaries? I'm trying to upgrade systems in-place where the first
> > step is installing an amd64 kernel, /sbin/init,
> > /libexec/ld-elf32.so.1 and populating /lib32 with a copy of the
> > 32-bit libraries, and then rebooting. However, after the kernel
> > boots, it gives a signal 10 when trying to invoke /bin/sh to run
> > /etc/rc.
> > Am I way off base trying to do this? It seems like it should work
> > but I'm missing something that isn't easy to diagnose. Do I need
> > to replace /libexec/ld-elf.so.1 with an amd64 binary also?
> I'm pretty sure it's not supported under 5.x. The i386 support just
> isn't good enough. I'm not sure about 6.x. Support is supposed to
> be a lot better there, but I don't recall any word of people testing
> this so at that point I suspect not. I would suspect a jailed root
> will work before a real root file system does.
The emulation layer is targeted at application level programs, not
system tools. That means that system tools that use a binary interface
with the kernel (mount, mountd, and so on) just won't work because we
don't have a translation layer for that stuff. There are problems with
sysctl too, any 32 bit app that expects a 'long' item to be 32 bits
will find out the hard way too. This is probably what is breaking
init, and it'll certainly break the boot shortly after init anyway.
Making a 64 bit kernel work perfectly with a 32 bit world is a huge
task. There are administrative ioctls with binary interfaces buried
all over the place. Not to mention libkvm consumers...
Peter Wemm - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com
"All of this is for nothing if we don't go to the stars" - JMS/B5
More information about the freebsd-amd64