diff -Naur grub-0.5.96.1.orig/lib/device.c grub-0.5.96.1/lib/device.c --- grub-0.5.96.1.orig/lib/device.c Thu Jun 28 17:51:29 2001 +++ grub-0.5.96.1/lib/device.c Thu Jun 28 17:56:58 2001 @@ -624,7 +624,13 @@ if (strcmp (dev + strlen(dev) - 5, "/disc") == 0) strcpy (dev + strlen(dev) - 5, "/part"); } - sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); + + sprintf (dev + strlen(dev), "%s%d", + /* Compaq smart and others */ + (strncmp(dev, "/dev/ida/", 9) == 0 || + strncmp(dev, "/dev/cciss/", 11) == 0 || + strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "", + ((partition >> 16) & 0xFF) + 1); /* Open the partition. */ fd = open (dev, O_RDWR);