64bit-migration
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
64bit-migration [2022/03/30 11:58] – snarg | 64bit-migration [2023/06/21 12:02] (current) – snarg | ||
---|---|---|---|
Line 3: | Line 3: | ||
This is my method - letting portage track every file and package except glibc and ld-linux.so.2 loader. System and all services can remain running. If this is done correctly only 2 reboots will be required. | This is my method - letting portage track every file and package except glibc and ld-linux.so.2 loader. System and all services can remain running. If this is done correctly only 2 reboots will be required. | ||
+ | * Keep in mind that pre profile 17.1 and post profile 17.1 will be slightly different as /lib and /usr/lib are not symlinks. These differences are noted in the relevant steps. | ||
* make sure system is completely up to date and has been depcleaned, preserved-rebuilt and revdep-rebuild - to clean up old 32bit libraries else lots of work later | * make sure system is completely up to date and has been depcleaned, preserved-rebuilt and revdep-rebuild - to clean up old 32bit libraries else lots of work later | ||
* a full up to date backup of the system is a good idea and has saved me in the past. | * a full up to date backup of the system is a good idea and has saved me in the past. | ||
* make sure you have an *identically* up to date 64bit multilib profile VM to create binary packages on. Ensure CFLAGS is going to be identical, or compatible (" | * make sure you have an *identically* up to date 64bit multilib profile VM to create binary packages on. Ensure CFLAGS is going to be identical, or compatible (" | ||
+ | * You can use a portage tree from git (on both target system and migration VM) using something like: | ||
+ | < | ||
+ | git clone https:// | ||
+ | cd gentoo-git | ||
+ | git checkout `git rev-list -n 1 --first-parent --before=" | ||
+ | #note backticks</ | ||
+ | * keep in mind if using a portage git snapshot like the above, you will need to read this for crossdev, particularly the bit regarding " | ||
* read ahead a few points (or the whole page) when starting a step - several problems may be solved in subsequent notes | * read ahead a few points (or the whole page) when starting a step - several problems may be solved in subsequent notes | ||
* if problems arise with libraries and mismatched ABI binaries, scp them over from the donor VM as needed. subsequent emerge will overwrite them later. | * if problems arise with libraries and mismatched ABI binaries, scp them over from the donor VM as needed. subsequent emerge will overwrite them later. | ||
Line 59: | Line 66: | ||
* change make.profile symlink to point to a multilib amd64 profile. choose 17.0 or 17.1 based on Donor VM profile. be aware of the difference. | * change make.profile symlink to point to a multilib amd64 profile. choose 17.0 or 17.1 based on Donor VM profile. be aware of the difference. | ||
- | * on donor pc or VM: | + | * on donor pc or VM (take note of wildcards, adjust if required): |
- | quickpkg glibc gcc zlib ncurses gmp mpfr util-linux acl attr sandbox coreutils procps binutils libcap mpc cracklib flex =db-5* glib pam pambase =python-3.8* bash readline findutils install-xattr bzip2 tar xz-utils make grep patch gawk sed libpcre dev-libs/ | + | quickpkg glibc gcc zlib ncurses gmp mpfr util-linux acl attr sandbox coreutils procps binutils libcap |
* on source VM, scp -r / | * on source VM, scp -r / | ||
Line 93: | Line 100: | ||
* continue to deploy initial binary packages using this method (except with collision detection) donated from prebuilt VM from / | * continue to deploy initial binary packages using this method (except with collision detection) donated from prebuilt VM from / | ||
+ | * 202112 notes: had to remove the following files to get glibc binary package to emerge: | ||
+ | < | ||
+ | /bin/date | ||
+ | / | ||
+ | / | ||
+ | /bin/ls | ||
+ | / | ||
+ | / | ||
+ | These can be restored from these binary packages immediately after getting glibc working: | ||
+ | < | ||
+ | To emerge coreutils, working mv command is required. libattr.so.1 and libacl.so.1 (symlinks.. copy the actual libraries) were copied over from donor VM lib64 directories and appropriate symlinks made. These belong to packages acl and attr binary packages which can then be emerged to account for those files. | ||
* If you get into trouble getting 64bit loader working, do this (only if needed): | * If you get into trouble getting 64bit loader working, do this (only if needed): | ||
** backup these: / | ** backup these: / | ||
Line 98: | Line 116: | ||
** restore etc files from above backup | ** restore etc files from above backup | ||
- | * This might not be needed. Fix 32bit toolchain and python in wrong directory by running: | + | |
+ | |||
+ | | ||
< | < | ||
Line 138: | Line 158: | ||
* take out / | * take out / | ||
* remove / | * remove / | ||
- | * erase / | + | * erase / |
* remove abi_x86_32 from package.use and profiles/ | * remove abi_x86_32 from package.use and profiles/ | ||
* clean up /lib.old and / | * clean up /lib.old and / |
64bit-migration.1648612724.txt.gz · Last modified: 2022/03/30 11:58 by snarg