Red Hat Bugzilla – Bug 9473
Upgrade from 5.1 to 6.1 fails due to anaconda crashing
Last modified: 2008-05-01 11:37:54 EDT
On one of our 5.1 systems, /tmp is a symbolic link to /var/tmp. During the
upgrade to 6.1, anaconda tries to write what packages are to be updated to
/???/sys???/tmp - which is a link to /var/tmp - which of course doesn't
exist during an install.
When I deleted the symbolic link and made a new /tmp dir on the system, the
upgrade went on to completion.
I'd say anaconda should check whether /tmp is a link and decide what to do
in that case - perhaps make a "/upgrade.log" file instead?
The "/mnt/sysimage" that you saw is where the installer mounts the root
filesystem for both installation and upgrade. Anaconda is only able to deal
with relative links on a system, so I am betting that you have an absolute link
from /tmp to /var/tmp (that is, 'ls -la /tmp' would show '/tmp -> /var/tmp')
This will indeed cause the installer to do bad things, as we are working to
determine the best solution for when the installer finds an absolute link. Just
change the /tmp link to be relative and things should be fine. So, executing
'ln -sf ./var/tmp /tmp' from / should solve the problem. Reopen this bug if you
are still having problems.
One possible solution would be to do the equivalent of the following bash
Q> cd /mnt/sysimage
Q> declare -i N=0
Q> while [ $N -lt 32 -a -L "$TGT" ]; do
Q> TGT=`ls -dl "$TGT" | rev | cut -d ' ' -f 1 | rev`
Q> if [ -l "$TGT" ]; then
Q> echo 'ERROR 1: Symlinks nested too deeply (32 levels), aborting.'
Q> exit 1
Q> ln -s /mnt/sysimage/$TGT /tmp
Q> exit 0
...as this sets /tmp as a symlink to wherever /mnt/sysimage/tmp would end up
pointing to. After that, just use /tmp to refer to it and it will go to wherever
the said directory pointed to.
A similar procedure could be used with other absolute links.
In the above script, the nineth line should read...
Q> if [ -L "$TGT" ]; then
...sorry about that.