However, a file type mismatch where the filesystem contains a plain file and the database records a device node is harmless; this is how pseudo emulates creation of device nodes.
We then loop, rescanning the SCSI bus (by echoing a command to a special file in the /proc pseudo-filesystem and calling devfsd) until the root device (/dev/sda1 in my case) is present.