Package: grub Version: 0.97-37 Followup-For: Bug #478547 Hi,
grub-install already contains a function getraid_mdadm() to resolve raid devices but it is never called. The attached patch makes use of that function instead of introducing its own. One difference between the two versions I did spot is the behaviour when mdadm is not installed: ---------------------------[ original patch] ------------------------- [EMAIL PROTECTED]:/tmp# ./grub-install '(hd0)' Searching for GRUB installation directory ... found: /boot/grub The file /boot/grub/stage1 not read correctly. ---------------------------------------------------------------------- -----------------------------[ this patch] --------------------------- [EMAIL PROTECTED]:/tmp# ./grub-install '(hd0)' ./grub-install: line 91: mdadm: command not found : mdadm -D /dev/md0 failed ---------------------------------------------------------------------- I also added a message "Using /dev/sdb1 from raid device /dev/md0" to show what is going on. sdb1 is the lowest numbered component in my raid 1 (see /proc/mdstat below). MfG Goswin -- Package-specific info: *********************** BEGIN /proc/mdstat Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] md0 : active raid1 sdc1[1] sdb1[0] 1003904 blocks [2/2] [UU] unused devices: <none> *********************** END /proc/mdstat *********************** BEGIN /boot/grub/device.map (hd0) /dev/sda (hd1) /dev/sdb (hd2) /dev/sde (hd3) /dev/sdf *********************** END /boot/grub/device.map -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.22.2-mrvn Locale: LANG=C, LC_CTYPE=de_DE (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/bash Versions of packages grub depends on: ii grub-common 1.96+20080426-1 GRand Unified Bootloader, version grub recommends no packages. -- no debconf information
--- /usr/sbin/grub-install 2008-04-26 19:47:18.000000000 +0200 +++ /tmp/grub-install 2008-04-30 20:35:54.007598750 +0200 @@ -129,7 +129,12 @@ # Convert an OS device to the corresponding GRUB drive. # This part is OS-specific. convert () { - GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${device_map} -t drive -d "$1" + case "$1" in + (/dev/md*) dev=`getraid_mdadm "$1"` || exit 1 + echo >&2 "Using $dev from raid device $1";; + (*) dev="$1";; + esac + GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${device_map} -t drive -d "$dev" } # Usage: resolve_symlink file