Ubuntu 16.10 fails to boot in MSI GP72 Laptop

Solution 1:

I was able to fix the problem shortly after posting the question, though I wanted to be sure before trying to post my answer. Note that no additional modifications to BIOS/UEFI settings were needed -aside from what I had already specified in the OP.


My Steps to Fix

The process was basically as follows:

  1. Add kernel arguments: nomodeset acpi_osi= to allow boot to proceed
    • Using acpi_osi="Linux" didn't work at first; it had to be empty as shown above¹
    • You can edit the boot commands by pressing e in the GRUB menu
  2. This allows a successful boot of 16.10 from the live USB.
    • In my case, I went for a re-install²
  3. After re-installing, I changed the kernel arguments back to pci=nomsi acpi_osi="Linux"

I'm not sure why nomodeset³ is necessary to get the system to boot at first, but not really necessary after the fact, which is probably why I forgot that I had probably done this back in July when I troubleshooted my original 16.04 LTS install. In any case, I hope this helps anyone else that might come across similar issues.


Making Changes Permanent

Currently, you have to edit the boot command every time, and that gets old fast. To update the boot command permanently, follow these steps:

  1. Open /etc/default/grub for editing, as root
    • sudo vim /etc/default/grub from the terminal
    • Change vim for your favorite editor (e.g. nano)
  2. Edit this line as follows and save the changes
    • Default: GRUB_CMDLINE_LINUX=""
    • Edited: GRUB_CMDLINE_LINUX="pci=nomsi acpi_osi=\"Linux\""
  3. Run the sudo update-grub2 command to generate an updated /boot/grub/grub.cfg file
    • Remember to not edit /boot/grub/grub.cfg directly

If you're wondering about the pci=nomsi argument, this prevents the kernel from filling up your drive (i.e. /var/log/syslog) with lots of bogus messages. This seems specific to the MSI laptop, as my desktop and a former HP laptop didn't need this workaround.


Footnotes

  1. If you don't change acpi_osi= back to acpi_osi="Linux", and you've installed the nvidia drivers package, login attempts will fail and you will see the greeter re-displayed. You can identify this because your password is correct (i.e. no error message about password mismatch) and, if you Ctrl + Alt + F1 into a terminal, you can log in successfully from there.
  2. If you have your /home directory in its own partition (as you should, IMHO), then you just make sure to mark the partition for use with the same file system (e.g. ext4) and mount point (i.e. /home), but without formatting it. I also re-entered the same account credentials during installation. Note that old accounts will still be in your /home directory, but may not show up if you use Settings >> Users, since that reads from /etc/passwd. You may need to sudo adduser ... to get them to show up correctly.
  3. See What does nomodeset do?

Solution 2:

I have same laptop, GP72-6qf .. have Ubuntu running on it now.

  1. Make sure you have the latest Bios and firmware updates. there was a new release in October.
  2. Set CPU C states: Disabled & Fast Boot: Disabled
  3. Edit the file /etc/default/grub and change

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    

    to

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi= acpi_backlight=none acpi=ht pci=nomsi"
    

    Then run sudo update-grub

  4. Update Ubuntu (sudo apt update && sudo apt upgrade).