orm@doc-tcpip.org

Erstellt: März 2000 - Letzte Modifikation: August 2003

[ Main | Local ]


Probleme mit Filesystemen und Superblocks

Eine Kurzbeschreibung

Wenn man ein Filesystem mounten möchte, und dann diesen Fehler bekommt, dann wird einem in der Regel recht warm. Oft genügt dann ein Blick in den Error-Report, um festzustellen das die Platte defekt ist - mit wenig Aussicht auf Hilfe.

  
root@svr:/home/root# mount /data
Replaying log for /dev/datalv.
mount: 0506-324 Cannot mount /dev/datalv on /data: The media is not formatted or the format is not correct.
0506-342 The superblock on /dev/datalv is dirty.  Run a full fsck to fix.
root@svr:/home/root# 

Gibt es keine Plattenfehler, sollte man tun, was einem die Fehlermeldung vorschlägt:

 
root@svr:/home/root# fsck /dev/datalv

** Checking /dev/rdatalv (/data) 
** Phase 0 - Check Log
log redo processing for /dev/rdatalv                     
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Inode Map
** Phase 6 - Check Block Map
Bad Block Map; SALVAGE? y
0 blocks missing
0 blocks missing
Filesystem integrity is not guaranteed
2858920 files 85158608 blocks 11572248 free

Danach ging es aber immer noch nicht.

Daher schaut man ersteinmal, um welche Platte es sich im Logical Volume dreht:
lsvg -p vgname

Man sollte die Gelegenheit nutzen und ein paar Daten sichern:
lquerypv -h /dev/lvname 1000 100
lqueryvg -Atp hdiskX
Das zeigt die VGDA der Platte.

Auf der Platte gibt es mehrere Kopien des Superblocks. Bevor man so eine Kopie zurückspielt, sollte man prüfen, ob die Kopien nicht auch gelitten haben: dd count=1 bs=4k skip=31 seek=1 if=/dev/lvname of=/tmp/ein.file
Mit dem od-Befehl kann man die kopiert Superblock-Kopie jetzt ansehen (od /tmp/ein.file).

Wenn nur Nullen drin sind: verloren.
Wenn viele Zahlen drin sind: Hoffnung.

Normalerweise würde man jetzt mi dem dd-Kommando die Kopie des Superblocks wieder an den Anfang der Platte schreiben - das nimmt einem das fsck-Kommando heutzutage ab.
fsck -p /dev/lvname

Jetzt wird das Filesystem nochmal mit einem fsck geprüft. Dann kann man nochmal versuchen, das Ganze zu mounten. Es kann sein, daß mit dem Kommando varyonvg die VG nochmal initialisiert werden muß.

Mit dem neueren JFS2 ist alles ein wenig anders, hier beide Kommandos:

                     
Erster Superblock:
JFS:  lquerypv -h /dev/lvname 1000 100
JFS2: lquerypv -h /dev/lvname 8000 100
Zweiter Superblock:
JFS:  lquerypv -h /dev/lvname 1F000 100
JFS2: lquerypv -h /dev/lvname F000 100
Kopieren der zweiten Kopie in die erste:
JFS:  dd count=1 bs=4k skip=31 seek=1 if=/dev/LVName of=/dev/LVName
JFS2: dd count=1 bs=4k skip=15 seek=8 if=/dev/LVName of=/dev/LVName


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | SMTP | Tracing | GPS ]

Copyright 2001-2014 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )