Inhaltsverzeichnis
letzte inhaltliche Überarbeitung: 01.01.2008
Linux - Grundlagen und Befehle
6. Teil - DisasterRecovery
6.1 Hilfe - meine Partition ist weg >:-o<
Wenn man, so wie ich, bis spät in der Nacht an seinem Rechner sitzt und Änderungen am Dateisystem durchfährt (ist zu klein, falsch verteilt, man will „LVM“ benutzen oder sonst welche Gründe) kann es schon mal passieren dass:
- der Rechner beim nächsten Starten hängen bleibt,
- der nächste User (bei mir die Tochter oder Frau - oweh, oweh!) seine Daten nicht findet,
- man selbst seine Datenbanken vergeblich sucht,
- die Intranetseite plötzlich nur noch aus Fehlermeldungen besteht.
Jetzt ist es Zeit für:
- einen Schnaps …?
- eine Zigarette …?
- andere Selbstmordmethoden …?
Nein es geht auch anders.
Ich rate euch, wenn es schon nach 0:00 Uhr ist: „Geht erst einmal zu Bett!“. Nach meiner Erfahrung passieren in der Nacht bei gutgemeinten Wiederherstellungsversuchen genau noch einmal so viele Fehler, wie überhaupt in der Nachtarbeit schon mal so manches daneben gehen kann.
Am nächsten Morgen guter Kaffee und ein frisches Brötchen - dann gehts los.
6.2 Informationen und Zugriff verschaffen
Startet von einer Rettungsdiskette oder -CD. Ich benutze hier gerne die SuSE-Install-CD's (mit der Recovery-Console) oder jetzt auch mal Knoppix 3.4 (mit Option „Knoppix 2“ - startet die Textkonsole). Auf diesen Medien findet ihr gute Werkzeuge in einer großen Auswahl.
6.3 Partitionierungsdaten
Für einen ersten Überblick wie euer Dateisystem denn auf der Platte verstreut ist, könnt ihr verschiedene Programme benutzen:
6.3.1 fdisk
fdisk -l /dev/hde
gibt eine Übersicht über vorhandene Partitionen der Partition /dev/hde auf den Bildschirm aus, mit Angabe der Start- und Endzylinder, Anzahl der Blöcke und Dateisystemtyp.
6.3.2 parted
parted /dev/hde
startet ein interaktives Programm (Eingaben erforderlich) zur Anzeige und Manipulation der Partitionseinträge der Festplatte „hde“. Man kann sich im interaktiven Modus mit help die möglichen Optionen anzeigen lassen.
Mit parted kann man Partitionen verkleinern oder vergrößern:
resize 8 10000,19000Vergrößert die Partition 8 auf der ausgewählten Platte - Anfang bei Sektor 10000, Ende bei Sektor 19000.
Mit parted kann man Partitionen verschieben:
move 8 12000,21000Verschiebt die Partition 8 auf der ausgewählten Platte - neuer Anfang bei Sektor 12000, neues Ende bei Sektor 21000.
Mit parted kann man Partitionen auch retten / wiederherstellen. Diese Funktion hat mir schon einmal geholfen als ich meine Partitionstabelle überschrieben hatte. Ich konnte alle Partitionen einwandfrei wiederherstellen:
rescue 12000,21000Versucht die Partition zwischen Sektor 12000 und 21000 wiederherzustellen. Dabei werden dann bestimmte Abfragen durchgeführt ob das was das Programm erkannt hat zutreffen kann. Bestätigt man dies wird es übernommen. Man kann diesen Befehl auch ohne die Optionen Start Ende aufrufen. Dann wird versucht die komplette Platte wiederherzustellen.
6.3.3 cfdisk
cfdisk: ------- cfdisk /dev/hdeStartet auch ein interaktives Programm zur Anzeige und Manipulation der Partitionseinträge, bietet aber schon eine etwas komfortablere Ausgabe und Bedienung. Auf der anderen Seite habe ich es bisher nur bei Standardkonfigurationsarbeiten verwenden können, da es bei allen erdenklichen Ungereimtheiten im Dateisystem eine Fehlermeldung ausgibt - und dich dann wieder mit deinem Problem allein läßt.
Mit diesen Informationen sollte meistens die Fehlerquelle gefunden worden sein. Bei mir waren es u.a. Buchstabenverdreher in der fstab oder im YAST-Dialog eine Partition zu viel in eine LVM-Volumengroup eingehängt (darauf waren vorher meine Datenbanken) und damit dann die vorhergehenden Daten überschrieben. Auch Veränderungen an den zum Booten benötigten Partitionen (/boot und /) ohne Neuaufruf von „lilo“ führt zu einem startverweigerndem System.
6.4 Infos von den Originalplatten
Um diese Fehler ausmerzen oder rückgängig machen zu können, muss man meist auf die /-, /boot- oder /etc-Partition zugreifen können.
6.5 Mountpoint schaffen
Um lilo noch einmal aufrufen zu können, benötigt man die */-* und die /boot-Partition. Zuerst werden Verzeichnisse mit mkdir erzeugt, in die danach die Partitionen mit mount eingehängt werden:
mkdir /_neu mount -t reiserfs /dev/hda5 /_neuWenn die ehemalige /-Partition erfolgreich gemounted werden konnte, macht man diese mit chroot zu seiner aktuellen „Root“-Partition. So können die nächsten Partitionen direkt unter / eingehangen werden und auch die gewohnten Programme stehen zur Verfügung (man hat ja wieder seine eigene „Root“-Umgebung).
chroot /dev/hda5
Für weitere Partitionen muss man diese Schritte wiederholen, bis man die benötigten Infos erhalten bzw. die Fehler (z.Bsp. fehlerhafte Einstellungen in „/etc/fstab“) korrigiert hat.
mkdir /wh_neu
Die fragliche Partition (hier mal mein Windows Dateiverzeichnisbaum „win_home“; ist als reiserfs-Dateisystem formatiert; sollte auf /dev/hde8 zu finden sein) wird eingehängt (gemountet):
mount -t reiserfs /dev/hde8 /wh_neu
6.6 Platz schaffen
Sollte der Platz bestimmter Partitionen zu klein werden, muss man:
- eine neue (größere) Partition anlegen,
- diese unter einem bisher noch nicht vergebenem Namen mounten,
- die Daten von der zu klein gewordenen Partition dorthin kopieren,
- in der Datei /etc/fstab die Eintragung zum Mounten der fraglichen Partition ändern,
- die zu klein gewordene Partition (wenn sie nicht gerade benutzt wird) mit umount /win_home vom Dateisystem „abhängen“,
- mit mount -a werden dann alle in der /etc/fstab eingetragenen Partitionen/Geräte in das Dateisystem eingehängt.
Sollte die Partition noch benutzt werden startet man mit reboot den Rechner neu und beobachtet die Ausgaben während des Startvorganges, um evtl. auftretende Probleme zu erkennen.