Auf meinem persönlichen Heimcomputer mit Kubuntu Linux 13.04 habe ich Probleme beim Mounten einer Partition, die mir sehr am Herzen liegt. Meine Sicherungsrichtlinie besteht darin, etwa monatlich eine Sicherung durchzuführen, daher habe ich ab August eine Sicherung :). Gibt es eine Möglichkeit, die persönlichen Dateien auf diesem Laufwerk wiederherzustellen?
Das Laufwerk ist ein 1,5 Jahre altes 1000-GiB-Western-Digital-Green-Laufwerk mit eingeschaltetem Home-System /dev/sdc2
, eingeschaltetem Dateisystem-Root /dev/sdc6
und Mediendateien /dev/sdc3
. Deshalb sdc2
wäre natürlich derjenige zu gehen! Soweit ich weiß, gab es während der Lebensdauer der Fahrt keine Stromausfälle oder andere derartige Ereignisse. Ich habe diese Informationen durch Ausführen einer Kubuntu LiveCD erhalten:
kubuntu@kubuntu:~$ sudo fdisk -l
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00008044
Device Boot Start End Blocks Id System
/dev/sdc1 * 4094 88066047 44030977 5 Extended
/dev/sdc2 88066048 1419266047 665600000 83 Linux
/dev/sdc3 1419266048 1953523711 267128832 83 Linux
/dev/sdc5 4096 6146047 3070976 82 Linux swap / Solaris
/dev/sdc6 6148096 47106047 20478976 83 Linux
/dev/sdc7 47108096 88066047 20478976 83 Linux
kubuntu@kubuntu:~$ sudo mount -t ext4 /dev/sdc2 c1
mount: wrong fs type, bad option, bad superblock on /dev/sdc2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
kubuntu@kubuntu:~$ sudo debugfs -c /dev/sdc2
debugfs 1.42.5 (29-Jul-2012)
/dev/sdc2: Attempt to read block from filesystem resulted in short read while opening filesystem
debugfs: quit
kubuntu@kubuntu:~$ sudo fsck /dev/sdc2
fsck from util-linux 2.20.1
e2fsck 1.42.5 (29-Jul-2012)
fsck.ext4: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdc2
Could this be a zero-length partition?
kubuntu@kubuntu:~$ sudo fsck.ext4 -v /dev/sdc2
e2fsck 1.42.5 (29-Jul-2012)
fsck.ext4: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdc2
Could this be a zero-length partition?
kubuntu@kubuntu:~$ dmesg | tail
[ 2684.532855] Descriptor sense data with sense descriptors (in hex):
[ 2684.532858] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
[ 2684.532876] 05 3f c8 b0
[ 2684.532885] sd 5:0:0:0: [sdc]
[ 2684.532893] Add. Sense: Unrecovered read error - auto reallocate failed
[ 2684.532898] sd 5:0:0:0: [sdc] CDB:
[ 2684.532902] Read(10): 28 00 05 3f c8 b0 00 00 08 00
[ 2684.532917] end_request: I/O error, dev sdc, sector 88066224
[ 2684.532927] Buffer I/O error on device sdc2, logical block 22
[ 2684.532973] ata6: EH complete
Hilf mir Unix & Linux, du bist unsere einzige Hoffnung.
quelle
Antworten:
Es gibt vielleicht noch Hoffnung, aber Ihr Laufwerk scheint Hardwareprobleme zu haben (meine Interpretation des Lesefehlers in der
dmesg
Ausgabe).Sie sollten versuchen, eine Kopie dessen, was von dieser Partition wiederhergestellt werden kann, auf ein anderes Laufwerk zu erstellen (um den Zugriff auf die Disc zu minimieren). Verwenden Sie dies
ddrescue
, es kann eine Weile dauern, aber es werden die meisten, wenn nicht alle wiederherstellbaren Daten der Partition abgerufen.Starten Sie nach Möglichkeit von einer anderen CD, von einer Live-CD oder verbinden Sie das Laufwerk mit einem anderen Computer, der über ein eigenes Linux verfügt, von dem aus gestartet werden kann. Der Grund, warum ich dies tun würde, ist, dass die Lesefehler während des Vorgangs
ddrescue
wahrscheinlich einen Einfluss auf die Disc-Zugriffsgeschwindigkeit auf den anderen Partitionen haben.Wenn Sie diese Kopie haben, können Sie die Originalkopie als Datei auf einer anderen CD erstellen und eine Kopie dieser Kopie erstellen. Versuchen Sie dann, eine Dateisystemprüfung für diese Kopie durchzuführen. Wenn diese Wiederherstellung die Kopie verschlüsselt, können Sie von der Originalkopie ausgehen und noch einmal etwas anderes versuchen.
quelle
ddrescue
auf ein anderes physisches Laufwerk.ddrescue
und die meisten Dateien mit wiederherstellene2fsck
. Das Lustige ist, dass die meisten nicht wiederhergestellten Dateien die neuesten Dateien waren, für die ich kein Backup hatte. Ich frage mich, ob das ext4 eigen ist.(Ich weiß, dass dies eine alte Frage ist. Ich bin selbst auf dieses Problem gestoßen und habe meinen FS wieder zum Leben erweckt
ddrescue
, also werde ich die Erfahrung für alle anderen teilen, die darauf stoßen.)Ext- Dateisysteme speichern Backups des Superblocks - für einen Anlass wie diesen.
Bestimmen Sie zunächst die Speicherorte der Sicherungen ( stellen Sie sicher, dass Sie die Option -n haben! Andernfalls wird das Dateisystem mit einem neuen gelöscht):
Dies ist ein Testlauf (dh kein Schreiben) der FS-Erstellungsroutine. Es wird wissen , dass Sie die Offsets, wo es würde Super Sicherungen setzen , wenn es ein Dateisystem wurde zu schaffen. Wenn Sie wissen, dass Ihre FS-Blockgröße nicht 4096 ist, müssen Sie auch den Parameter angeben
-b {blocksize}
, um die richtigen Zahlen zu erhalten.Bei Blöcken der Größe 4096 befindet sich der erste Backup-Superblock bei
32768
. Wenn die folgenden Vorgänge mit derselben Fehlermeldung über fehlerhaften Superblock / kurzes Lesen fehlschlagen, versuchen Sie es mit der nächsten Superblock-Sicherung aus der Liste,mke2fs
die Sie erhalten haben.Als nächstes können Sie das Dateisystem entweder mit dem Backup-Superblock wie folgt mounten
Erkunden Sie dann den FS von Ihrem Dateimanager aus, kopieren Sie unbeschädigte Dateien usw.
Um den FS tatsächlich zu reparieren, können Sie ihn auch
fsck
mit einem solchen Backup-Superblock ausführenHier
-f
wird die Festplatte gescannt, auch wenn sie nicht verschmutzt ist, und-y
alle Anfragen zum Beheben von Problemen werden mit Ja beantwortet. Mit dieser-b
Option wird neben der Angabe des Sicherungs-Superblocks der ursprüngliche Superblock mit Informationen aus der Sicherung aktualisiert.Danach sollten Sie Ihr Dateisystem wieder haben.
Wenn e2fsck den Haupt-Superblock nicht schreiben kann Wenn der Superblock beschädigt wurde, weil er sich in einem fehlerhaften Sektor befindet,
e2fsck
wird der Lauf beendet. Versuchen Sie, den Superblock zu aktualisieren, und geben Sie die folgende Fehlermeldung aus:Offensichtlich wird der Haupt-Superblock nicht aktualisiert und der gesamte
e2fsck
Lauf ist vergebens.Sie müssen auf die Festplatte hinweisen, um diesen Sektor neu zuzuordnen, indem Sie Nullen darauf schreiben. Vielen Dank an @Keith für den Hinweis: Der nächste Befehl kann bei falscher Eingabe viel Chaos verursachen . Überprüfen Sie ihn daher dreimal , bevor Sie ihn ausführen . Hier ist die Magie:
Dadurch wird 1 Block mit einer Größe von 4096 Nullen bei Offset 0 in sdxx geschrieben. Vergessen Sie nicht, unterschiedliche Blockgrößen zu berücksichtigen, wenn dies bei Ihnen der Fall ist.
Danach können Sie in den Superblock schreiben (der sich für Sie transparent auf einem anderen physischen Sektor befindet). Jetzt führen Sie den
e2fsck
obigen Befehl erneut aus und es sollte erfolgreich sein, den Superblock zu schreiben, damit Sie den FS normal mounten können.Selbstverständlich sollten Sie jetzt die kritischen Daten auf einem anderen physischen Laufwerk sichern und ausführen, wenn Sie weiterhin das Dateisystem verwenden möchten
PS Ein großes Lob an @Nemo zu diesem Fund: Falls alle Backups des Superblocks Ihres FS beschädigt sind,
mke2fs/mkfs
gibt es die Option -S , mit der die Superblock- und Gruppendeskriptoren neu erstellt werden, als ob ein neues Dateisystem erstellt würde, ohne etwas anderes zu berühren . Aber Sie müssen absolut sicher sein , Ihre Blockgröße ist richtig und die Manpage sagt , Sie laufen soll ,e2fsck
nachdem es und es gibt keine Garantien über Daten zur Rettung gelassen wird . Lesen Sie die Manpage und geben Sie dieser Antwort ein Plus .quelle
wipefs
Sie diese bereits und es handelt sich um ein Linux-Tool, das für diesen Zweck entwickelt wurde. Siehe seineman
Seite. Informationen zur Festplatte: Um zu überprüfen, ob sie physisch schlecht verwendet wird, müssensmartctl
Sie sie möglicherweise installieren.