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 script.. Q> #!/bin/bash Q> cd /mnt/sysimage Q> declare -i N=0 Q> TGT=tmp Q> while [ $N -lt 32 -a -L "$TGT" ]; do Q> N=$N+1 Q> TGT=`ls -dl "$TGT" | rev | cut -d ' ' -f 1 | rev` Q> done Q> if [ -l "$TGT" ]; then Q> echo 'ERROR 1: Symlinks nested too deeply (32 levels), aborting.' Q> exit 1 Q> fi 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.
Oooooopppsss... In the above script, the nineth line should read... Q> if [ -L "$TGT" ]; then ...sorry about that.