Koozali.org: home of the SME Server

Superblock und LVM problem

Offline FraunhoferIFF

  • *
  • 932
  • +0/-0
  • Widerstand ist Zwecklos !
    • http://www.magic-figo.de
Superblock und LVM problem
« on: March 10, 2008, 10:47:01 PM »
Moin Jungs,

also ich habe seid kurzem das Problem das meine Festplatte ohne MD2 angezeigt wird , wenn das früher der fall war konnte ich das durch das hinzufügen einer/der Platte wieder hinbekommen. Nun jedoch zeigt er das der Superblock nicht da oder defekt ist ... Hat das schon mal jemand gehabt und wenn ja wie bekommt man es gelöst.

Ich hoffe auf EURE Hilfe


Marcel

Offline capri

  • *****
  • 530
  • +0/-0
    • GAMEWARE
Re: Superblock und LVM problem
« Reply #1 on: March 11, 2008, 05:03:29 PM »
Probier mal die Befehle 'mdadm --help' und 'dmraid -h' sollten dir Auskunft geben wie du das Raid überprüfen repspektive repaparieren kannst.

Offline FraunhoferIFF

  • *
  • 932
  • +0/-0
  • Widerstand ist Zwecklos !
    • http://www.magic-figo.de
Re: Superblock und LVM problem
« Reply #2 on: March 11, 2008, 09:37:04 PM »
Also echt Capri :(

dein Post ist SPAM :)


Marcel

Offline capri

  • *****
  • 530
  • +0/-0
    • GAMEWARE
Re: Superblock und LVM problem
« Reply #3 on: March 12, 2008, 11:03:12 AM »
Wieso, verstehe ich jetzt nicht Ganz :(

Es ist doch beim Raid immer das Problem das man nicht direkt auf die Partitionen zugreifen kann/sollte sondern die Raid Tools benutzen sollte/muss.

Und vor den 'Superblock crash' habe ich eh immer etwas Angst, hatte schon ein paarmal versucht auf einen non raid non lvm2 System einen Superblock (ext2/3) zu reparieren, war immer eine 'Lebensaufgabe' und mit vertretbaren Zeitaufwand nicht zu lösen, seitdem nehme ich oft XFS, außer für die Bootpartition, her.

Wäre mal schön wenn es sowas Weitreichendes wie chdsk unter Windows NTFS (prüft die Zuordnung von Dateisystem Sektoren/Blöcken zu physikalischen Sektoren/Blöcken auf der Platte und ordnet sie im Schadensfall neu zu) für ext3 gäbe ;)

Offline FraunhoferIFF

  • *
  • 932
  • +0/-0
  • Widerstand ist Zwecklos !
    • http://www.magic-figo.de
