I created a mini-linux system based on BuildRoot. Therefore I created an image file which was partitioned and given an ext2 filesystem.

Then I run the following grub commands in order to be able to boot the mini-system via QEMU:
grub --device-map=/dev/null
device (hd0) /dev/loop1
geometry (hd0) 2 255 63
root (hd0,0)
setup (hd0)
This is done without any error and everything should be fine.
Now I create the boot/grub/menu.lst file on the image with the following lines:
title=VMLinux VM
root (hd0,0)
kernel /boot/vmlinuz root=/dev/sda1
initrd /linuxrc
Booting the system via QEMU brings up the following error:
Filename must be either an absolute filename or blocklist
What irritates me is this:
If I change the title in the menu.lst grub always recognizes these changes and alters the boot prompt accordingly. Therefore I suppose that grub has access to the partition.
If I run the commands find /boot/vmlinuz and blocklist /boot/vmlinuz from the grub command line grub finds the kernel file on (hd0,0) and it also brings up a list of block addresses for the kernel file.
But why is grub unable to load the kernel if the file can be found on the correct partition??

I also tried the following lines in the menu.lst - unfortunately resulting in the same error message:
kernel (hd0,0)/boot/vmlinuz root=/dev/sda1
kernel (hd0,0)+17410 root=/dev/sda1
The block address used is the one grub found with the blocklist command.

At this point I have no idea what is wrong with the configuration. Please help.