Ubuntu – Upgrading Xubuntu from 14.04 to 16.04.1 hangs at kernel panic

14.0416.04systemdupgradexubuntu

I was running Xubuntu 14.04 LTS, and received 16.04.1 upgrade notify recently, so I did an upgrade.

During the upgrade process some error prompted that "init" does not found or something, but I didn't pay much attention (plus it only gives me a "close" button).

The first time upgrade process tried to reboot, it stops at a blank screen with a non-blinking cursor on upper left. After waiting for quite some time, I did a hard reboot, and then my system hangs at here:

enter image description here

Target filesystem doesn't have requested /sbin/init

Kernel panic – not syncing: Attempted to kill init! exitcode=0x00007f00

In GRUB's advance menu I can choose these entries:

  • default, which actually is systemd;

  • systemd;

  • upstart, which boots into Xubuntu's GUI loading screen, but just that. Pressing Esc and I can see that it stops at

    Starting cups-browsed – Bonjour remote printer browsing daemon [ OK ]

    NumLock works, cursor blinking, but nothing else;

  • recovery_mode, which boots exactly like systemd

Choosing older kernels in GRUB's advance option doesn't make any better: for systemd or recovery-mode they didn't make any difference; for upstart they stops at a black-and-white screen loading 15.10 (which I never installed).

I've read question #651974, question #92946, but it doesn't seem to help.

Someone already posted a similar question with no answer (currently).

Anyway to fix this?

Best Answer

OK, I made my computer back to life again, but I don't really understand "how", so this is more of a follow up, but I think I'll post it anyway in case someone else encounter similar situation and want a hint.

Short story:

I used a Live USB to boot, followed this instruction to get into command line, dpkg --configure -a and apt-get autoremove, reboot into upstart mode, (sort of) finished the upgrade process.

Long story:

When I did the distribution upgrade I found my Internet connection was quite slow, so I mindlessly switched server to cn99 (China), which I think is where the damage came from.

The upgrade is fast, but when it went into first reboot (or I think it was the first reboot), the error in question appears.

Luckily I have another computer around, so I made a Live USB and used it to boot. It doesn't seem to work at first, showing errors like:

Undef symbol FAIL: __syslinux_shuffler_size
Failed to load libcom32.c32
Failed to load COM32 file gfxboot.c32
boot:

Following this solution, I pressed Tab, enter "live" and successfully booted into Xubuntu Live.

Then I followed this instruction:

Press Ctrl-Alt-F1

sudo mount /dev/sda1 /mnt

sudo mount --bind /dev /mnt/dev

sudo mount --bind /proc /mnt/proc

sudo mount --bind /sys /mnt/sys

sudo chroot /mnt

apt update

This was when I was told that my repository was corrupted and need to run dpkg --configure -a to correct it.
I also run apt-get autoremove since some other Google results suggested to do so.

Then I reboot and tried default (systemd) first, still failed, but upstart work.
I then check for software update, nothing new, and for some reason (thank god) I switch server back to main, and loads of update appears, and even a "Partial upgrade" window appeared.

I did the Partial upgrade, and at the end of installing it still shows error and just stopped, but the system was responsive, so I reboot (skipping the "Cleaning up" part) using systemd and this time it worked.

There's still some minor flaws in my system, but at least it work again.

Related Question