[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: problems detecting partition map on software RAID
From: |
Sam Morris |
Subject: |
Re: problems detecting partition map on software RAID |
Date: |
Sun, 20 May 2007 14:53:47 +0100 |
reopen 423022
thanks
Hm, this isn't quite fixed yet... users of software RAID still won't be
able to boot up, as the generated core.img will not contain the 'raid'
module.
In fact, I get the error message 'you need to load the kernel first'
which doesn't make much sense... I would have expected something more
along the lines of 'No such device: (md0)'.
Anyway, here's what I came up with for grub-install. It's ugly, but
that's shell scripting for you. ;)
# Then the partition map module.
partmap_module=`$grub_probe --target=partmap --device-map=${device_map}
${grubdir}`
if test "x$partmap_module" = x -a "x$modules" = x; then
grub_device="$($grub_probe --target=device
--device-map=${device_map} ${grubdir})"
dev="$(stat -c %t:%T "$grub_device")"
# Ugh, shell scripting is crap! Can't use a subshell because it
can't
# update the value of partmap_module. Better hope there are never
any
# kobjects that contain whitespace in their name...
for ko in $(find /sys/block -name dev -exec dirname {} \;); do
if test "$(cat "$ko/dev")" = "$dev"; then
partmap_module='pc gpt'
case "$ko" in
/sys/block/md[0-9])
partmap_module="$partmap_module raid"
;;
# Partitionable arrays are apparantly detected by
grub-probe, so
# no need to check for them here.
#/sys/block/md_d[0-9])
# ;;
/sys/block/dm-[0-9])
# We should really look through the output of
'lvdisplay -c'
# at this point, searching for a LVM logical volume
which
# matches the detected device's major/minor numbers.
# If that fails then we know it's not LVM; if GRUB later
# grows support for other device-mapper mappings then
# the output of 'dmsetup status' could be used here.
echo "Assuming that the device-mapper device '$ko' is
part" 1>&2
echo "of an LVM logical volume. If this is not the
case," 1>&2
echo "specify the correct modules with the option
\`--modules'." 1>&2
partmap_module="$partmap_module lvm"
;;
*)
echo "I don't know which modules GRUB needs to use to
access a" 1>&2
echo "device of type '$ko'." 1>&2
unset partmap_module
esac
break
fi
done
fi
if test "x$partmap_module" = x -a "x$modules" = x; then
echo "Auto-detection of a partition map module failed." 1>&2
echo "Please specify the module with the option \`--modules'
explicitly." 1>&2
exit 1
fi
Maybe it would be easier to simply include 'raid' and 'lvm' in the
fallback list...
--
Sam Morris
http://robots.org.uk/
PGP key id 1024D/5EA01078
3412 EA18 1277 354B 991B C869 B219 7FDB 5EA0 1078
signature.asc
Description: This is a digitally signed message part
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: problems detecting partition map on software RAID,
Sam Morris <=