Hi, Attached is an updated version of the multipath support patch for grub-legacy. It applies cleanly to 0.97-47lenny2. It's the only missing piece for getting multipath support to work in lenny's d-i: http://wiki.debian.org/DebianInstaller/MultipathSupport Cheers, -- Guido
diff --git a/debian/patches/00list b/debian/patches/00list index 8b7b969..42337cc 100644 --- a/debian/patches/00list +++ b/debian/patches/00list @@ -25,6 +25,7 @@ intelmac.diff crossreference_manpages.diff ext3_256byte_inode.diff use_grub-probe_in_grub-install.diff +multipath.diff # We aren't building amd64 binaries, see #244498 #fix_amd64_compile.diff diff --git a/debian/patches/multipath.diff b/debian/patches/multipath.diff new file mode 100644 index 0000000..040a9a5 --- /dev/null +++ b/debian/patches/multipath.diff @@ -0,0 +1,54 @@ +--- a/lib/device.c.org 2009-01-29 13:31:54.000000000 +0100 ++++ b/lib/device.c 2009-01-29 13:38:48.000000000 +0100 +@@ -567,6 +567,12 @@ + } + + static void ++get_mpath_disk_name (char *name, int path) ++{ ++ sprintf (name, "/dev/mapper/mpath%d", path); ++} ++ ++static void + get_ataraid_disk_name (char *name, int unit) + { + sprintf (name, "/dev/ataraid/d%c", unit + '0'); +@@ -1083,6 +1089,29 @@ + } + } + } ++ ++ /* This is for multipath with userfriendly_names=yes and the default udev ++ rules: /dev/mapper/mpath<path>-part<partition> */ ++ { ++ int path; ++ ++ for (path= 0; path < 9; path++) ++ { ++ char name[24]; ++ ++ get_mpath_disk_name (name, path); ++ 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. */ +@@ -1151,6 +1180,8 @@ + (strncmp (dev, "/dev/cciss/", 11) == 0) || + (strncmp (dev, "/dev/rd/", 8) == 0)) + strcpy (dev + strlen(dev), "p"); ++ else if (strncmp (dev, "/dev/mapper/mpath", 17) == 0) ++ strcpy (dev + strlen(dev), "-part"); + } + sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1); +