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 'http://mirrors.mageia.org/api/mageia.4.x86_64.list' # 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.