gmirror panic - double fault

Dany

Well-Known Member
Hallo,

ich habe meinen Rechner mit FreeBSD 6.0 neu installiert und habe mir dazu 2 neue Festplatten gekauft.

Dann habe ich BSD 6.0 Installiert und habe die Anleitung gmirror angefangen. Hat auch alles geklappt bis zum

Punkt --> echo 'geom_mirror_load="YES"' >>/mnt/boot/loader.conf

Da ich diesen Befehl nicht so ausführen wollte, überprüfen wollte ob alle Laufwerke gemountet wurden und ob bereits Einträge in der Datei vorhanden sind. Habe ich folgenden Befehl abgesetzt:

ee /mnt/boot/loader.conf

Bei diesen Befehl ging eine Kernel Panic aus und der Rechner wurde neu gestartet. Die beiden Festplatten waren zu 100 abgeglichen, genau nach WIKI.

Jetzt würde ich gerne mit der Installation von neuen anfangen bekomme aber die gmirror Informationen einfach nicht gelöscht.

Wie kann ich die beiden Festplatten in den Kaufzustand zurücksetzen, so das ich die Installation neu versuchen kann?

Bei einer normalen Installation von FreeBSD 6.0 werden die gmirror Informationen nicht gelöscht, habe ich bereits getestet.


Mit freundlichen Grüßen
Daniel
 
Gmirror schreibt die Metadaten an das Ende der Platte. Wenn du den Verbund nicht mit z.b. FreesBIE aufgelöst bekommst, musst du die letzen 512Byte der Platte mit Nullen überschreiben.

Alternativ kannst du mit FreeSBIE deine Installation noch sichern. Du mountest das Root von der ersten Platte im Verbund, löscht die Zeile in der /boot/loader.conf und bootest ihn dann ganz normal von der Masterplatte.
 
Hallo,

FreesBIE habe ich versucht, den Rechner zu starten. Leider ist das booten nicht möglich, ich bekomme immer einen IO Fehler von der Festplatte zurück. Um diesen Fehler zu umgehen habe ich ja die Platten getausch (die zwei neuen Fesplatten), von Master auf Slave und von Slave auf Master, das Ergebniss war der "double fault".
Jetzt kann ich von FreesBIE nicht mehr starten, beim boot sehe ich nur Zahlen und Buchstaben über den Bildschirm rauschen.

Gibt es noch andere Möglichkeiten das Mirror zu löschen, vielleicht mit der FreeBSD 6.0 CD, hier kann ich wenigstens noch Fixit starten und Befehle absetzen.

Bei laden von den Kernelmodul gmirror kommt aber sofort wider eine Panic.

Kann ich unter Fixit die letzten 512Byte der Platte mit Nullen überschreiben?

Fixit boote ich von der FreeBSD 6.0 CD aus und wie kann ich weiter vorgehen?


Danke Daniel
 
Hallo,

OK, werde heute abend versuchen meinen Rechner über FreesBIE zu Starten.

Wenn ich diesen dann gestartet habe und eine Shell habe wie kann ich dann die Platte und vor allen die letzten 512Byte mit Nullen überschreiben?

Welchen Befehl muß ich dazu nutzen, wie geht das?

Habe so etwas noch nie durchgeführt, würde mich über eine Antwort aber sehr freuen.



Danke Daniel
 
Da wirst du einen Taschenrechner benötigen und etwas Rechnen müssen. Grundsätzlich geht das ganze problemlos mit dd:
Code:
dd if=/dev/zero of=/dev/festplatte count=1 bs=512 skip=(anzahl der 512k blöcke der platte - 1)
 
skip überspringt beim input, was bei /dev/zero total sinnbefreit ist.
seek funktioniert nicht bei festplatten, hat jemand ne bessere idee?

edit: seek scheint doch zu funktionieren, sorry :)
 
Last edited:
Hallo,

danke für die Antworten. Ich habe jetzt vieles Probiert und habe vermutlich vieles falsch gemacht.

Auf jeden Fall habe ich gestern abend auf meine ad0 Festplatte FreeBSD 6.0 installiert und dieses lässt sich auch starten.

Jetzt möchte ich aber doch noch das mirror mit gmirror einrichten!

Also habe ich die CD1 von FreeBSD6 eingelegt und habe von der CD gestartet, dann habe ich Fixit von CD gestartet.

gmirror load --> funktionierte ohne fehler
gmirror list --> keine Einträge mehr vorhanden :)

