Until recently, I was able to boot into 12.04 LTS without any problems. Now, after the splash screen (the one that says Ubuntu with the 5 dots below it), I get a plain black screen, and nothing happens. The backlight is on (I can tell because I can switch it off using function keys on the laptop).
I tried booting into recovery mode. From there, I selected "enable networking". I see a lot of text messages on the screen, the last of which is something like:
fsck from util-linux 2.20.1
/dev/sda7: clean 503648/5873664 files, 16228870/2348972 blocks
After that, nothing happens. In desperation, I hit CTRL+C and see this:
The disk drive for / is not ready yet or is not present
While this doesn't sound good, after a few seconds Ubuntu boots and I'm able to use it normally. What's going on here, and how can I get Ubuntu to boot properly without having to go through the recovery mode?
Below are some relevant files:
/etc/fstab:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc nodev,noexec,nosuid 0 0
mtpfs /mnt/nexus7 fuse user,noauto,allow_other,defaults 0 0
# / was on /dev/sda7 during installation
UUID=d67a32d7-aeb2-499c-b854-5a5588ab44d0 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda6 during installation
UUID=37aa594e-d42b-4104-8ceb-8bf5f535fbbc none swap sw 0 0
/var/log/dmesg: http://pastebin.com/jG6pj6vs
The interesting part of dmesg appears to be around the 40 second mark (line 929) -- this is approximately the time that I hit CTRL+C:
[ 41.431376] init: friendly-recovery main process (1136) killed by INT signal
[ 41.832821] lp: driver loaded but no devices found
[ 53.659693] Adding 4028412k swap on /dev/sda6. Priority:-1 extents:1 across:4028412k
[ 54.017887] EXT4-fs (sda7): re-mounted. Opts: errors=remount-ro
[ 54.123538] init: udev-fallback-graphics main process (2043) terminated with status 1
[ 54.266949] init: failsafe main process (2086) killed by TERM signal
[ 54.313791] init: friendly-recovery post-stop process (1323) terminated with status 1
It seems like some processes are hanging and preventing the normal boot. Perhaps when I hit CTRL+C, those processes are killed and boot can continue. How can I find out what those processes are, given their IDs (the numbers in the parentheses)?
/var/log/boot.log:
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Running /scripts/local-bottom ... done.
done.
Begin: Running /scripts/init-bottom ... done.
fsck from util-linux 2.20.1
/dev/sda7: clean, 503673/5873664 files, 16231307/23489792 blocks
initctl: Event failed
modem-manager[2121]: <info> ModemManager (version 0.5.2.0) starting...
modem-manager[2121]: <info> Loaded plugin Nokia
modem-manager[2121]: <info> Loaded plugin ZTE
modem-manager[2121]: <info> Loaded plugin Huawei
modem-manager[2121]: <info> Loaded plugin Sierra
modem-manager[2121]: <info> Loaded plugin MotoC
modem-manager[2121]: <info> Loaded plugin SimTech
modem-manager[2121]: <info> Loaded plugin Wavecom
modem-manager[2121]: <info> Loaded plugin X22X
modem-manager[2121]: <info> Loaded plugin Novatel
modem-manager[2121]: <info> Loaded plugin Option High-Speed
modem-manager[2121]: <info> Loaded plugin Option
modem-manager[2121]: <info> Loaded plugin Samsung
modem-manager[2121]: <info> Loaded plugin Linktop
modem-manager[2121]: <info> Loaded plugin Ericsson MBM
modem-manager[2121]: <info> Loaded plugin Gobi
modem-manager[2121]: <info> Loaded plugin Generic
modem-manager[2121]: <info> Loaded plugin Longcheer
modem-manager[2121]: <info> Loaded plugin AnyData
* Starting system logging daemon [ OK ]
* Starting mDNS/DNS-SD daemon [ OK ]
Skipping profile in /etc/apparmor.d/disable: usr.bin.firefox
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
* Starting bluetooth daemon [ OK ]
* Starting AppArmor profiles [ OK ]
* Setting sensors limits [ OK ]
* Stopping System V initialisation compatibility [ OK ]
* Starting System V runlevel compatibility [ OK ]
* Starting crash report submission daemon [ OK ]
* Starting LightDM Display Manager [ OK ]
* Starting anac(h)ronistic cron [ OK ]
* Starting save kernel messages [ OK ]
* Starting automatic crash report generation [ OK ]
* Starting ACPI daemon [ OK ]
* Starting regular background program processing daemon [ OK ]
* Starting deferred execution scheduler [ OK ]
* Starting CPU interrupts balancing daemon [ OK ]
* Stopping save kernel messages [ OK ]
I forced a file system check on boot (http://ubuntuforums.org/showthread.php?t=77771) and it did not find any errors. What else could be wrong?
EDIT
I tried booting into older versions of the kernel. I have 2 other versions accessible from the boot loader:
- 3.2.0-31-generic
- 3.2.0-29-generic
3.2.0-31 doesn't work (same problem), but 3.2.0-29 works! Does this mean that there is a bug in the kernel?
EDIT
I followed the instructions at https://wiki.ubuntu.com/DebuggingKernelBoot to diagnose my problem. I updated the boot options as instructed:
- removed quiet, splash, $vt_handoff
- replaced $linux_gfx_mode with text
The system booted correctly! After more fiddling, I determined that the quiet, splash and $vt_handoff are irrelevant -- replacing $linux_gfx_mode with text is what's fixing the problem.
What's going on here? Where exactly does the bug live?
