Partition can be ${dev}$num or ${dev}p$num --- grub-0.97/lib/device.c +++ grub-0.97/lib/device.c @@ -867,6 +867,13 @@ fd = open (dev, O_RDWR); if (fd < 0) { + strcpy (dev, map[drive]); + sprintf (dev + strlen(dev), "p%d", ((partition >> 16) & 0xFF) + 1); + fd = open (dev, O_RDWR); + } + + if (fd < 0) + { errnum = ERR_NO_PART; return 0; }