[Eisfair] E1: md0 wird nicht gemountet (nach Update-Orgie)

Marcus Roeckrath marcus.roeckrath at gmx.de
Mo Mai 9 13:16:02 CEST 2016


Hallo Thomas,

Thomas Bork wrote:

>> DEVICE /dev/[sh]d*
>> Hier wäre eine präzisere deklaration hilfreich:
>> DEVICE /dev/[sh]d*[0-9]
>> Womit z.B. sdd nicht zur Auswahl steht.
> 
> Wenn ich das so in der initramfs definiere, werden aber Raids nicht mehr
> gestartet, die - ob mit Absicht oder nicht - auf Raw-Datenträgern
> (unpartitionierten Datenträgern) erstellt wurden.
> 
> Aber einen Tod muss man wohl sterben...

Vielleicht kann man doch beides ermöglichen; hier dazu meine kleine Idee für
install.sh:

#!/bin/bash
while read mdline ; do
  if (echo "${mdline}" | grep -q "^md") ; then
# Folgende beiden Zeilen sind natürlich nur eine.
# Der sed ist gehakt, da ich da Probleme hatte (s. u.)
    raid=`echo "${mdline}" | cut -d " " -f 5- | sed -r 's#[[:digit:]+\]]##g'
| sed 's#\[##g'`
    raid="DEVICE /dev/"`echo "${raid}" | sed 's# # /dev/#g'`
    echo "${raid}"
  fi
done < /proc/mdstat

gibts folgendes auf meinem Raidsystem aus:

DEVICE /dev/sdb4 /dev/sda4
DEVICE /dev/sdb3 /dev/sda3
DEVICE /dev/sdb2 /dev/sda2
DEVICE /dev/sdb1 /dev/sda1

Dass könnte so in die mdadm.conf geschrieben werden, da diese mehere
DEVICE-Zeilen enthlten darf.

Reicht es die /proc/mdstat abzuklappern.

install.sh des Kernelpaketes liest mit mdadm --examine --scan die ARRAYS
aus.

Man könnte also obigem Skript auch mit

mdadm --examine --scan | awk '{ print $2}'

/dev/md1
/dev/md2
/dev/md3
/dev/md4

nur die hier gefundenen md's vorsetzen, aber das ist doch wohl egal, oder?

Noch eine Anmerkung vom sed im Skript:

Es geht darum den Output (Beispiel)

sda1[0] sdb1[1] sdc1[2]

nach

sda1 sdb1 sdc1

zu konvertieren.

Hatte zunächst

sed -r 's#[\[[:digit:]+\]]##g'

aber das läßt die öffnende eckige Klammer stehen; vielleicht hat jemand eine
gute Idee, wie die RegExp aussehen muss, damit

[<nummer>]

auf einen Schlag verschwindet.

-- 
Gruss Marcus


Mehr Informationen über die Mailingliste Eisfair