Last night I was working with some Localized applications in Tamil Language in Ubuntu 9.04.
For that I had changed my keyboard settings to ta-IN using System > Preferences > Keyboard, and choose Tamil India. For the first time, I forgot to switch back to the English Keyboard before I log out.
Today, at the log in screen, I tried to enter my user name. To my bad, it was entering Tamil characters, which made logging in impossible. I changed the language there at the log-in screen, but it just changed the log-in screen interface language, not the input language.
I tried to recover using CD, and failed. Similarly when I tried to go to the console using Alt+Ctrl+F1, still the keyboard input to the username field must have been in Tamil, thus giving diamonds instead of the letters. Finally in the Grub, I choose somewhat earlier version of gnome-terminal before the update to the later Ubuntu version, as the log in option, where I was unable to log in, yet still able to log in using the console (Alt+Ctrl+F1), as the keyboard was still EN-US there.
Then after some serious examination of the web and bugging my pals, I found the solution.
I found the two parameters were set to refer to India and Tamil.
sudo vi /etc/default/console-setup
I modified them to refer to EN-US.
XKBLAYOUT = "us"
XKBVARIANT = "en"
After saving the console-setup file, I restarted the computer. Then I was able to type in EN-US, and I successfully logged in.
Now I will make sure my keyboard settings is not Tamil or Arabic before I log out, to prevent this issue repeating again. Seems sticking to EN is mostly the safe.
[Update as on Nov 2009]
Since Ubuntu Karmic Koala has the input language and keyboard as a setting option in the log in window itself, it seems this issue has been fixed for Karmic Koala.