• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Festplatte prüfen & reparieren, aber wie?

1. Du partitionierst die neue Platte für den künftigen Gebrauch. Wenn es die Systemplatte werden wird, dann 16 bis 20 GB für die Systempartition, SWAP je nach Bedarf (maximal Hauptspeichergröße), Rest für /home. Die defekte Platte nenne ich im folgenden /dev/sdX, die neue /dev/sdN, Y ist die jeweilige Partition.

2. Du hängst die künftige Home-Partition ein:
Code:
mkdir /mnt/homeneu
mount /dev/sdNY /mnt/homeneu
3. Du sicherst jede benötigte Partition der defekten und nicht eingehängten Platte als Image-Datei:
Code:
dd_rescue /dev/sdXY /mnt/homeneu/sdXY.img
Ob Parameter sinnvoll sind, hängt vom Zustand der Partition ab. Wenn Du /dev/sdX als Ganzes sicherst, wird das Einhängen der Image-Datei komplizierter, da Du für jede Partition den offset-Wert ermitteln und angeben mußt; da Du die Sicherung nicht als Ganzes ansprechen willst, empfehle ich diesen Weg nicht.

4. Du hängst die Image-Datei lesend ins Dateisystem ein:
Code:
mkdir /mnt/sdXY
mount -o loop,ro /mnt/homeneu/sdXY.img /mnt/sdXY
P. S.
Justaff schrieb:
Denn von "mirroring" hab ich nix gesagt
Du schreibst die ganze Zeit davon, auch wenn Du das Wort selbst nicht gebrauchst.
 
A

Anonymous

Gast
Ich muss mich hier noch mal kurz einmischen, ich sehe das hier leider ein bisschen anders, aber letztlich könnt ihr gerne mache was ihr wollt.

Ich höre hier immer wieder Datenrettung? ich denke das ist Quatsch, Retten benötigt man wenn erst wenn sie mit normalen Mitteln nicht mehr zu lesen sind, und das sehe ich hier nicht.
Inzwischen ist der Plattencrash nahezu perfekt.
subjectiv. und selbst wenn sich die SMART Infos vom Beginn des Themas verschlechtert haben sollten, wäre das immer noch nicht tötlich.
Ich unternehme gerade den Versuch, sämtliche Daten von meiner defekten Festplatte zu retten, sprich: sie auf die aktuelle Festplatte zu verschieben.
und nirgends eine Information dazu zu finden das das nicht mehr gehen soll. Also geht doch.

Also braucht vorerst nicht's gerettet zu werden, sondern nur auf die neue Platte überspielt/kopiert/übertragen/was auch immer werden.
Erst wenn das im größerem Maßstab nicht funktionieren würde kann man über Rettung nachdenken.

Ganze Platte kopieren :???: war eventuell lange Zeit mal unter Bills-Fenster das einzige vernünftige kostenfreie Backup das hinterher auch wieder funktioniert hat und für viele derzeit noch das erste was ihnen in Punkto Backup einfällt, ist aber nur bedingt brauchbar und wenn man es als Allerheilmittel nehmen will, dann sollte man wissen was man da macht. Es reicht jedenfalls nicht aus wenn man sich mit Plattenspezifikationen, MTBF, und Erhöhung der Lebensdauer durch verbesserter Aerodynamik innerhalb der Platte bei Nutzung irgendwelcher ausgeklügelten Features auskennt, solange ich hier lese:
Und natürlich mußte ich sie via Partitionierer auch mounten. Das Problem dabei ist aber, daß die gemounteten Partitionen nicht in meinem Verzeichnis erscheinen, sondern unter dem root-Verzeichnis, auf das ich als normaler user keinen Zugriff habe. Logge ich mich jedoch für das Kopieren als root ein, dann kann ich zwar auf die zu rettenden Partitionen zugreifen und die Daten kopieren. Aber dann sind sämtliche kopierten Dateien wegen der Dateizugriffsrechte nur für den root-User zugreifbar. Ich hab deshalb versuchsweise das root-Verzeichnis für normale User zugreifbar gemacht, um die Daten als normaler user zu kopieren. Aber auch dort kann ich als normaler user die Partitionen der defekten Platte nicht sehen.
sehe ich zu wenig Grundlagen um mit einem Platten- oder Partitionsimage unter Linux vernünftig umgehen zu können.

Was macht dd_rescue oder ddrescue im Normalfall? Es ließt jedes Byte von der Platte und kopiert es genauso "woandershin"
also das selbe wie dd.

Was machen solche Programme wenn sie irgendwo auf einen Lesefehler stoßen? (Lesefehler bedeutet hier die Platte selbst hat schon x-Mal versucht den entsprechenden Block zu lesen und hat festgestellt da gibt es immer wieder Fehler die sie nicht korrigieren kann, bis ein solcher Fehler erstmal bis ins Betriebssystem weitergegeben wird, kann die Platte schon bis zu einer Minute mehr als 100Mal versucht haben einen solchen Block zu lesen, bevor sie hier einen Lesefehler melden), sie brechen in einem solchem Fehlerfall nicht ab wie jedes normale Programm es tun würde, sondern füllen den entsprechenden Block im "woandershin" mit NULLEN und machen einfach mit dem nächsten Block weiter.
also das selbe wie dd mit der zusätlichen Option "conv=noerror,sync"

