Kann ein einzelnes raid1-Laufwerk in einem heruntergekommenen / wiederhergestellten Zustand zwangsmontiert werden? Ich möchte alle Dateien wiederherstellen, bevor ich die gefährliche Operation zum Koppeln und Wiederherstellen durchführe. Soweit ich das beurteilen kann, ist das Laufwerk in einwandfreiem Zustand und vollständig intakt. Das Paarlaufwerk ist teilweise ausgefallen.
Wenn sich das Laufwerk nicht im Wiederherstellungszustand befindet, weiß ich genau, was zu tun ist. Folgendes habe ich versucht:
# mdadm --verbose --assemble /dev/md8 /dev/sdb1 --force
mdadm: looking for devices for /dev/md8
mdadm: /dev/sdb1 is identified as a member of /dev/md8, slot 1.
mdadm: no uptodate device for slot 0 of /dev/md8
mdadm: added /dev/sdb1 to /dev/md8 as 1
mdadm: /dev/md8 assembled from 0 drives and 1 rebuilding - not enough to start the array.
# cat /proc/mdstat
md8 : inactive sdb1[1](S)
976759808 blocks super 1.2
md0 : active raid1 sdc1[0]
976759672 blocks super 1.2 [2/1] [U_]
# mdadm --stop /dev/md8
mdadm: stopped /dev/md8
# mount /dev/sdb1 /mnt/temp2
mount: unknown filesystem type 'linux_raid_member'
# mount -o ro -t ext3 -b 2048 /dev/sdb1 /mnt/temp1
mount: wrong fs type, bad option, bad superblock on /dev/sdb1.
# foremost -i /dev/sdb -o /tmp/foo (this results in perfectly good files)
In diesem speziellen Fall stellt der foremost
Befehl Dateien wieder her, sodass sich definitiv etwas auf dem Laufwerk befindet, wenn ich nur den korrekten Superblock-Offset erhalten könnte.
In diesem speziellen Fall stürzt das Zusammensetzen beider Hälften des Arrays den Kernel (!) Ab, sodass dies (abgesehen von den Sicherheitsproblemen) ohnehin keine echte Option ist.
UPDATE: Ausgabe von mdadm hinzugefügt
# mdadm --examine /dev/sdb1
/dev/sdb1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x2
Array UUID : e00a291e:016bbe47:09526c90:3be48df3
Name : ubuntu:0
Creation Time : Wed May 11 12:26:39 2011
Raid Level : raid1
Raid Devices : 2
Avail Dev Size : 1953519616 (931.51 GiB 1000.20 GB)
Array Size : 1953519344 (931.51 GiB 1000.20 GB)
Used Dev Size : 1953519344 (931.51 GiB 1000.20 GB)
Data Offset : 2048 sectors
Super Offset : 8 sectors
Recovery Offset : 0 sectors
State : clean
Device UUID : 41346f44:ccacbbf7:0c17c133:eb7b341f
Update Time : Sat Apr 13 00:02:08 2013
Checksum : 483a0a44 - correct
Events : 402833
Device Role : Active device 1
Array State : AA ('A' == active, '.' == missing)
mdadm --examine /dev/sdb1
?blockdev --getsize /dev/sdb1
ist 1953521664 oder größer?cat /proc/mdstat
beinhaltetPersonalities : [raid1]
?Antworten:
Wenn es sich um RAID 1 handelt und Sie den Datenversatz kennen (z. B. 2048 Sektoren, können Sie normalerweise den genauen Datenversatz durch ermitteln
mdadm --examine /dev/sdb1
), können Sie ein schreibgeschütztes (aus Sicherheitsgründen) Schleifengerät wie folgt erstellen:Versuchen Sie dann, das gedruckte Loop-Gerät zu überprüfen und zu montieren:
mount kann dies möglicherweise direkt mit den
-o ro,loop,offset=
Optionen tun , aber ich bevorzuge es, das Loop-Gerät manuell zu erstellen, nur um sicherzustellen, dass es wirklich schreibgeschützt ist.Wenn das Dateisystem selbst beschädigt ist, sollten Sie ein Image mit erstellen
dd
und Experimente wiefsck
das Image ausführen . Alternativ können Sie ein Linux-Netzwerkblockgerät verwenden, um eine Copy-on-Write-Ebene auf die Festplatte zu legen, sodass Siefsck
diese Ebene erstellen können , ohne tatsächlich etwas auf die Festplatte selbst zu schreiben (nbd-server -c
/nbd-client
, erstellt ein/dev/nbdX
Gerät, mit dem Sie spielen können). Es könnte möglich sein, dasselbe mit Device Mapper zu tun - aber ich habe es nie versucht.quelle
file -s
sagt das erstellte Loop-Gerät aus?Sie sollten in der Lage sein, die Anzahl der RAID-Geräte in Ihrem Array auf eins festzulegen, indem Sie:
Schauen Sie danach
/proc/mdstat
nach, obmd8
es aktiv ist. Sie sollten es wahrscheinlich schreibgeschützt bereitstellen, bis Sie die Daten kopiert haben.quelle
mdadm --assemble --scan
dass das funktionieren könnte, weil md8 in der angezeigt wird/proc/mdstat
. Sie müssen danach noch md8 mountenno uptodate device for slot 1 of /dev/md8
den/dev/md8
Start bekomme (im herabgesetzten Modus). Ich hatte das sowohl mit dem Entfernen des anderen Laufwerks als auch mit dem Zuweisen des anderen zu / dev / md0. Ich musste den Computer oft neu starten, da der Kernel irgendwie Informationen über die RAID-Partitionen speichert, selbst wenn ein RAID-Gerät gestoppt und auf Null gesetzt wird. Aber auch ohne Neustart konnte ich das Problem nie reproduzieren.