When I booted into Ubuntu, it got stuck at the splash screen. However, I was able to the console, meaning the system had started, but lightdm had not. Had I not started lightdm manually from the console, it would have been stuck at the splash screen forever.

This is my /var/log/boot.log:
Code:
fsck from util-linux 2.20.1 
Ubuntu: clean, 379898/6553600 files, 10754588/26214400 blocks 
modem-manager[1093]: <info>  ModemManager (version 0.5.2.0) starting... 
  
modem-manager[1093]: <info>  Loaded plugin Sierra 
  
modem-manager[1093]: <info>  Loaded plugin Linktop 
  
modem-manager[1093]: <info>  Loaded plugin MotoC 
  
modem-manager[1093]: <info>  Loaded plugin Novatel 
  
modem-manager[1093]: <info>  Loaded plugin Samsung 
  
modem-manager[1093]: <info>  Loaded plugin Option 
  
modem-manager[1093]: <info>  Loaded plugin Option High-Speed 
  
modem-manager[1093]: <info>  Loaded plugin X22X 
  
modem-manager[1093]: <info>  Loaded plugin Generic 
  
modem-manager[1093]: <info>  Loaded plugin Ericsson MBM 
  
modem-manager[1093]: <info>  Loaded plugin Longcheer 
  
modem-manager[1093]: <info>  Loaded plugin Huawei 
  
modem-manager[1093]: <info>  Loaded plugin ZTE 
  
modem-manager[1093]: <info>  Loaded plugin Wavecom 
  
modem-manager[1093]: <info>  Loaded plugin Gobi 
  
modem-manager[1093]: <info>  Loaded plugin SimTech 
  
modem-manager[1093]: <info>  Loaded plugin Nokia 
  
modem-manager[1093]: <info>  Loaded plugin AnyData 
  
Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox 
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd 
 * Starting mDNS/DNS-SD daemon[ OK ] 
 * Stopping Mount filesystems on boot[ OK ] 
 * Starting AppArmor profiles         [ OK ] 
Rather than invoking init scripts through /etc/init.d, use the service(8) 
utility, e.g. service S20lightdm start 
 * Stopping System V initialisation compatibility[ OK ] 
 * Starting System V runlevel compatibility[ OK ] 
 * Starting automatic crash report generation[ OK ] 
 * Starting restore sound card(s') mixer state(s)[ OK ] 
 * Starting ACPI daemon[ OK ] 
 * Starting save kernel messages[ OK ] 
 * Starting anac(h)ronistic cron[ OK ] 
initctl: Unknown job: S20lightdm 
 
Since the script you are attempting to invoke has been converted to an 
Upstart job, you may also use the start(8) utility, e.g. start S20lightdm 
 * Starting CPU interrupts balancing daemon[ OK ] 
 * Starting crash report submission daemon[ OK ] 
speech-dispatcher disabled; edit /etc/default/speech-dispatcher 
 * Starting deferred execution scheduler[ OK ] 
 * Starting regular background program processing daemon[ OK ] 
 * Starting VirtualBox kernel modules         [ OK ] 
 * Stopping anac(h)ronistic cron[ OK ] 
 * Stopping save kernel messages[ OK ] 
 * Stopping restore sound card(s') mixer state(s)[ OK ] 
 * Starting the Winbind daemon winbind         [ OK ] 
saned disabled; edit /etc/default/saned 
 * Stopping cold plug devices[ OK ] 
 * Stopping log initial device creation[ OK ] 
 * Starting load fallback graphics devices[ OK ] 
 * Starting configure virtual network devices[ OK ] 
 * Stopping load fallback graphics devices[ OK ] 
 * Stopping configure virtual network devices[ OK ] 
 * Starting configure network device security[ OK ] 
 * Starting GNOME Display Manager[ OK ] 
 * Starting Userspace bootsplash[ OK ] 
 * Starting anac(h)ronistic cron[ OK ] 
 * Stopping anac(h)ronistic cron[ OK ] 
 * Stopping GNOME Display Manager[ OK ] 
 * Starting LightDM Display Manager[ OK ] 
 * Stopping LightDM Display Manager[ OK ] 
 * Stopping Userspace bootsplash[ OK ] 
 * Checking battery state...         [ OK ] 
 * Stopping System V runlevel compatibility[ OK ] 
 * Starting CUPS printing spooler/server[ OK ] 
 * Starting Mount network filesystems[ OK ] 
 * Stopping Mount network filesystems[ OK ]
The bold messages show lightdm starting but then stopping again. After that is says it's stopping the splash screen, which never happens.

Any ideas?

Don't remember why I looked, but I found out that all the lightdm scripts in /etc/rc*.d have the K20 prefix (which means "disabled", apparently). Maybe this has something to do with it?