From: bernie Date: Mon, 2 Mar 2009 16:23:03 +0000 (+0100) Subject: Edit page Fedora64bitUpgrade X-Git-Url: https://codewiz.org/gitweb?a=commitdiff_plain;h=d02c1ab03e789c70f9600bba50d2a772ef3e05da;p=wiki.git Edit page Fedora64bitUpgrade --- diff --git a/Fedora64bitUpgrade b/Fedora64bitUpgrade new file mode 100644 index 0000000..bad4686 --- /dev/null +++ b/Fedora64bitUpgrade @@ -0,0 +1,79 @@ +== Online upgrade an i386 Fedora system to x86_64 == + +=== Preparation === + +**WARNING:** This exercise has been performed by experienced stunt sysadmins. Do not try this at home without professional supervision. + +You will need to manually download a few packages from the repository. +A full local mirror of the repository might make things a little easier, +but it's not required. I use ##lftp## or ##lftpget## with these paths +conveniently bookmarked: + +{{{ +ftp://mirrors.us.kernel.org/fedora/updates/10/x86_64/ +ftp://mirrors.us.kernel.org/fedora/linux/releases/10/Everything/x86_64/os/Pa +}}} + +Always check the updates directory first for the latest version of the rpm, +or you might end up with incompatible dependencies. + +=== Upgrade === + +Enough talking, now let's roll: + + * **Kernel:** Download and install 64bit kernel: + {{{ + rpm -U --ignorearch kernel-2.6.27.15-170.2.24.fc10.x86_64.rpm + }}} + + * **Reboot:** this is the only time you'll need to reboot if you're careful + + * **glibc:** Force install the 64bit glibc, but keep the 32bit libraries: + {{{ + rpm -i --ignorearch --force glibc-2.9-3.x86_64.rpm glibc-common-2.9-3.x86_64.rpm glibc-2.9-3.i686.rpm + }}} + + * Do random shell commands still work? Good, then we're still in business. + + * **rpm:** Now comes the tricky part: we need to switch to 64bit rpm to continue the upgrade, + but rpm has a lot of dependencies. I did this by trial and error, eventually running + a very long command line: + {{{ + rpm -U --force --ignorearch rpm-* libz-* ... + }}} + + * **Disable gpg signatures:** At this point, I got seriously stuck by a mysterious problem, + probably unrelated to the arch migration: the new rpm would work, but refuse to install any new + package mumbling something about incorrect MD5 signature. It turned out that rpm was actually + using gpg rather than md5 signatures, and the error message was just misleading. + I got past this by disabling gpg signatures by commenting out the ##%_signature gpg## in + ##/usr/lib/rpm/macros##. + + * **Install the rest:** At this point, it's all downhill. You can't get along with + "yum upgrade" though, because yum thinks you already have the latest versions of everything, + although with the wrong architecture. I did it like this: + {{{ + rpm -i `rpm -qa | sed -ne 's/i[36]86/x86_64.rpm/p'` + }}} + + * **Final cleanup**: you might want to remove all the i386 junk to get a pure 64bit system. + I did it like this: ##rpm -e `rpm -qa | grep i[36]86`##. + +Good luck! + + +=== Trouble? === + +If something goes wrong and you're stuck with an unworkable, you could boot off a 64bit live +CD and manually copy the files you need or ##chroot## into your half-upgraded system. + +You might need to unpack rpms with ##rpm2cpio##. Also note a few rpm options useful in +recovery scenarios: ##--root##, ##--justdb##, ##--rebuilddb##. + + +=== Help improve this documentation === + +If you manage to break your system in interesting ways, I'd like to know (but not necessarily +help you fix it). + +Please, edit this page with additional notes and tips. It's a wiki for a reason.