I'm dual booting Windows 10 and Ubuntu 16.04 on an MSI GT72S. Of the kernels I have installed, I can only ever boot with 4.4.0-36, that too usually after a couple of tries. Anything more recent than that just gets stuck on boot, either at "Loading initial ramdisk" when selected from 'Advanced options' in the grub menu, or drops me to a 'busybox' prompt after a minute or so when selected as the default newest kernel.
I don't know if this is relevant, but I needed to add intel_idle.max_cstate=0 to grub to get anything usable at all.
How do I diagnose what is going wrong and fix it?