|
In diesem HowTo werden einige Tipps zu defekten Festplatten oder Partitionen zusammengestellt.
Achtung: Verwendung auf eigener Gefahr 
Viele dieser Tipps müssen mit ausgehangenden Platten durchgeführt werden. Dazu eine Live CD (z.B. KNOPPIX oder openSUSE) zum Booten (im failsafe-Modus) verwenden und dort diese Befehle ausführen.
Festplattendiagnose - SMART-Werte auslesen
Dieses kann mit dem Kommando smartctl geschehen.
$ smartctl --all /dev/sda
...
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
...
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 100 100 016 Pre-fail Always - 0
...
SMART Error Log Version: 1
No Errors Logged
...
Dabei sollte das Testergebnis PASSED und keine Fehlermeldungen protokolliert sein.
Die SMART-Attribute haben folgende Bedeutung:
- ID: Nummer des Attributs
- Name des Attributs
- Value: der normierter Wert aus der Firmware der Festplatte
- Worst: der bislang schlechtester registrierter normierter Wert (höher = besser)
- Thresh: das Minimum, ab dem Arlarm gemeldet wird
- Type: Beschreibt, was das Erreichen eines Schwellwertes bedeutet.
Pre-fail: Sofortiges Ableben der Festplatte wahrscheinlich. Old-age: Attribut beschreibt den Alterungsprozess der Festplatte.
- Update: Wann wird das Attribut aktualisiert?
Always: Laufend. Offline: Durch einen Offlinetest (Parameter -t offline).
- Raw: Rohdaten
Wichtige Attribute:
- 5 Reallocated_Sector_Ct
196 Reallocated_Event_Count 197 Current_Pending_Sector Wenn die Raw-Werte auf 0 sind, wurden beim Schreiben keine defekte Sektoren entdeckt.
- 199 UDMA_CRC_Error_Count
Wenn der Raw-Wert auf 0 ist, wurden keine Übertragungsfehler (Kabel) entdeckt.
- 3 Spin_Up_Time
10 Spin_Retry_Count Diese Messwerte zeigen Anlaufenprobleme der Festplatte.
- 1 Raw_Read_Error_Rate
7 Seek_Error_Rate 195 Hardware_ECC_Recovered Diese Attribute beschreiben Lesefehler.
Mit folgendem Kommando führt eine Festplatte einen langem Selbsttest aus.
$ smartctl -t long /dev/sda
Medien-Check mit badblocks
Mit dem Kommando badblocks können fehlerhafte Blöcke auf Partitionen erkannt werden. Folgende Kommandos schreibt die defekten Blöcke in die Datei bad-blocks und übergibt sie fsck. Damit werden im Dateisystem die beschädigten Blöcke als unbenutzbar markiert.
$ badblocks /dev/sda3 > bad-blocks
$ fsck.ext3 -l bad-blocks /dev/sda3
Erstellen eines Images einer Festplatte
Ein komplettes Abbild einer Festplatte kann mit dem Kommando dd erstellt werden.
Folgendes Kommando kopiert das Abbild einer Festplatte auf eine andere Festplatte, die mindestens gleich groß ist.
$ dd if=/dev/sda of=/dev/sdb
Folgendes Kommando sichert eine Platte in eine Datei.
$ dd if=/dev/sda of=sda.img
In diesem Beispiel wird die Datei zusätzlich kompremiert.
$ dd if=/dev/sda | gzip > sda.ing.gz
Ist die Festplatte defekt, kann es bei Kopieren zu Lesefehlern kommen. Dann würde dd abbrechen. Das Kommando dd_rescue dagegen würde die unlesbaren Bereiche durch Nullen ersetzen. Dieses Abbild muss dann z.B. mit fsck repariert werden. Abschließen kann man dieses noch schreibgeschützt Mounten, um es zu testen.
$ dd_rescue /dev/sda3 sda3.img
$ fsck.ext3 -p sda3.img
$ mount -o loop,ro sda3.img /temp
Bootloader grub installieren
Durch eine defekte Festplatte wurde die geretteten Abbilder auf eine neue Festplatte aufgespielt. Nun muß nur noch der Bootloader installiert, genauer der MBR (Master Boot Record) geschrieben, werden.
Dazu wird der Rechner über eine Live CD geboote und die grub-Konsole aufgerufen. Als erste wird die Bootpartition gesucht.
$ grub
grub> find /boot/grub/stage1
(hd0,2)
Die Bootpartition wurde unter (hd0,2) (erste Festplatte, dritte Partition) gefunden.
Nun wird folgenden Kommandos der MBR installiert.
grub> root (hd0,2)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,2)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded
Done.
grub> quit
Ggf. muss vorher noch die Datei /boot/grub/menu.lst bearbeitet werden.
Sichern des Bootsektors
Mit folgendem Kommando wird der Bootsektor (Masterbootrecord) der Festplatte /dev/sda gesichert. In diesem Fall kommt der Bootloader grub zum Einsatz.
$ dd if=/dev/sda bs=512 count=1 of=grub.img
Dieses Abbild (Image) kann mit folgendem Kommando zurück gespielt werden:
$ dd if=grub.img bs=512 count=1 of=/dev/sda
|