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
pgp02GwLpUBHf.pgp
Description: PGP signature