diff -ur grub-0.96.old/lib/device.c grub-0.96/lib/device.c --- grub-0.96.old/lib/device.c 2004-05-23 18:34:29.000000000 +0200 +++ grub-0.96/lib/device.c 2005-05-20 15:16:39.314511820 +0200 @@ -407,6 +407,12 @@ { sprintf (name, "/dev/ataraid/d%c", unit + '0'); } + +static void +get_i2o_disk_name (char *name, int unit) +{ + sprintf (name, "/dev/i2o/hd%c", unit + 'a'); +} #endif /* Check if DEVICE can be read. If an error occurs, return zero, @@ -798,6 +804,26 @@ } } } + + /* I2O disks. */ + for (i = 0; i < 8; i++) + { + char name[16]; + + get_i2o_disk_name (name, i); + if (check_device (name)) + { + (*map)[num_hd + 0x80] = strdup (name); + assert ((*map)[num_hd + 0x80]); + + /* If the device map file is opened, write the map. */ + if (fp) + fprintf (fp, "(hd%d)\t%s\n", num_hd, name); + + num_hd++; + } + } + #endif /* __linux__ */ /* OK, close the device map file if opened. */