Upgrade from 32-bit to AMD-64?

Xin LI delphij at delphij.net
Thu Feb 12 18:28:39 PST 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Karl Denninger wrote:
> 
> Xin LI wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Hi, Karl,
>>
>> Karl Denninger wrote:
>>  
>>> I have a machine that can run either (proved, I can boot the AMD-64
>>> release disk)
>>>
>>> Can I SOURCE UPGRADE from one to the other?  That is, is it possible to
>>> do a "make buildworld", "make buildkernel" and then "make installkernel"
>>> and wind up with AMD64 instead of the 32-bit code?
>>>
>>> Or must I reinstall?
>>>
>>> It APPEARS I can run most 32-bit code on a 64-bit system.  Not all
>>> works, but most does.
>>>     
>>
>> This is sort of "doable" but "highly recommend you not to do that"
>> thing.  The simplest way to do 32-bit to 64-bit upgrade would be to
>> backup your data, install from scratch, then restore data; mixing 32-bit
>> and 64-bit stuff together, especially without 32-bit stuff moved to the
>> right place, is among the most terrible mess you wanted to avoid.
>>
>> Online "upgrade" can be done if you have your 64-bit world/kernel built
>> and installed into a separate directory (i.e. make world kernel
>> DESTDIR=/path/to/a/temp/place), then drop into single user mode, then
>> tar then pipe to another tar to extract the whole thing to /, but this
>> is really a "foot, gun, shoot" thing.
>>
>> Cheers,
>> - --
>> Xin LI <delphij at delphij.net>    http://www.delphij.net/
>>
>>   
> Hmmmm.... I was thinking something like this (I have the cvsup tree on
> the machine)
> 
> 1. Compile into /usr/robj for amd64 (if I can figure out how to get make
> to do it - the obvious, MACHINE_ARCH=amd64, does not work - it barfs.)
> 
> 2. Intentionally break the mirror (just in case) from the controller;
> I've now got a clean bootable drive if something goes wrong.
> 
> 3. "make installkernel" (install new amd64 kernel)
> 
> 4. Reboot
> 
> Now, the question - will the 32-bit executables RUN under the 64-bit
> kernel under single-user so I can "make installworld"?

Yes as long as you compiled COMPAT_FREEBSD32 you can run 32-bit
executables under a 64-bit kernel, but, you need to be careful since the
dynamic linker would have different name.

> Or do I get screwed instantly when I reboot?

There is a reason we don't recommend doing that :)

Cheers,
- --
Xin LI <delphij at delphij.net>	http://www.delphij.net/
FreeBSD - The Power to Serve!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (FreeBSD)

iEYEARECAAYFAkmU2swACgkQi+vbBBjt66CvjwCggpu439Rif7SzKnrOjpTFtCH1
CwUAnjRflrkmlrLlJvhCEJq5kUk8nPGd
=rwVa
-----END PGP SIGNATURE-----


More information about the freebsd-stable mailing list