First check the obvious thing: the GRUB config file.
After that is confirmed to be right, it is my belief that things like this are caused by one or more kernel modules not being set, or being set as modules and not available at boot time. Some things to consider in the kernel configuration that might apply to the current problem...
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev (CONFIG_DEVTMPFS=y)
SCSI device support --->
-*- SCSI device support (CONFIG_SCSI=y)
<*> SCSI disk support (CONFIG_BLK_DEV_SD=y)
<*> SCSI CDROM support (CONFIG_BLK_DEV_SR=y)
<*> SCSI generic support (CONFIG_CHR_DEV_SG=y)
<*> Serial ATA and Parallel ATA drivers ---> (CONFIG_ATA=y)
[*] ATA ACPI Support (CONFIG_ATA_ACPI=y)
<*> AHCI SATA support (CONFIG_SATA_AHCI=y)
[*] ATA SFF support (CONFIG_ATA_SFF=y)
[*] ATA BMDMA support (CONFIG_ATA_BMDMA=y)
<*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (CONFIG_ATA_PIIX=y)
<*> Marvell PATA support via legacy mode (CONFIG_PATA_MARVELL=y)
<*> Intel PATA old PIIX support (CONFIG_PATA_OLDPIIX=y)
<*> Intel SCH PATA support (CONFIG_PATA_SCH=y)
<*> Intel PATA MPIIX support (CONFIG_PATA_MPIIX=y)
<*> Generic ATA support (CONFIG_ATA_GENERIC=y)
...and/or others you may need.
File systems --->
<*> Ext3 journalling file system support (CONFIG_EXT3_FS=y)
<*> The Extended 4 (ext4) filesystem (CONFIG_EXT4_FS=y)
...and/or others you may need.
...and or others you may need.
P.S.: Remember, we're not using an initial ram disk, so lots of things required at boot time have to be compiled as built-in, not as modules. In other words, as[*] in menuconfig or as =y in the config file, and not as [M] in menuconfig or as =m in the config file.