From owner-freebsd-stable@FreeBSD.ORG Mon Feb 23 08:04:21 2009 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B95E8106564A for ; Mon, 23 Feb 2009 08:04:21 +0000 (UTC) (envelope-from marck@rinet.ru) Received: from woozle.rinet.ru (woozle.rinet.ru [195.54.192.68]) by mx1.freebsd.org (Postfix) with ESMTP id 28C148FC0A for ; Mon, 23 Feb 2009 08:04:20 +0000 (UTC) (envelope-from marck@rinet.ru) Received: from localhost (localhost [127.0.0.1]) by woozle.rinet.ru (8.14.3/8.14.3) with ESMTP id n1N84G1I036396; Mon, 23 Feb 2009 11:04:16 +0300 (MSK) (envelope-from marck@rinet.ru) Date: Mon, 23 Feb 2009 11:04:16 +0300 (MSK) From: Dmitry Morozovsky To: Karl Denninger In-Reply-To: <499C4BFC.3050704@denninger.net> Message-ID: References: <4994CD7B.7040302@denninger.net> <499526E9.3090804@bit0.com> <2CA7DE699281AFA5DF2BD851@syn> <200902181728.16842.ianjhart@ntlworld.com> <499C4BFC.3050704@denninger.net> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) X-NCC-RegID: ru.rinet X-OpenPGP-Key-ID: 6B691B03 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.0.1 (woozle.rinet.ru [0.0.0.0]); Mon, 23 Feb 2009 11:04:16 +0300 (MSK) Cc: freebsd-stable@freebsd.org Subject: Re: Upgrade from 32-bit to AMD-64? X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Feb 2009 08:04:22 -0000 On Wed, 18 Feb 2009, Karl Denninger wrote: KD> I have been able to come up with a procedure that works. KD> KD> 1. Load a new hard disk with the 64-bit code. Perform a buildworld and KD> buildkernel, and installkernel and installworld to this disk to verify that KD> it will install and run. You now have a "base" disk to use for migration. KD> KD> 2. Make sure you have a backup (:-)) KD> KD> 3. Boot the migration hard disk as the system disk and mount the subject KD> machine's disk drive(s) under /mnt. KD> KD> 4. Do "make DESTDIR=/mnt installkernel" and "make DESTDIR=/mnt installworld" KD> KD> 5. Shut down and disconnect migration disk. KD> KD> 6. Boot SINGLE USER and verify that the system boots, you can fsck -p the KD> disks, and mount them. The system should boot and run. KD> KD> 7. Come up multiuser but with any services necessary to the world offline. KD> Some of your packages may blow up when started. If so, portupgrade SHOULD KD> fix it, but this is not consistent. I had to manually dump the ports tree KD> and rebuild a few installed ports due to what appear to be broken KD> dependancies, but not many. KD> KD> Postgresql 32-bit runs fine without recompilation after doing this. It is KD> arguably preferrable to recompile; doing so requires a dump/restore of the KD> data as the 32 and 64-bit code will NOT run off the same binary data store. KD> KD> Attempting to "make instalkernel" on an "in-place" basis resulted in a KD> system that booted but failed immediately due to loader conflicts; there was KD> no way to get the rest of the codeset loaded if you make that mistake. You can avoid most of these problems if you have copies of ld-elf (both 32-bit and 64-bit), and boot single user for /rescue; however, "migration disk" approach is much simpler. KD> KD> The "migration disk" approach appears to work fine. -- Sincerely, D.Marck [DM5020, MCK-RIPE, DM3-RIPN] [ FreeBSD committer: marck@FreeBSD.org ] ------------------------------------------------------------------------ *** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru *** ------------------------------------------------------------------------