Re: Superblock und LVM problem
« Reply #4 on: March 12, 2008, 12:32:24 PM »
ja das stimmt leider... also den superblock hab ich schon abgeschrieben :(

Marcel

Offline capri

  • *****
  • 530
  • +0/-0
    • GAMEWARE
Re: Superblock und LVM problem
« Reply #5 on: March 12, 2008, 02:51:17 PM »
Und wenn du das Raid degradierst, den Superblock gegen einen Reserve Superblock (fals nicht auch beschädigt) ersetzst, und dann das Raid wieder aktivierst?

Ist halt auch viel Arbeit, vor allem wenn man dann festellen muss, dass alle Reserve Superblocks nicht mehr OK sind, wie das leider meißt der Fall sein wird  :(

Ansonsten ist leider das beste Mittel gegen defekte Superblöcke 'fdisk' :(


Offline FraunhoferIFF

  • *
  • 932
  • +0/-0
  • Widerstand ist Zwecklos !
    • http://www.magic-figo.de
Re: Superblock und LVM problem
« Reply #6 on: March 17, 2008, 10:19:59 PM »
da war nix zu machen ,
hab mit dem SWT Backup gesichert und neu aufgesetzt , Recover gemacht, jetzt ist es  Geschichte :)


Marcel

Offline psc

  • *
  • 151
  • +0/-0
Re: Superblock und LVM problem
« Reply #7 on: March 26, 2008, 10:07:34 AM »
ja das stimmt leider... also den superblock hab ich schon abgeschrieben :(

Marcel
Warum ?
Die Meldung ist natürlich unsinn. Die HDD kann nur (noch) nicht gelesen werden.

Also zum Beispiel für die Partition hdc1:
1. Scan nach Raids:
[root@smebox]#mdadm --examine --scan  /dev/hdc1

    Das gibt dann z.B.:
ARRAY /dev/md2 level=raid1 num-devices=2
    UUID=522602de:91e45fb0:252a485c:e02b2565
   devices=/dev/hdc1


   So ein Raid haben wir schonmal gefunden, also ab damit in die Konfiguration:
[root@smebox]#mdadm --examine --scan  /dev/hdc1 >> /etc/mdadm.conf

2. Manuelles Nachbearbeiten der /etc/mdadm.conf
   Falls unser "gefundenes" Rais eine "mdx" Nummer hat die wir im laufenden System schon verwenden, einfach die mdx Bezeichnung ändern.
   z.B.:
   mdmadm.conf:
  # mdadm.conf written out by anaconda
  DEVICE partitions
  ARRAY /dev/md2
  ARRAY /dev/md1
  ARRAY /dev/md2 level=raid1 num-devices=2
    UUID=522602de:91e45fb0:252a485c:e02b2565
   devices=/dev/hdc1

  An dem "UUID" Anhängsel ist unser "gefundenes" Array schön zu erkennen.
  Also ändern wir das gefundene in /dev/md3 (da es md2 ja schon gibt).

  neue mdmadm.conf:
  # mdadm.conf written out by anaconda
  DEVICE partitions
  ARRAY /dev/md2
  ARRAY /dev/md1
  ARRAY /dev/md3 level=raid1 num-devices=2  UUID=522602de:91e45fb0:252a485c:e02b2565
   devices=/dev/hdc1


3. Aktivieren des gefundenen RAID´s:
[root@smebox]#mdadm -A -s

   (Jetzt mit cat /proc/mdstat testen ob das Raid md3 jetzt online ist)

4. Jetzt wird es schon schlimmer, wir müssen die LVM2 Konfiguration auslesen:
    Die gesuchten Informationen befinden sich im LVM Header auf der Partiton, also lesen wir die Daten mal aus:

   [root@smebox]#dd if=/dev/md3 bs=512 count=255 skip=1 of=/tmp/md3-lvm2-header

   Diese Datei muss jetzt mittels vi editiert werden, also vi /tmp/md3-lvm2-header

   In der Datei stehen ausser den gesuchen Informationen natürlich viele Informationen die wir nicht brauchen,
   diese müssen wir löschen. Wichtig hierbei: das Gesuchte beginnt mit
   contents = "
   und endet mit
   # Generated by LVM2:

   Es können durchaus mehrere Versionen der Infromationen vorhanden sein, dann halt die neueste nehmen.
   Hier ein Beispiel wie es am Ende aussehen sollte:
   contents = "Text Format Volume Group"
version = 1

description = ""

creation_host = "localhost.localdomain" # Linux localhost.localdomain 2.6.9-67.0.1.EL #1 Wed Dec 19 15:50:25 EST 2
007 i686
creation_time = 1206514453      # Wed Mar 26 06:54:13 2008

main {
id = "HYg2Rj-qi86-H2Wl-ehgI-JbXw-DlqY-24LDT1"
seqno = 2
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 65536
max_lv = 0
max_pv = 0

physical_volumes {

pv0 {
id = "rRWPOj-38qB-RewL-DzEy-nDka-YAAL-42FdP4"
device = "/dev/md2"

status = ["ALLOCATABLE"]
dev_size = 141918080
pe_start = 384
pe_count = 2165
}
}

logical_volumes {

root {
id = "YhONrB-sRSX-cJvg-km2i-FDrW-S6Eu-Q1y4Fe"
status = ["READ", "WRITE", "VISIBLE"]
segment_count = 1

segment1 {
start_extent = 0
extent_count = 2102

type = "striped"
stripe_count = 1        # linear

stripes = [
"pv0", 0
]
}
}
}
}
# Generated by LVM2: Wed Mar 26 06:54:13 2008

   
   Bei der Zeile "device = "/dev/md2" handelt es sich um das alte Device, wir müssen es also auf das aktuelle "/dev/md3" abändern.
   Am Anfang der Datei steht:
   main {
id = "HYg2Rj-qi86-H2Wl-ehgI-JbXw-DlqY-24LDT1"
seqno = 2
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 65536

   
   Das "main" im Beispiel ändern wir jetzt auf "alt" ab.
   also:
   alt {
id = "HYg2Rj-qi86-H2Wl-ehgI-JbXw-DlqY-24LDT1"
seqno = 2
status = ["RESIZEABLE", "READ", "WRITE"]
extent_size = 65536


   Die fertige Datei speichern wir unter /etc/lvm/backup/alt ab.

4. Aktivieren des gefundenen LVM2 Bereiches
   
   [root@smebox]#vgcfgrestore -f alt alt
   [root@smebox]#vgscan
Reading all physical volumes.  This may take a while...
Found volume group "main" using metadata type lvm2
Found volume group "alt" using metadata type lvm2

   [root@smebox]#vgchange alt -a y

   [root@smebox]#lvscan
  ACTIVE            '/dev/main/root' [65,69 GB] inherit
  ACTIVE            '/dev/main/swap' [1,94 GB] inherit
  ACTIVE            '/dev/alt/root' [19,38 GB] inherit


5. Mounten der Partition

   [root@smebox]#mount /dev/alt/root /mnt


Fertig, war doch ganz einfach. :D

(Zur Not mache ich das natürlich auch gegen €´s)
First, solve the problem. Then, write the code.

Offline FraunhoferIFF

  • *
  • 932
  • +0/-0
  • Widerstand ist Zwecklos !
    • http://www.magic-figo.de
Re: Superblock und LVM problem
« Reply #8 on: March 26, 2008, 06:08:59 PM »
Na son mist, nun hab ich die schon platt gemacht.

Aber deine Anleitung (falls Sie Funktioniert) gehört ins Wiki.

Und vielen Dank für deine mühe.

Marcel