Getting out of a broken Ubuntu 16.04 system after an upgrade

Hey just a short update with some quick notes about how I fixed my system after a broken upgrade from Ubuntu 15.10 to Ubuntu 16.04.

So here’s what happened. I own a System76 computer, which is supposed to be optimized for Linux and hardware compatible (which it is, and I thank the guys at System76 for that). Unfortunately, with the latest update, the latest series of Intel processors (Skylake, 6) coupled with Nvidia graphics is broken. All ending up in a broken installation with no way to remedy the problem.

Read this if you’re stuck:

Also read this:

After that, my solution was to install a new Ubuntu system alongside so I can operate on the fixes from that, rather than booting from a Live CD. I’ll use this system to fix my broken system. Important: during the installation of the second system, make sure to enable a Wireless/Ethernet connection and enable Updates during the installation. Otherwise, you’ll just end up with another broken system.

After installing, the trick is to mount your old Linux installation, chroot into it, and then complete the upgrades/installation of System76 and NVIDIA drivers. Simply put, the list of my commands was:

 # mkdir /mnt/yo
 # mount /dev/sda1 /mnt/yo
 # mount --bind /proc /mnt/yo/proc
 # mount --bind /dev /mnt/yo/dev
 # mount --bind /etc/resolv.conf /mnt/yo/etc/resolv.conf
 # mount --bind /tmp /mnt/yo/tmp
 # chroot /mnt/yo
 # apt dist-upgrade -f
 # apt-add-repository ppa:system76-dev/stable
 # sudo apt update
 # sudo apt install system76-driver
 # sudo apt install system76-driver-nvidia

And that is it. Hope it helps. The best thing I got out of this is a realization on how amazing chroot is for fixing broken installations.

EDIT: I also had to upgrade my Nvidia drivers to be able to run GNOME3.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s