fsck superblock problem

tom81

Well-Known Member
Hallo Zusammen,

mein Server ist heute abgeschmiert :( leider fährt er auch nicht mehr hoch und ich weiß grad nicht weiter, denn fsck rührt sich gar nicht.

Ich boote ein rescue System und kann die Platte mounten, jedoch nicht mehr davon booten.
Ein fsck -t ufs /dev/ad4 bricht mit folgender Meldung ab:

Code:
[root@rescue ~]# fsck -t ufs /dev/ad4
** /dev/ad4
Cannot find file system superblock
ioctl (GCINFO): Inappropriate ioctl for device
fsck_ufs: /dev/ad4: can't read disk label

newfs -N /dev/ad4 gibt mir ne Liste mit den Backups:
Code:
[root@rescue ~]# newfs -N /dev/ad4
/dev/ad4: 305245.3MB (625142448 sectors) block size 16384, fragment size 2048
        using 1662 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 160,......

Dann mache ich:

Code:
[root@rescue ~]# fsck_ufs -b 160 /dev/ad4
Alternate super block location: 160
** /dev/ad4
160 is not a file system superblock

Ich habe auch andere Einträge probiert, das Ding treibt mich grade in den Wahnsin, denn eigentlich ist mir nur ssh abgeschmiert, deswegen überhaupt ein Neustart.

Hat hier jemand eine Idee, wie ich das wieder hinbekommen könnte?


Beste Grüße
Tom
 
Eine Frage: Hast Du das Dateisystem wirklich direkt auf die Platte geschrieben, d.h. ohne Partition bzw. Disklabel? - Kurzum: was sagt "fdisk" oder sowas wie "bsdlabel /dev/ad4s1"?
 
Zuletzt bearbeitet:
...denn eigentlich ist mir nur ssh abgeschmiert, deswegen überhaupt ein Neustart.

Beste Grüße
Tom
Also wenn nur sshd das Problem war, dann kann sowas in Crontab zukünftig helfen:

PHP:
30 * * * * (/etc/rc.d/sshd status || (/etc/rc.d/sshd restart; echo 'sshd restarted'|/usr/bin/mail -s 'sshd restarted' its@me.de))
 
Nein, ssh ist nicht das Problem. Es ist /usr/local/bin/bash. Ich kann mich wegen der nicht mehr einloggen.
Es kommt immer "/libexec/ld-elf.so.1: Shared object "libintl.so.8" not found, required by "bash""

Ich hab schon die Shell auf /bin/sh umgestellt (über das rescue System) aber nix... immer der selbe Fehler.
 
Das ist natürlich bitter!

Hm, aber was spricht dagegen, z.B. auf den Remote-Account eine der Shells aus /rescue (csh, tcsh) zu legen? Die sind ja nicht dynamisch gelinkt. Selbst habe ich das aber noch nicht gemacht. :-(

Edit:
Wenn root z.B. mit /rescue/tcsh belegt ist, dann ist zumindest ein su nach root nicht mehr möglich, da:

%su -
Password:
rescue: -su not compiled in
usage: rescue <prog> <args> ..., where <prog> is one of:
cat chflags chio chmod cp date dd df echo ed red....
 
Zuletzt bearbeitet:
Hast Du etwa nur den login shell Eintrag mit einem Editor in der /etc/password geändert? Versuch mal, ob Du mit vipw rankommst.

Erweiterung: Es gibt übrigens neben root auch den Benutzer toor. Wenn Du root auf /bin/csh setzt und toor auf /usr/local/bin/bash hättest Du zwei Admin-Konten. Als root kannst Du Dich auch ohne gemountete /usr-Partition einloggen, als toor hättest Du Deine bash.
 
Zuletzt bearbeitet:
so, geht wieder vipw hatts gebracht.

@Kurama: Als toor, das wär nix, da sich bei mir nur ein user mit pubkey einloggen darf, alle anderen sind in ihre Userhomes eingeschlossen und auf sftp beschrenkt.

Ich kompiliere jetzt erstmal bash und alle abhämgigkeiten neu und den anderen Kram :) da läuft grad einiges nicht mehr... dabei sollte nur ein Port (ImageMagick) hinzugefügt werden... :((

Na ja, wieder was gelernt :)

Danke für die Hilfe ich brings heute echt nicht :D
 
Im Falle, dass libintl.so.8 nicht gefunden wird (Ursache ist ein Update von gettext) hilft auch ein:

cd /usr/local/lib && ln -sf libintl.so.9 libintl.so.8

Beste Grüße

Der Indy
 
Ändert bitte die root-Shell nicht auf bash und auch auf keine sonstigen Shells aus den Ports. Das macht nur Probleme. Genauso auch nicht das Locale von root von C auf irgendetwas anderes setzen.
 
Im Falle, dass libintl.so.8 nicht gefunden wird (Ursache ist ein Update von gettext) hilft auch ein:

cd /usr/local/lib && ln -sf libintl.so.9 libintl.so.8

Tut das bitte nicht!

Das ist absolut falsch und kann zu großen Problemen führen. Wer sowas in einem öffentlichen Forum vorschlägt, gehört geschlagen (wie jemand, der "rm -rf /" vorschlägt).

Dadurch macht ihr nur euer System kaputt. Der richtige Weg ist das Aktualisieren des betroffenen Programms.
 
Es gibt fuer Notfaelle auch unter /rescue/ eine statisch gebaute sh Shell. Die koenntest du eintragen, wenn beim upgrade, oder wie auch immer diese Inkonsistenz aufgetretten ist. ;)
 
@tom81: Da Du die fehlenden Libraries nicht gefunden hast, kennst Du wahrscheinlich noch nicht pkg_libchk aus "sysutils/bsdadminscripts". Um bei Servern sicher zu gehen, halte ich mich da aber trotzdem weitgehend an /usr/ports/UPDATING - also hier an den Punkt "20100530: AFFECTS: users of devel/gettext (i.e.: YOU)". Das dauert zwar etwas, aber auf einem Server hat man ohnehin nicht zu viel Software installiert.

Anm.: pkg_libchk liefert übrigens nur richtige Ergebnisse, wenn Du es als root ausführst.
 
Zuletzt bearbeitet:
Schande über mein Haupt :) Es musste mal wieder schnell gehen :ugly:
pkg_libchk kenn ich aber das rescuesystem ist ein fbsd 7.0 und produktiv ein 8.0, das wäre suboptimal und ausserdem zu spät ;) (bash ist sofort weggeflogen)

Ich denke das Lesen von /usr/ports/UPDATING sollte in Zukunft mehr Aufmerksamkeit von mir bekommen, auch wenn es mal schnell gehen muss :rolleyes:

Ich danke alle für die Hilfe, wie man sieht saß das Problem etwa 60cm vor dem Bildschirm :D

Beste Grüße
Tom
 
Ändert bitte die root-Shell nicht auf bash und auch auf keine sonstigen Shells aus den Ports. Das macht nur Probleme. Genauso auch nicht das Locale von root von C auf irgendetwas anderes setzen.

Doch, das kann man machen. Man sollte sich aber als Fallback toor einrichten.
 
Zurück
Oben