Was machen sie nun anders als dd ? Sie versuchen je nach Option so lange den Block zu lesen bis irgendwann mal zufällig der Block fehlerfrei gelesen werden kann. Ob sie das nun jetzt gleich machen oder erst später wenn sie den Rest der Platte fertig gelesen haben, und ob sie sich von vorne oder von hinten an einen solchen defekten Block heranpirschen dabei noch zusätzlich versuchen mit variablen Blockgrößen arbeiten und ob sie das nun 3 oder 57 Mal versuchen bis sie aufgeben ist erstmal Wurst. Fakt ist, wenn permanent auch nur ein Bit in einem Block zuviel gekippt ist, ist der ganze Block hinterher NULL, ob sie nun die Platte zwingen das 500 Mal zu lesen oder 5000 Mal, die Platte und die angrenzenden Bereiche auf der Scheibe werden dabei nicht besser.

Aber sie lesen jeden Block, ob da nun aktuelle Daten drinnen stehen oder nicht, können sie nicht erkennen. Ob ein defekter Block im Dateisystem aktuelle Daten, Verwaltungsdaten, gelöschte Daten, oder Block noch nie beschrieben wurde, ist egal, es wird jeder Block gleich behandelt. Selbst wenn schon die Reserveblöcke der Platte ausgegangen sind und das Filesystem selbst schon gemerkt hat, "da stimmt was nicht mit diesem Block ich setze in mal in meine Badblockliste und nutze ihn nicht mehr", vollkommen egal auch dieser Block obwohl schon vom Dateisystem als defekt erkannt muss gelesen werden, auch wenn dabei die ganze Platte das rauchen anfängt.

Willst du das wirklich jetzt schon versuchen :???: Die Platte wird dabei nicht besser und im allerdümmsten Fall ist sie vollständig abgeraucht bevor die wichtigen Daten gelesen sind und auch desshalb nur weil dort uralte gelöschte Daten auch mit aller Gewalt nicht mehr lesbar waren. Und das dabei entstandene unfertig Image ist dann auch nicht benutzbar, also selbst wenn dort wichtige Dateien noch vorher "gerettet" werden konnten wirst du sie niemals mehr sehen ;) Je nach dem derzeitigem Zustand deiner Platte kann das auch zur Autopsie werden noch bevor überhaupt die Krankheit als harmlose Grippe identifiziert worden ist.

  • # Neue Platte rein. (im folgenden wird diese Platte /dev/sdc benannt sein)
    # Eine Partitionierung auf die neue sdc Platte die in etwa der Partitionsgröße der alten Platte entspricht, ( jedenfalls sollten die einzelnen Partitionen dabei nicht unbedingt viel kleiner sein als jetzt schon.
    # Auf diese Partitionen dann Dateisysteme anlegen.
    # Dann die alte Platte rein. (im folgenden wird diese Platte /dev/sdd genannt sein)
    # Spätestens ab hier jetzt aber Manns genug sein und als root auf der Konsole arbeiten und nicht mit YAST, es sollte weiterhin aufgepasst werden das hier nichts irgendwie automatisch vom System gemountet wird.
    # Benötigt werden 2 freie Mountpointe also zB /mnt und /mnt1 (eventuell welche anlegen)
    # Anfangen mit der Partition auf der die wichtigsten Daten drauf sind. (Beispiel Partion 3 /home)
    # die alte Platte reicht mounten readonly, damit wird dann auch gleich noch ein neuschreiben der Inodeblöcke beim ändern atime verhindert
