Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Feb 2009 11:04:16 +0300 (MSK)
From:      Dmitry Morozovsky <marck@rinet.ru>
To:        Karl Denninger <karl@denninger.net>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: Upgrade from 32-bit to AMD-64?
Message-ID:  <alpine.BSF.2.00.0902231102110.81984@woozle.rinet.ru>
In-Reply-To: <499C4BFC.3050704@denninger.net>
References:  <4994CD7B.7040302@denninger.net> <499526E9.3090804@bit0.com> <2CA7DE699281AFA5DF2BD851@syn> <200902181728.16842.ianjhart@ntlworld.com> <499C4BFC.3050704@denninger.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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 ***
------------------------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.0902231102110.81984>