Booting a FreeBSD 5.4 amd64 kernel on root filesystem populated with i386 binaries

Peter Wemm peter at
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/ 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/ 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; peter at; peter at
"All of this is for nothing if we don't go to the stars" - JMS/B5

More information about the freebsd-amd64 mailing list