It is relatively easy to boot GNU/Linux from GRUB, because it somewhat resembles to boot a Multiboot-compliant OS.
search --set=root --file /vmlinuz
or similar may help you
(see search).
grub> linux /vmlinuz root=/dev/sda1
If you need to specify some kernel parameters, just append them to the command. For example, to set acpi to ‘off’, do this:
grub> linux /vmlinuz root=/dev/sda1 acpi=off
See the documentation in the Linux source tree for complete information on the available options.
With linux GRUB uses 32-bit protocol. Some BIOS services like APM or EDD aren't available with this protocol. In this case you need to use linux16
grub> linux16 /vmlinuz root=/dev/sda1 acpi=off
grub> initrd /initrd
If you used linux16 you need to use initrd16:
grub> initrd16 /initrd
Caution: If you use an initrd and specify the ‘mem=’ option to the kernel to let it use less than actual memory size, you will also have to specify the same memory size to GRUB. To let GRUB know the size, run the command uppermem before loading the kernel. See uppermem, for more information.