Eu tive um problema semelhante que acabei resolvendo. Talvez isso também ajude você. Talvez seja interessante notar que o Ubuntu e suas variantes não usam os runlevels normais. Tudo o que você ler sobre o trabalho com runlevels, esteja preparado nada funciona.
Observe que isso só funciona se a sua área de trabalho estiver usando o gerenciador de exibição LightDM. Estou usando o Xubuntu, mas acho que o Ubunutus Unity é o mesmo.
1) Para prevenir que o login apareça, o DM responsável (LightDM deve ser modificado:
sudo nano /etc/init/lightdm.conf
start on ((filesystem
and runlevel [!06]
and runlevel [!03]
and started dbus
and plymouth-ready)
or runlevel PREVLEVEL=S)
2) Alterar o grub:
sudo nano /etc/default/grub
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="3"
# comment the next line to disable boot to graphical terminal
GRUB_TERMINAL=console
sudo update-grub
Isso deve ser feito. Eu não me importei em criar uma nova entrada no menu do grub, porque é realmente rápido iniciar a área de trabalho do x window. Eu acho que você está ciente de que o startx não funciona no Ubuntu.
sudo service lightdm start
Se você precisar disso, eu colocaria um alias
alias startx = sudo service lightdm start
Espero que funcione para você.