Code:
mount -o ro /dev/sdd3 /mnt 
mount /dev/sdc3 /mnt1
rsync -av /mnt/*   /mnt1/
  • # eine 2. Konsolsitzung eröffnen auch als User Root
    # dort mit dmesg oder tail /var/log/messages (oder was immer systemd Neuartiges dafür erfunden haben mag) schauen was die letzten Kernelmeldungen sind
    # jetzt in aller Ruhe ein paar Stunden spazieren gehen, und anschließend mal schauen um wieviel die Kernelmeldungen gewachsen sind und ob dort überhaupt irgendwelche Lesefehler vom Dateisystem oder von der Platte zu finden sind.
    # wenn rsync fertig dann beide Partitionen umounten

genauso dann anschließend mit den anderen Partitionen verfahren. bei rsync sollten eventuell die Optionen etwas angepasst werden, je nach dem was du alles nutzt. Statt "-av" könnte also durchaus auch sowas wie "-AHPSXavx" notwendig werden.

robi
 
Hi,

zunächst mal herzlichen Dank an alle Beteiligten, auch an robi. Zu seinem Beitrag sag ich später noch etwas.

Ich hab die Daten inzwischen -wie es scheint: komplett- von der defekten Platte auf die neue hinüber gerettet, und zwar durch einfaches Kopieren. Das ging gerade nochmal gut, aber nun isses geschafft. Leider hab ich mir bei der Lösung des einen Problems gleich zwei neue eingehandelt: Ich wollte die Partition mit den geretteten Daten zum neuen /home machen. Weil sich das aktuelle, nahezu "leere" /home nich aushängen ließ, ich aber mit der nahezu leeren Partition nichts anfangen kann, hab ich die Partition mit den geretteten Daten als /home eingehängt, in der Absicht, daran anschließend das "leere" /home auszuhängen. Doch das ging völlig daneben, mit der Folge, daß ich nun zwei /home's habe, von denen sich keines mehr aushängen läßt. Vom YAST-Partitionierer erhalte ich lediglich die Systemfehlernummer -3002, mit der ich leider gar nix anfangen kann.

Das /home mit den geretteten Daten is /sda5 und das "leere" /home ist /sdb7

Kann mir jemand sagen, wie ich /sdb7 als /home loswerde. "umount" habe ich bereits probiert. Da erhalte ich als Fehlermeldung:

umount -f /dev/sdb7
umount: cannot unmount /dev/sdb7 -- /dev/sda5 is mounted over it on the same point

und

umount -f /dev/sdb5
umount: /home: device is busy.

Zusammen mit den Daten von der defekten Platte hab ich mir offenbar erneut eine Konfiguration eingehandelt, die bei mir einfach unerträglichen Müll produziert, der in der Interimskonfiguration mit /sdb7 als /home nicht auftrat. Zum einen liege ich wieder im clinch mit "GNOME-DO", dem wohl dämlichsten Stück Weichware seit dem Turmbau zu Babel. Dämlich vor allem deshalb, weil der Typ, der das zusammengeschustert hat, sich ausgerechnet die Leertaste als Funktionstaste zum Aufruf seines "Programms" ausgesucht hat. Man stelle sich einmal vor, man sitzt gemütlich vor dem Rechner, will einen Text eingeben und jedesmal wenn man die Leertaste drückt, erscheint im Text kein Blank, stattdessen hat man jedesmal dieses unsäglich dümmliche GNOME-DO vor der Nase. Wenn ich den Typ, der sich diesen Mist ausgedacht, erwische, dreh ich ihm eigenhändig den Hals rum.

Ich bin mir im übrigen fast sicher, daß er auch für das zweite Problem verantwortlich ist, mit dem ich mich herumplage: Immer wenn ich den Rechner wieder aus dem Bereitschaftsmodus aufwecke, muß ich anschließend per YAST im Menue-Punkt "System-Tastaturlayout" zwischen "Deutsch" und "Deutsch (mit toten Tasten)" hin und her wechseln, weil sonst die Tastatur spinnt: Drücken von ALT-GR wirkt wie Carriage return, was es häufig unmöglich macht, Eingaben korrekt zu beenden. Die "Pfeil hoch"-Taste ruft die App "Bildschirmfoto aufnehmen" auf etc... Solange /sb7 als nahezu leeres /home fungierte, war von diesen beiden Problemen nix zu sehen, und ich hatte schon die leise Hoffnung, diesen Bockmist endgültig los zu sein. Nach der Datenrettung ist er nun leider wieder aufgetaucht. Die Ursache muß also in meinem /home-Verzeichnis zu finden sein. In der "/etc/sysconfig" hab ich schon zig-mal ergebnislos herumgesucht. Wenn ich GNOME-DO rausschmeiße, verschwindet zwar dieses dämliche Menue, aber der Rest bleibt unverändert. In den /.gnome-Verzeichnissen hab ich leider auch nix passendes gefunden, aber gut möglich, daß ich etwas übersehen hab.

Hat jmd. eine Idee, wo ich suchen soll?

Dank im voraus
Gruß Justaff
 
A

Anonymous

Gast
Justaff schrieb:
Vom YAST-Partitionierer erhalte ich lediglich die Systemfehlernummer -3002, mit der ich leider gar nix anfangen kann.

Das /home mit den geretteten Daten is /sda5 und das "leere" /home ist /sdb7

Kann mir jemand sagen, wie ich /sdb7 als /home loswerde. "umount" habe ich bereits probiert. Da erhalte ich als Fehlermeldung:

umount -f /dev/sdb7
umount: cannot unmount /dev/sdb7 -- /dev/sda5 is mounted over it on the same point

und

umount -f /dev/sdb5
umount: /home: device is busy.
Ich habe hier nicht umsonst die Befürchtung geäußert, dass etwas Grundwissen fehlt, du hast 2 Filesysteme übereinander auf /home gemountet, und im obersten hat ein angemeldeter User Dateien offen. Das kann durchaus ein schönes durcheinander ergeben, besonders wenn dort von beiden Dateisystemen gleichzeitig Konfigurationsdateien ein und des selben Users offen sein sollten.

entweder in den Runlevel 1 fahren, dort als root anmelden, beide umounten und dann sauber das eine mounten was du brauchts, ober noch besser, die /etc/fstab anpassen (mit der Konsole und/oder einen Texteditor nicht mit dem Yast) und dann rebooten.

robi
 
Oben