(hdD,P)
means "hard drive (hence hd) device → device number D
→ partition number P
". GRUB numbers devices (inside their class) and partitions (inside a device) starting from 0.
In your entry for the initrd image you've got this right: (hd0,0)
selects the first partition of the first hard drive device, but in your entry for the kernel you for some reason dropped the partition number, and (hd0,)
has no sense ((hd0)
does but it refers to the whole device which you don't want if your device has partitions).
So I'd say the fix is to change
kernel (hd0,)/vmlinuz
to
kernel (hd0,0)/vmlinuz
Note that this change should fix the situation for volume C:
. If you want this to apply to volume E:
you have to deduce which hard drive and partision number on it the volume E:
uses and fix those (hd0,0)
to read something like (hd0,2)
.
To get this information, the easiest (probably) is to use the diskpart
Windows tool:
- Start the command prompt,
cmd.exe
, (possibly with elevated privileges—I don't know for sure).
There, run
diskpart
it presents you with its own shell, where you execute its commands. At any time you might enter help
and hit the Return key to get help.
The next steps are carried out in the diskpart
's shell.
Run
list disk
to get the numbered list of disks attached to the computer. They are conveniently indexed starting with 0—just what GRUB uses.
Run
select disk N
where N
is the number of disk you're interested in to change the tool's context to that disk.
Run
list partition
to get the list of partisions of the selected disk. Note that the partitions are numbered from 1.
Run
select partition M
to change the tool's context to the partition number M
of the selected disk.
Run
detail partition
to get the detailed information about the selected partition, including the volume letter it's attached as.
Rinse and repeat until you've found the partition for your volume E:
. When you're done, you have two numbers to construct the (hdD,P)
spec.
You can quit diskpart
by entering exit
.