I searched for an hour and every problem about the rainbow screen is related to a boot problem. Not for me, I have no boot problem!
In my case, my raspberry pi 2 is working perfectly as a server, allowing ssh login within a minute after being powered, runs httpd and other services perfectly fine. I even have the console size in dmesg:
$ dmesg | grep Console
[ 0.000000] Console: colour dummy device 80x30
[ 11.370802] Console: switching to colour frame buffer device 53x21
$ dmesg | grep fb1
[ 11.380644] graphics fb1: flexfb frame buffer, 320x240, 150 KiB video memory, 4 KiB DMA buffer memory, fps=20, spi0.0 at 48 MHz
$ uname -a
Linux raspberrypi 3.12.21+ #1 PREEMPT Sat Jun 14 12:01:42 CEST 2014 armv6l GNU/Linux
$ cat /etc/issue
Raspbian GNU/Linux 7 \n \l
The only problem is that HDMI consistently only output a rainbow screen at full-screen size, while the intended purpose of the Pi is to serve as an X Terminal.
I've tried 3 different power supplies both advertised more than 2.5A and 3 different cables and 2 different monitors, as well as the boot_delay=1
option. Now it is a network box, with no capacity to display.