On 2007-Mar-09 22:16:36 +0300, Artem Kuchin <[EMAIL PROTECTED]> wrote:
>>>>>Is there way to more or less sefely  migrade to AMD64 arhitecture via
>>>>>csup and
>>>>>source build?
>>...
>>>Damn it. Then i guess i need to do some experimenting myself.
>>
>>Definitely.
>>
>>>Theoretically, what would be the procedure?
>>
>>1) Backup system.
>>2) Download amd64 install ISO and burn to CD
>>3) Boot from CD
>>4) Follow instructions for fresh install
>>5) Restore/merge configuration from backups.
>>
>>If you have a spare amd64 system and most of the content is static,
>>you could reduce downtime by doing steps 4 thru 5 on the second system
>>and either swapping the disk(s) or the entire system.
>
>no, that's no what i ment. I mean the procedure to source build/install
>amd64 on x86 and make it work. Just theoretically,

I presume you've read the bottom bit of /usr/src/UPGRADING

You should be able to cross-build an amd64 world with:
# make TARGET_ARCH=amd64 buildworld
# make TARGET_ARCH=amd64 KERNCONF=YourKernel buildkernel
(I'm confident this will work but watch out for CPU or
architecture-specific flags in your /etc/make.conf)

# mkdir /lib32 /usr/lib32
# cp -p /lib/* /lib32
# cp -p /usr/lib/* /usr/lib32
# cp -p /var/run/ld-elf.so.hints /var/run/ld-elf32.so.hints
# cp -p /libexec/ld-elf.so.1 /libexec/ld-elf32.so.1
These steps setup the i386 emulation infrastructure (some of these steps
may be overkill)

# make TARGET_ARCH=amd64 KERNCONF=YourKernel DESTDIR=/ installkernel
I think this will work.

Reboot to single user mode (shouldn't have any problems)
Mount /usr /var and anything else needed for the install
# mergemaster -p
# make TARGET_ARCH=amd64 DESTDIR=/ installworld

These steps are probably the riskiest because you are relying on
tricking the amd64 kernel into believing your i386 world is an i386
emulation.  If anything goes wrong here, you will probably need to
restore from backups because you can't run on the old kernel once
you've started installing amd64 binaries.

I haven't tried running an amd64 kernel with an i386 userland but
after symlinking /lib32 -> lib and /usr/lib32 -> lib and copying the
ld-elf.so files in my i386 filesystems, I can chroot into it whilst
running my amd64 kernel and execute commands.

# make delete-old
# mergemaster
These steps should be OK

Note that I wouldn't attempt to try going from 5.4/i386 to 6.2/amd64
in one step.  You want to minimise the things that can go wrong...

-- 
Peter Jeremy

Attachment: pgp02GwLpUBHf.pgp
Description: PGP signature

Reply via email to