Red Hat Bugzilla – Bug 831242
"\usr merge script failed" during preupgrade from f16 ro f17
Last modified: 2013-07-31 20:43:52 EDT
Description of problem:
When trying to upgrade from F16 to F17 using preupgrade, the boot sequence to the F17 option is stopped with the error "The \usr merge script failed..." etc.
Version-Release number of selected component (if applicable):
preupgrade from F16 to F17
Steps to Reproduce:
1. From within a F16 installation, run $yum update & $yum install preupgrade
2. reboot and select F17 option
3. the boot stop with the error "The \usr merge script failed..." with no explanation given or pointers on how to fix this.
The boot stop with the error "The \usr merge script failed..." with no explanation given or pointers on how to fix this.
the upgrade should complete
This is on Fedora 16 64bit installed on VirtualBox under Windows 2007
Which other information/log can I provide?
I have just experienced this on a server I am upgrading. I found a symlink in /usr/bin called 'java' pointing at /etc/alternatives/java. Deleting the symlink corrected the error and the upgrade is now proceeding.
Run the command (from /usr): find . -type l | grep etc
...to check for symlinks going to /etc.
I have checked for symlink as you suggested and unlinked the ones I saw but the script /usr merge script still fails. Any other suggestions?
I would check for NFS/CIFS mounts that might reference that directory and run the find command I mentioned in 'Comment 2' with a pipe through "more". I think you will need to check every symlink to ensure one is not going somewhere else.
I've done the above search with the following results (doesn't look like any symlinks going to etc) and as far as I know I have no NFS/CIFS mounts for that directory eiter (just running Samba here). How do I proceed to fix this or get around it...or worst case back out what preupgrade has already done? I was able to reboot into the "old" FC16 setup manually and its working fine so I'm guessing remove the entries in the grub.conf files maybe but some direction there and what else to clean up would help if we can't resolve this.
# cd /usr
[root@saturn usr]# find . -type l | grep etc
# ll ./lib/libkwalletclient.so.1
lrwxrwxrwx 1 root root 25 Nov 19 2011 ./lib/libkwalletclient.so.1 -> libkwalletclient.so.1.0.1
# ll ./lib/glusterfs/3.2.7/xlator/performance/stat-prefetch.so
lrwxrwxrwx 1 root root 22 Jun 22 06:36 ./lib/glusterfs/3.2.7/xlator/performance/
stat-prefetch.so -> stat-prefetch.so.0.0.0
# ll ./lib/glusterfs/3.2.7/xlator/performance/stat-prefetch.so.0
lrwxrwxrwx 1 root root 22 Jun 22 06:36 ./lib/glusterfs/3.2.7/xlator/performance/
stat-prefetch.so.0 -> stat-prefetch.so.0.0.0
# ll ./lib/libkgetcore.so.4
lrwxrwxrwx 1 root root 20 Jun 30 19:01 ./lib/libkgetcore.so.4 -> libkgetcore.so.4.8.0
# ll ./lib/libnetcf.so.1
lrwxrwxrwx. 1 root root 17 Nov 11 2011 ./lib/libnetcf.so.1 -> libnetcf.so.1.4.0
# ll ./lib/openldap/retcode-2.4.so.2
lrwxrwxrwx 1 root root 20 Apr 18 21:52 ./lib/openldap/retcode-2.4.so.2 -> retcode-2.4.so.2.7.1
# ll ./lib/libkwalletclient.so
lrwxrwxrwx 1 root root 25 Nov 19 2011 ./lib/libkwalletclient.so -> libkwalletclient.so.1.0.1
# ll ./libexec/getconf/default
lrwxrwxrwx 1 root root 20 Mar 22 03:44 ./libexec/getconf/default -> POSIX_V6_ILP32_OFF32
# ll ./share/man/man3/mvgetch.3x.gz
lrwxrwxrwx. 1 root root 16 Nov 11 2011 ./share/man/man3/mvgetch.3x.gz -> curs_getch.3x.gz
# ll ./share/man/man3/ungetch.3x.gz
lrwxrwxrwx. 1 root root 16 Nov 11 2011 ./share/man/man3/ungetch.3x.gz -> curs_getch.3x.gz
# ll ./share/man/man3/setcchar.3x.gz
lrwxrwxrwx. 1 root root 19 Nov 11 2011 ./share/man/man3/setcchar.3x.gz -> curs_getcchar.3x.gz
# ll ./share/man/man3/mvwgetch.3x.gz
lrwxrwxrwx. 1 root root 16 Nov 11 2011 ./share/man/man3/mvwgetch.3x.gz -> curs_getch.3x.gz
# ll ./share/man/man3/getcury.3x.gz
lrwxrwxrwx. 1 root root 17 Nov 11 2011 ./share/man/man3/getcury.3x.gz -> curs_legacy.3x.gz
# ll ./share/man/man3/getcurx.3x.gz
lrwxrwxrwx. 1 root root 17 Nov 11 2011 ./share/man/man3/getcurx.3x.gz -> curs_legacy.3x.gz
# ll ./share/man/man3/getch.3x.gz
lrwxrwxrwx. 1 root root 16 Nov 11 2011 ./share/man/man3/getch.3x.gz -> curs_getch.3x.gz
# ll ./share/man/man3/wgetch.3x.gz
lrwxrwxrwx. 1 root root 16 Nov 11 2011 ./share/man/man3/wgetch.3x.gz -> curs_getch.3x.gz
# ll ./share/man/man3/getcchar.3x.gz
lrwxrwxrwx. 1 root root 19 Nov 11 2011 ./share/man/man3/getcchar.3x.gz -> curs_getcchar.3x.gz
# ll ./share/man/man3/ungetch_sp.3x.gz
lrwxrwxrwx. 1 root root 19 Nov 11 2011 ./share/man/man3/ungetch_sp.3x.gz -> curs_sp_funcs.3x.gz
# more /etc/fstab
LABEL=/root / ext4 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
LABEL=/home /home ext4 defaults 1 2
LABEL=/home2 /home2 ext4 defaults 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/scd0 /mnt/cdrom/ iso9660 ro,user,noauto 0 0
LABEL=/tmp /tmp ext4 defaults 1 2
LABEL=/SWAP-hda2 swap swap defaults 0 0
# Loopback mount of Samba Share
/home2/DAWS /var/www/html/DAWS none bind 0 0
# df -kh
Filesystem Size Used Avail Use% Mounted on
rootfs 289G 25G 251G 9% /
devtmpfs 969M 0 969M 0% /dev
tmpfs 977M 72K 977M 1% /dev/shm
/dev/sda3 289G 25G 251G 9% /
tmpfs 977M 42M 935M 5% /run
tmpfs 977M 0 977M 0% /sys/fs/cgroup
tmpfs 977M 0 977M 0% /media
/dev/sda1 485M 236M 249M 49% /boot
/dev/sdb1 294G 1.7G 277G 1% /home
/dev/sdc1 37G 136M 35G 1% /tmp
/dev/sdc2 257G 20G 225G 9% /home2
/dev/sdc2 257G 20G 225G 9% /var/www/html/DAWS
/dev/sda3 289G 25G 251G 9% /var/named/chroot/etc/named
/dev/sda3 289G 25G 251G 9% /var/named/chroot/etc/pki/dnssec-keys
/dev/sda3 289G 25G 251G 9% /var/named/chroot/usr/lib/bind
/dev/sda3 289G 25G 251G 9% /var/named/chroot/etc/named.iscdlv.key
/dev/sda3 289G 25G 251G 9% /var/named/chroot/etc/named.root.key
The following find run from /usr will locate symlinks to /etc that you need to remove:
find ./ -mount -lname /etc/\*
Upgraded another server in the week and I can confirm:
find ./ -mount -lname /etc/\* -delete
sorts the problem.
I would NOT advise anyone randomly perform these commands. It's a great way to break your OS. However, all of the comments appear to aim roughly into the ballpark. I don't mean to be negative. Here is a method which can pin-point "your" issue when receiving this error, as there seems to be a few.
The idea is to use dracut as a simulation & then read the logs when it fails in the same way the script does from the installation dvd. This process will not damage your image. You're expecting it to fail.
1) sudo yum update dracut
2) sudo dracut --force --add convertfs
3) uname -r
4) sudo init 6 ### Reboot & select kernel (grub)from step 3
5) sudo dmesg|grep -i dracut
The last line should say something like "failed for some reason". Just above, it should say what the issue is.
What stopped mine was a dead simlink /usr/lib/dbus-1.
6) Find the file & delete it. In the dracut log it describes the file path as /sysroot/path/to/file. Be aware of that when deleting your file. :-)
7) Upgrade Fedora 16 to 17 from the DVD as suggested by the Fedora people. Here is a read if you still want to use Yum.
This message is a reminder that Fedora 17 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 17. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora
'version' of '17'.
Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version'
to a later Fedora version prior to Fedora 17's end of life.
Bug Reporter: Thank you for reporting this issue and we are sorry that
we may not be able to fix it before Fedora 17 is end of life. If you
would still like to see this bug fixed and are able to reproduce it
against a later version of Fedora, you are encouraged change the
'version' to a later Fedora version prior to Fedora 17's end of life.
Although we aim to fix as many bugs as possible during every release's
lifetime, sometimes those efforts are overtaken by events. Often a
more recent Fedora release includes newer upstream software that fixes
bugs or makes them obsolete.
Fedora 17 changed to end-of-life (EOL) status on 2013-07-30. Fedora 17 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.
If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version.
Thank you for reporting this bug and we are sorry it could not be fixed.