Date: Thu, 12 Feb 2009 18:28:28 -0800 From: Xin LI <delphij@delphij.net> To: Karl Denninger <karl@denninger.net> Cc: freebsd-stable@freebsd.org Subject: Re: Upgrade from 32-bit to AMD-64? Message-ID: <4994DACC.1040801@delphij.net> In-Reply-To: <4994D931.4060508@denninger.net> References: <4994CD7B.7040302@denninger.net> <4994D603.2060406@delphij.net> <4994D931.4060508@denninger.net>
next in thread | previous in thread | raw e-mail | index | archive | help
-----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@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@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-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4994DACC.1040801>