Re: chrooting in a 32-bit world from a 64-bit kernel+world
- From: Olivier Smedts <olivier@xxxxxxxx>
- Date: Tue, 30 Sep 2008 23:35:37 +0200
On Tue, Sep 30, 2008 at 10:38:10PM +0200, Mel wrote:
On Tuesday 30 September 2008 21:57:22 Olivier Smedts wrote:
On Tue, Sep 30, 2008 at 09:28:39PM +0200, Mel wrote:
On Tuesday 30 September 2008 20:44:02 Olivier Smedts wrote:
So far I've got a working FreeBSD (kernel+world) in a 512MB image I can
dump on a CompactFlash card :
# cd /usr/src
# make buildworld TARGET=i386
# make buildkernel TARGET=i386
# mount /dev/md0a /mnt
(md0 is a 512MB file backed image I bsdlabel'd and newfs'd before)
# make installworld TARGET=i386 DESTDIR=/mnt
# make distribution TARGET=i386 DESTDIR=/mnt
# make installkernel TARGET=i386 DESTDIR=/mnt
The problem is that I can't chroot in this 32-bit world.
Say I want to install the sysutils/screen port in /mnt :
# mkdir /mnt/usr/ports
# mount -t nullfs /usr/ports /mnt/usr/ports
# mount -t devfs devfs /mnt/dev
It's a guess, but at this point:
chroot /mnt /etc/rc.d/ldconfig start
First, thank you for replying so fast !
/etc/rc.d/ldconfig is a /bin/sh script, and I can't run /bin/sh in this
chroot. Same errors.
If that don't work:
/sbin/ldconfig -32 -s -f /mnt/var/run/ld-elf.so.hints /mnt/lib \
/mnt/usr/lib
After that command, the shared libraries are found, but ld refers to /mnt :
# ldconfig -rf /mnt/var/run/ld-elf.so.hints
/mnt/var/run/ld-elf.so.hints:
search directories: /mnt/lib:/mnt/usr/lib
0:-lc.7 => /mnt/lib/libc.so.7
1:-lcrypt.4 => /mnt/lib/libcrypt.so.4
[...]
Right.
cd /mnt
rmdir mnt
ln -s . mnt
The old chroot symlink hack.
And then when trying to chroot, still the same problem. I also can't launch
ldconfig in the jail :
# chroot /mnt/ /sbin/ldconfig -32 -s -f /var/run/ld-elf.so.hints /lib
/usr/lib ELF interpreter /libexec/ld-elf.so.1 not found
Abandon
If you have /rescue there, maybe chroot /mnt /rescue/ldconfig /lib /usr/lib
will help you. I'm pretty sure it's the missing hints causing this.
If all this fails, I'd try running /mnt as a jail.
Thanks for the advices. At least statically compiled binaries in /rescue work.
# chroot /mnt /rescue/sh
# /rescue/ldconfig /lib /usr/lib
# /rescue/ldconfig -r
/var/run/ld-elf.so.hints:
search directories: /lib:/usr/lib
0:-lc.7 => /lib/libc.so.7
1:-lcrypt.4 => /lib/libcrypt.so.4
[...]
# sh
ELF interpreter /libexec/ld-elf.so.1 not found
Abort trap
#
No luck with the symlink hack or a jail :
Configuring jails:.
Starting jails:ELF interpreter /libexec/ld-elf.so.1 not found
cannot start jail "fanless":
Abort trap
..
I'll try to boot directly in the 32-bit world with my 64-bit kernel.
I think it should work. In that case, there's maybe something to configure
in the amd64 host's ldconfig or ld-elf.so.1 before chrooting in a 32-bit world.
--
Mel
Problem with today's modular software: they start with the modules
and never get to the software part.
--
Olivier Smedts _
ASCII ribbon campaign ( )
e-mail: olivier@xxxxxxxx - against HTML email & vCards X
www: http://www.gid0.org - against proprietary attachments / \
"Il y a seulement 10 sortes de gens dans le monde :
ceux qui comprennent le binaire,
et ceux qui ne le comprennent pas."
_______________________________________________
freebsd-questions@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@xxxxxxxxxxx"
- References:
- chrooting in a 32-bit world from a 64-bit kernel+world
- From: Olivier Smedts
- Re: chrooting in a 32-bit world from a 64-bit kernel+world
- From: Mel
- Re: chrooting in a 32-bit world from a 64-bit kernel+world
- From: Olivier Smedts
- Re: chrooting in a 32-bit world from a 64-bit kernel+world
- From: Mel
- chrooting in a 32-bit world from a 64-bit kernel+world
- Prev by Date: Re: SATA READ_DMA timeouts - SOLVED?
- Next by Date: Re: SATA READ_DMA timeouts - SOLVED?
- Previous by thread: Re: chrooting in a 32-bit world from a 64-bit kernel+world
- Next by thread: Server setup
- Index(es):
Relevant Pages
|