Greifen Sie auf die Ext4-Festplatte zu, die den Superblock und seine Backups verloren hat

Greifen Sie auf die Ext4-Festplatte zu, die den Superblock und seine Backups verloren hat

Ich hatte eine seltsame Situation mit der Festplatte meines Systems. Es ist ein Linux-System mit 3 Partitionen, Boot, Swap und Dateisystem (ext4). Vor ein paar Tagen habe ich Knoppix von einem USB-Stick aus verwendet (ich habe den bootfähigen USB-Stick selbst aus einem Knoppix-Image erstellt), weil ich eine nicht lesbare Festplatte überprüfen wollte ... und ich hatte zwei nicht lesbare Festplatten!

Als ich das System neu gestartet habe, wurden auf meinem Bildschirm Fehlermeldungen wie diese angezeigt:

error: failure reading sector ... from 'hd0'.

und dann habe ich nach ein paar Versuchen die Grub-Shell bekommen.

  1. Ich habe einen weiteren bootfähigen Stick mit Linux Mint erstellt und versucht herauszufinden, was schiefgelaufen ist.
    Beim Überprüfen der Festplatte mit dem Tool „Disks“ wurde angezeigt, dass die Festplatte in Ordnung ist, aber 8 fehlerhafte Sektoren aufweist (ich bin nicht sicher, ob sie vorher da waren), die Dateisystempartition war vorhanden, aber der Typ der Datenpartition war unbekannt.

  2. Ich habe versucht, testdisk auszuführen. Es hat die Partitionen gefunden, und nachdem ich die Superblöcke überprüft und den Dateisystemtyp (ext4) festgelegt hatte, konnte ich die Daten von testdisk selbst sehen, konnte die Partition jedoch immer noch nicht mounten.

  3. Testdisk schlug vor, e2fsck -p -b auszuführen, und ich habe es mit allen Superblöcken versucht, die mir Testdisk gegeben hat, aber jedes Mal, wenn fsck versuchte, etwas zu reparieren, endete es mit einem Schreibfehler auf der Festplatte.
    Zu diesem Zeitpunkt war es spät, also habe ich es für die Nacht aufgegeben, war aber irgendwie beruhigt, dass die Daten noch lesbar waren

  4. Am nächsten Tag war ich überrascht, dass die Daten nicht mehr da waren. Wahrscheinlich hat ein fsck-Lauf alles noch schlimmer gemacht, weil testdisk mir keine Superblock-Nummer mehr gab (und ich konnte die Dateien von testdisk nicht mehr sehen, egal was ich versuchte), und wenn ich versuchte, fsck mit den Nummern auszuführen, die ich vorher erhalten hatte (ich hatte sie gespeichert), bekam ich Bad magic number in super-block while trying to open /dev/sda3unabhängig von der Nummer

  5. An diesem Punkt habe ich ein Image mit Safecopy erstellt (was ich zugegebenermaßen als Erstes hätte tun sollen, aber ich war ein bisschen in Panik, also habe ich nicht daran gedacht) und es dupliziert, damit ich verschiedene Lösungen testen konnte. Jedes Mal, wenn ich einen Punkt erreichte, der mir nicht gefiel, habe ich eine neue Kopie des Startimages erstellt.

  6. Alles, was ich versucht habe, hat jedoch nicht geholfen. Ich habe einen Vorschlag gefunden, mkfs mit der Option -S zu verwenden, damit nur die Superblöcke neu erstellt werden, aber als ich das ausprobiert und anschließend fsck darauf ausgeführt habe (wie vom Tool vorgeschlagen), konnte ich zwar wieder auf die Partition zugreifen, aber die Partition war völlig leer. So leer, dass nicht einmal Photorec mehr Daten finden konnte (es fand Daten auf dem Image, bevor es mkfs + fsck ausgeführt hat).

Ich habe R-Linux auf einem der Images ausgeführt, konnte aber nichts wiederherstellen. Ich hatte nur „Dateien“ mit dem Namen $Inode..., aber keine erkennbare Datei- oder Verzeichnisstruktur.

Dies ist das Ergebnis vonsmartctl -a /dev/sda

smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.4.0-58-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Toshiba 2.5" HDD MQ01ABD...
Device Model:     TOSHIBA MQ01ABD100
Serial Number:    95CEC91QT
LU WWN Device Id: 5 000039 683983c2b
Firmware Version: AX0R2J
User Capacity:    1,000,204,886,016 bytes [1.00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 3.0, 6.0 Gb/s (current: 3.0 Gb/s)
Local Time is:    Tue Jun  1 22:30:50 2021 CEST
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (  120) seconds.
Offline data collection
capabilities:            (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   2) minutes.
Extended self-test routine
recommended polling time:    ( 246) minutes.
SCT capabilities:          (0x003d) SCT Status supported.
                    SCT Error Recovery Control supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
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   050    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0005   100   100   050    Pre-fail  Offline      -       0
  3 Spin_Up_Time            0x0027   100   100   001    Pre-fail  Always       -       1815
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       1377
  5 Reallocated_Sector_Ct   0x0033   100   100   050    Pre-fail  Always       -       8
  7 Seek_Error_Rate         0x000b   100   100   050    Pre-fail  Always       -       0
  8 Seek_Time_Performance   0x0005   100   100   050    Pre-fail  Offline      -       0
  9 Power_On_Hours          0x0032   053   053   000    Old_age   Always       -       19115
 10 Spin_Retry_Count        0x0033   127   100   030    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       1368
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       275
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       50
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       4455
194 Temperature_Celsius     0x0022   100   100   000    Old_age   Always       -       30 (Min/Max 13/49)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   200   200   000    Old_age   Always       -       1
220 Disk_Shift              0x0002   100   100   000    Old_age   Always       -       0
222 Loaded_Hours            0x0032   053   053   000    Old_age   Always       -       18889
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       0
224 Load_Friction           0x0022   100   100   000    Old_age   Always       -       0
226 Load-in_Time            0x0026   100   100   000    Old_age   Always       -       265
240 Head_Flying_Hours       0x0001   100   100   001    Pre-fail  Offline      -       0

SMART Error Log Version: 1
ATA Error Count: 2032 (device log contains only the most recent five errors)
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 2032 occurred at disk power-on lifetime: 19112 hours (796 days + 8 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 38 00 d8 16 40  Error: UNC at LBA = 0x0016d800 = 1497088

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 38 00 d8 16 40 00   1d+05:06:46.679  READ FPDMA QUEUED
  ef 10 03 00 00 00 a0 00   1d+05:06:46.678  SET FEATURES [Enable SATA feature]
  ef 10 02 00 00 00 a0 00   1d+05:06:46.678  SET FEATURES [Enable SATA feature]
  27 00 00 00 00 00 e0 00   1d+05:06:46.678  READ NATIVE MAX ADDRESS EXT [OBS-ACS-3]
  ec 00 00 00 00 00 a0 00   1d+05:06:46.677  IDENTIFY DEVICE

Error 2031 occurred at disk power-on lifetime: 19112 hours (796 days + 8 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 68 00 d8 16 40  Error: UNC at LBA = 0x0016d800 = 1497088

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 08 68 00 d8 16 40 00   1d+05:06:45.909  READ FPDMA QUEUED
  e5 00 00 00 00 00 00 00   1d+05:06:45.669  CHECK POWER MODE
  e5 00 00 00 00 00 00 00   1d+05:06:40.669  CHECK POWER MODE
  e5 00 00 00 00 00 00 00   1d+05:06:35.670  CHECK POWER MODE
  e5 00 00 00 00 00 00 00   1d+05:06:30.669  CHECK POWER MODE

Error 2030 occurred at disk power-on lifetime: 19110 hours (796 days + 6 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 30 00 d8 16 40  Error: UNC at LBA = 0x0016d800 = 1497088

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 00 e8 fd de 40 00   1d+02:46:45.118  READ FPDMA QUEUED
  60 00 f8 e8 fc de 40 00   1d+02:46:45.117  READ FPDMA QUEUED
  60 00 b8 e8 fb de 40 00   1d+02:46:45.116  READ FPDMA QUEUED
  60 00 b0 e8 fa de 40 00   1d+02:46:45.116  READ FPDMA QUEUED
  60 00 a8 e8 f9 de 40 00   1d+02:46:45.115  READ FPDMA QUEUED

Error 2029 occurred at disk power-on lifetime: 19110 hours (796 days + 6 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 a0 00 d8 16 40  Error: UNC at LBA = 0x0016d800 = 1497088

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 08 e8 f8 de 40 00   1d+02:46:44.968  READ FPDMA QUEUED
  60 00 00 e8 f7 de 40 00   1d+02:46:44.968  READ FPDMA QUEUED
  60 00 f0 e8 f6 de 40 00   1d+02:46:44.966  READ FPDMA QUEUED
  60 00 e8 e8 f5 de 40 00   1d+02:46:44.965  READ FPDMA QUEUED
  60 00 e0 e8 f4 de 40 00   1d+02:46:44.964  READ FPDMA QUEUED

Error 2028 occurred at disk power-on lifetime: 19110 hours (796 days + 6 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 41 88 00 d8 16 40  Error: UNC at LBA = 0x0016d800 = 1497088

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  60 00 a0 e8 e8 de 40 00   1d+02:46:44.792  READ FPDMA QUEUED
  60 00 98 e8 e7 de 40 00   1d+02:46:44.791  READ FPDMA QUEUED
  60 00 90 e8 e6 de 40 00   1d+02:46:44.788  READ FPDMA QUEUED
  60 00 78 e8 e5 de 40 00   1d+02:46:44.787  READ FPDMA QUEUED
  60 00 70 e8 e4 de 40 00   1d+02:46:44.786  READ FPDMA QUEUED

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

Antwort1

Am Ende wurde mir klar, dass Knoppix meine Partitionstabelle durcheinandergebracht hatte, als ich die Live-Version von einem USB-Stick verwendete. Die Festplatte war eigentlich in Ordnung (bis auf einige fehlerhafte Sektoren). Ich habe viele Möglichkeiten ausprobiert, um die richtigen Partitionen wiederherzustellen, aber ohne Erfolg.
Wie ich in meiner Frage und in mehreren Kommentaren sagte, konnte ich die Partition mithilfe von mkfs wieder mounten, allerdings ohne Daten, und anscheinend scheint dies die einzige Möglichkeit zu sein, Superblöcke wiederherzustellen, aber ich konnte keine richtige Methode dafür finden.

Nach zweiwöchigen Versuchen habe ich beschlossen, alles zu formatieren und von vorne zu beginnen, da alle wichtigen Daten, die ich brauchte, sowieso in einem Repository gespeichert sind.

Antwort2

Lesen Sie IMMER, aber IMMER die Dokumentation, bevor Sie einfach blind etwas tun, man mkfs.ext4und suchen Sie nach der -SFlagge, die Ihnen mitteilt, dass Sie sie e2fsckanschließend ausführen müssen.

Ich vermute, wenn Sie auf Ihre gespeicherte Kopie der Festplatte geschrieben haben, ist diese jetzt auch tot. Regel 1 der Festplattenwiederherstellung ist, so schnell wie möglich eine Kopie zu erstellen. Regel 2 ist, NIEMALS auf Ihre gespeicherte Kopie zu schreiben.

Mir ist aufgefallen, dass Sie die Festplatte ( /dev/sda) mit der Partition ( /dev/sda3) verwechseln. Wo Sie sicher sind, dass mkfs -S /dev/sdaSie versucht haben, ein Dateisystem auf der Festplatte und nicht auf der Partition neu zu erstellen. Wenn Sie die Partitionstabelle wiederherstellen können,könnteerfolgreich ausgeführt werden können mkfs -S /dev/sda3. Oder Äquivalente über das Loop-Gerät.

HINWEIS: Bitte versuchen Sie nicht mehr, sowohl auf Ihre sterbende Festplatte als auch auf Ihre einzige gespeicherte Kopie zu schreiben. Erstellen Sie eine neue Kopie der Kopie und arbeiten Sie daran.

verwandte Informationen