gmirror label -v -b round-robin gm0 /dev/ad0 --> Ausgabe: Segmentation fault :grumble:

Jetzt bin ich irgendwie total am boden und kann nicht sagen was da falsch gelaufen ist. Bekomme ich dieses wider hin?

Ein Boot mit Freesbie und ein DMESG zeigt folgende Platten:
Festplatten 76351MB Samsung SP0822N/WA100-33 [155127/16/63] at ata0-master UDMA100
Festplatten 76351MB Samsung SP0822N/WA100-33 [155127/16/63] at ata1-master UDMA100

Wie gesagt die Installation auf ad0 hat auch fehlerfrei funktioniert und ich konnte das BSD auch starten nur das gmirror funktioniert nicht.

Ich würde die Installation auch nochmals von vorne beginnen wenn jemand den Grund kennt warum so etwas zu stande kommt und wie ich den Fehler beheben kann.

Danke Daniel
 
Lege mal einen Slice mit einer Partition auf den Disks an, und lass jeweils etwas Platz davor und dahinter, und versuch diese zu spiegeln.
 
Hallo,

danke für die vielen Antworten.

Ich habe mir jetzt einfach die eine Festplatte, auf die ich das Mirror nicht anlegen konnte, umtauschen lassen.

Nach dem ich die neue Festplatte eingabeut hatte, habe ich nochmals die Installation versucht und es hat geklappt. Ich habe ohne Probleme vom Mirror starten können.

Aber ich wollte natürlich auch testen was los ist wenn eine Platte defekt ist, also bin ich hergegangen habe den Computer ausgeschalten, habe die Platte ausgebaut und habe den Rechner erneut gestartet.
Der Rechner ist hochgefahren und hat das Mirrir auf DEGRADED gesetzt.

So jetzt will ich das Mirror wider herstellen.
#gmirror forget gm0
#restart (mit beiden Platten den Rechner wider gestartet)

Das Mirror hat sofort erkannt das beide Platten vorhanden sind und hat mit den abgleichen begonnen.
#gmirror list hat schön die Prozente hochgezählt und hat auch die Meldung gebracht das der abgleich abgeschlossen ist.

Wenn ich jetzt aber mit den folgenden Befehl mir das mirror anschaue steht da immer noch "DEGRADED"?

Code:
# gmirror status gm0
 Name    Status  Components
mirror/gm0  DEGRADED  ad0
                                          ad2


# gmirror list
Geom name: gm0
State: DEGRADED
Components: 1
Balance: round-robin
Slice: 4096
Flags: NONE
GenID: 0
SyncID: 3
ID: 1105850766
Providers:
1. Name: mirror/gm0
   Mediasize: 80060423680 (75G)
   Sectorsize: 512
   Mode: r5w5e6
Consumers:
1. Name: ad0
   Mediasize: 80060424192 (75G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 3
   ID: 3773960921
2. Name: ad2
   Mediasize: 80060424192 (75G)
   Sectorsize: 512
   Mode: r1w1e1
   State: ACTIVE
   Priority: 0
   Flags: DIRTY
   GenID: 0
   SyncID: 3
   ID: 627411771

Wie bekomme ich hier wider einen Status Aktiv?

Beim Neustart von diesen Rechner kommt folgende Ausgabe:
Code:
# dmesg | grep gm0
GEOM_MIRROR: Device gm0 created (id=1105850766).
GEOM_MIRROR: Device gm0: provider ad0 detected.
GEOM_MIRROR: Device gm0: provider ad0 activated.
GEOM_MIRROR: Device gm0: provider mirror/gm0 launched.
GEOM_MIRROR: Device gm0: provider ad2 detected.
GEOM_MIRROR: Device gm0: provider ad2 activated.
Trying to mount root from ufs:/dev/mirror/gm0s1a

Danke Daniel
 
Habe die Lösung gefunden

Hallo,

habe gerade die Antwort gefunden. Musste doch noch ein par Maillinglisten im Internet durchsuchen um auf die richtige Antwort zu kommen.

Aber folgender Satz hat doch geholfen:

Just figured out "gmirror forget gm0" removes all the old "config stuff" and
puts the mirror in "COMPLETE" mode.

Jetzt bekomme ich folgende Ausgabe:

Code:
# gmirror status gm0
      Name    Status  Components
mirror/gm0  COMPLETE  ad0
                                         ad2

Danke für Eure Hilfe und bis bald Daniel
 
Back
Top