Bit hard to guess from here
but I would look for the location of the shell would be a good place to start, here is an example
root:x:0:0:root:/root:/bin/sh
(If you want to know what those fields mean do a "man 5 passwd")
Than make sure that the shell is "statically linked" by using the following command
file /bin/sh
Also check if the file /etc/nologin exists, if so remove it, however it existence should not prevent root from logging in..
If that al seems ok just have a look in /var/log
and see what the messages, syslog or authlog tell you
Good luck