Giuseppe Iuculano ha scritto: > Asier ha scritto: >> El Viernes 17 Abril 2009, Giuseppe Iuculano escribió: >>> dmraid -r -vvv >>> dmraid -s -vv >> Here it goes: > > Hi, > > Could you please try the attached dmraid-activate script with dmraid rc15 > please? > > Restore /etc/udev/rules.d/85_dmraid.rules and > /usr/share/initramfs-tools/hooks/dmraid (in case you have the modified script > for debugging) and: > > cat dmraid-activate > /sbin/dmraid-activate > update-initramfs -u -k `uname -r` > > > Cheers, > Giuseppe. >
Ops, forgot to attach the file :) Cheers, Giuseppe
#!/bin/sh # # dmraid-activate: Script to reformat the output of dmraid to be useful with # udev. # # (c) 2008 Canonical Ltd. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. # Arguments: $1 = Name of array you want activated. activate_array () { Raid_Setinfo=$(dmraid -i -si "$1") if [ -z "$Raid_Setinfo" ]; then log_error "Cannot retrieve RAID set information for $1" return 1 fi Raid_Type=$(dmraid -i -si -ct "$1") Raid_Nodevs=$(dmraid -i -si -cd "$1") case "$Raid_Type" in stripe) if [ "$Raid_Nodevs" -lt 2 ]; then if [ -n "$Degraded" ]; then log_error "Cannot bring up a RAID0 array in degraded mode, not all devices present." fi return 2 fi ;; mirror) if [ "$Raid_Nodevs" -lt 2 ]; then if [ -z "$Degraded" ]; then log_error "Raid set $Raid_Name is degraded. Not activating" return 2 else log_warning "Activating $Raid_Name in degraded mode" Return_Val=3 fi fi ;; raid5_*) modprobe -q dm_raid45 if [ "$Raid_Nodevs" -lt 3 ]; then if [ -z "$Degraded" ]; then log_error "Raid set $Raid_Name is degraded. Not activating" return 2 else log_warning "Activating $Raid_Name in degraded mode" Return_Val=3 fi fi ;; esac # At this point we have the required number of devs, or the user wants the # array brought up in degraded mode, except in the case of striped arrays. dmraid -i -ay -Z "$1" return $Return_Val } log_warning() { if type logger > /dev/null ; then logger -t dmraid-activate "WARNING: $1" else echo "dmraid-activate: WARNING: $1" fi } log_error() { if type logger > /dev/null ; then logger -t dmraid-activate "ERROR: $1" else echo "dmraid-activate: ERROR: $1" fi } modprobe -q dm_mod if [ -z "$1" ] || [ "$1" = "--degraded" ] && [ "$#" -lt 2 ]; then echo "Node name not specified." >&2 exit 1 fi if [ "$1" = "--degraded" ]; then Degraded=1 Node_Name=$2 else Node_Name=$1 fi Raid_Name=$(dmraid -i -r -cr /dev/$Node_Name | grep -vi "No RAID disks" | grep -vi "formats discovered") if [ -z "$Raid_Name" ]; then exit 0 fi # We need a special case for isw arrays, since it is possible to have several # subsets of a RAID group, of varying RAID types. case "$Raid_Name" in isw_*) Isw_Group_Name=$(echo "$Raid_Name" | cut -f 1-2 -d _) Isw_Subsets=$(dmraid -i -n "/dev/$Node_Name" | grep volume | sed 's/.*volume: " *\(.*\)"$/\1/') for isw_subset in $Isw_Subsets do activate_array "${Isw_Group_Name}_${isw_subset}" done break ;; *) activate_array "$Raid_Name" break ;; esac exit $Return_Val
signature.asc
Description: OpenPGP digital signature