According to Documentation/kernel-parameters.txt, the loglevel=0 kernel cmdline argument should silence all kernel messages. It'd be better to use at least 3 or 4, though, to still allow critical errors to be displayed.
loglevel= All Kernel Messages with a loglevel smaller than the
console loglevel will be printed to the console. It can
also be changed with klogd or other programs. The
loglevels are defined as follows:
0 (KERN_EMERG) system is unusable
1 (KERN_ALERT) action must be taken immediately
2 (KERN_CRIT) critical conditions
3 (KERN_ERR) error conditions
4 (KERN_WARNING) warning conditions
5 (KERN_NOTICE) normal but significant condition
6 (KERN_INFO) informational
7 (KERN_DEBUG) debug-level messages
As for startx, normal redirection should work:
startx >/dev/null 2>&1