Text-mode runlevel without altering init scripts
If you want occasional access to a text-mode or other custom runlevel without altering the stock ubuntu /etc/event.d scripts or grub menu.lst file, here is a simple way to add it as another recovery menu choice.
As root, copy this file to /usr/share/recovery-mode/options and make it executable. I named the file "textmode" but you can use any name you like.
/usr/share/recovery-mode/options/textmode#!/bin/sh if [ "$1" = "test" ]; then echo "Runlevel 3: Text mode" exit 0 fi /sbin/telinit 3
To copy and set permissions from the command line, you can use the commands:
sudo cp textmode /usr/share/recovery-mode/options
sudo chmod +x /usr/share/recovery-mode/options/textmode
Now when you select "Recovery Mode" from your grub boot menu, the recovery menu will present this choice along with the others. You still need to configure runlevel 3 for a text login and/or any other custom settings you want; in a default installation there is no difference between runlevels 2 through 5. The main change is to not run /etc/init.d/gdm. You can rename the link in /etc/rc3.d like so:
cd /etc/rc3.d
sudo mv S30gdm K01gdm
There are other services that need not run in text mode, and probably some you don't need at all on your system. Take a look at modifying runlevels for more info.
Note: Some older versions of ubuntu do not use a recovery menu. Instead, like most other distributions, they simply boot to a root shell when recovery mode is selected at boot. In that case, use the command
telinit 3 to change to runlevel 3