How to perform a system-only re-install i386->amd64
Ashley Moran
ashley.moran at codeweavers.net
Wed Nov 30 11:46:28 GMT 2005
I'm sure someone has done this before but I wanted to run my plan past
everyone to see if I've thought of everything.
Yesterday one of our development servers (running FreeBSD 6-release) croaked.
It was an old old old machine and we ended up replacing the board and CPU
with an MSI Neo2 Platinum (nForce 3 chipset) and Athlon 64 setup. We just
swapped the board and re-connected the old array. It works fine but
obviously it's running in i386 mode. I don't need to run i386 compatability
on this machine because I don't need to run any Linux binaries.
I've googled and read through the amd64 list and the consensus seems to be
that (a) amd64 is stable enough for production use and (b) very fast. I've
heard that it's easiest to reinstall from scratch rather than do a source
upgrade in place. So I've downloaded the amd64 ISOs.
I tried to prepare for this situation when I first installed the machine. I
have each of these in separate partitions:
/
/usr/local
/usr/ports
/var
/home
/tmp
Here is my plan:
* # pkg_deinstall -a to get rid of all my i386 software
* backup /etc to /var/i386etc
* Reboot from FreeBSD 6 amd64 disc 1
* Choose Standard installation
* On the partitioning screen, reformat the / partition and set the others
up to match the current layout (I've never done this but I hope it's
intuitive)
* Install exactly how I did before (they will both be 6-RELEASE so
shouldn't be a problem)
* Reboot into the amd64 system
* Copy /var/i386etc over /etc
Here I'm assuming that the configuration is architecture-independent-
is this correct? I have a tarball I made of the i386 6-REL /etc files
so I can diff them before I install mine anyway
* Recompile the kernel with i386 compatability (or can this be added during
installation?)
* # cd /var/db/portsnap/* && rm -R INDEX files serverlist tINDEX tag && \
portsnap fetch && portsnap extract
to get me the amd64 ports tree
* Copy the i386 package I made on my desktop for the BSD jdk14 to the server
and install from the package
* Compile a native jdk15
* Deinstall jdk14
* Re-compile the kernel without x86 compatability, install and reboot
* Reinstall all ports by hand- they should assume their previous roles as
all the configs and data should be in /usr/local and
I appreciate that this is quite a long question and probably has been answered
before in pieces but I'd be grateful if anyone can pick holes in it before I
start so I don't waste all Sunday afternoon!
Thanks
Ashley
More information about the freebsd-questions
mailing list