Troubleshooting
Debugging the boot process To get a Stage 1 shell (i.e., a shell in the initial ramdisk), add debug1 to the kernel command line. The shell gets started before anything useful has been done. That is, no modules have been loaded and no file systems have been mounted, except for /proc and /sys. To get a Stage 2 shell (i.e., a shell in the actual root file system), add debug2 to the kernel command line. This shell is started right after stage 1 calls the stage 2 init script, so the root file system is there but no services have been started.
Safe mode If the hardware autodetection (in upstart-jobs/hardware-scan) causes problems, add safemode to the kernel command line. This will disable auto-loading of modules for your PCI devices. However, you will probably need to explicitly add modules to to get network support etc.
Maintenance mode You can go to maintenance mode by doing $ shutdown now This will eventually give you a single-user root shell. To get out of maintenance mode, do $ initctl emit startup