Recovering from a failed Mageia 4 upgrade

I use Mageia on three machines (one virtual, a desktop and a server). Since Mageia 4 came out earlier this month, I have been toying with the idea of upgrading the least used machine (the laptop which had Mageia 3). So yesterday evening (Indian Standard Time), I started the upgrade. It was quite straightforward.

      $ su -
      # urpmi --auto-update -a
      # mgaapplet-upgrade-helper --new_distro_version=4

This kicked off a long analysis followed by adding the media for the Mageia 4 repositories. It said it had to update some 1432 packages and after I accepted it, I left the laptop alone with only some periodic checks on the progress. On one such check I realized that there was an error about not finding the distribution mirror. I was puzzled and a quick check revealed that for some reason the WiFi card was down and the Internet was inaccessible. I don't know whether it was the upgrade that was the cause of this but never mind. The installation was well along with some 1011 packages already installed so I just restarted the network.

	# service network restart

To my surprise the install did not continue (even though I had been careful not to kill the install process). It instead claimed that Mageia 4 install was complete and that the computer should be rebooted. I was not taken in by this bold (and almost certainly false) statement but I thought that perhaps all the most critical files were updated and the software will continue the update after a reboot. I must mention here that I deliberately did not re-execute the mgaapplet command since I was unsure if that would kick-off the install from the beginning. Anyway, after a reboot, everything came up nicely with the text scrolling to say that this was Mageia 4 though the wallpaper had not changed. What was a nasty surprise however was that after login, the desktop did not have the LXDE panel at the bottom (I use LXDE since this is a low-end laptop). Moreover Alt-F2 did nothing. I tried to browse the filesystem (using the right-click on the desktop) but could not find a single terminal. And I could not logout! So I killed the X-server and got back to the GUI login-screen. From there I rebooted and on the grub menu appended the text level 3 to the command line arguments to the kernel. This booted the system into runlevel 3 (CLI with multiuser and networking enabled).

Unfortunately, the WiFi was not working. So I dragged the laptop to a hardwired port and the network came up. urpmi claimed that there was no media at all. So, the following updated the entire system, removed leftover Mageia 3 packages and brought everything to a working state once again.

      $ su -
      # urpmi.removemedia -a
      # urpmi.addmedia --distrib --mirrorlist ''
      # urpmi --auto-update -a

Overall I was pleased how quickly I was able to get my system back up even though it looked for a bit as though I would have to download the ISO and start everything from scratch. Still, I wish Linux distribution upgrades had more resiliency built in. In this respect, Microsoft Windows and OS X probably do a little better.