it-swarm.com.de

NTFS-Partition plötzlich unbrauchbar, "Fehler: Dateiende beim Lesen von / dev / sdX"

Ich habe eine Ubuntu-Box auf einer SSD und eine sekundäre Festplatte (/dev/sdb) mit einigen NTFS-Partitionen.

Irgendein Zusammenhang: Gestern hat die Maschine nicht reagiert und ich musste sie zwangsweise abschalten (Stromausfall). Beim Neustart würde Ubuntu in den Notfallmodus wechseln. Ich fand heraus, dass die UUID der Festplatte verschwunden war (nicht in blkid angezeigt wurde), wodurch /etc/fstab beschädigt wurde. Ich habe die Zeile der Festplatte auf fstab auskommentiert und es geschafft, Ubuntu zu booten.

Jetzt versuche ich, die Festplatte erneut zu mounten. Zuerst habe ich Gparted ausprobiert. Dies ist die Ausgabe von libparted (verwendet von gparted):

======================
libparted : 3.2
======================
end of file while reading /dev/sdb
The primary GPT table is corrupt, but the backup appears OK, so that will be used.

Interessanterweise zeigt Sudo blkid/dev/sdb mit einer PTUUID anstelle einer UUID:

$ Sudo blkid
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/sda1: UUID="e407bc1c-4c2d-4dae-80ce-e6bd96346698" TYPE="ext4" PARTUUID="659e6a1e-01"
/dev/sda5: UUID="f9500440-cddf-41f6-8512-5a30e66fbf3d" TYPE="swap" PARTUUID="659e6a1e-05"
/dev/sda6: UUID="18abc384-a610-4f65-8430-0109548a89ef" TYPE="ext4" PARTUUID="659e6a1e-06"
/dev/sdb: PTUUID="a6e9090d-b5ab-412a-8568-2eee08fa3fa8" PTTYPE="gpt"

Ich bin zuversichtlich, dass die Partitionen noch vorhanden sind. Ich kann sie nur nicht bereitstellen. parted listet sie korrekt auf:

$ Sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) select /dev/sdb                                                  
Using /dev/sdb
(parted) p                                                                
Error: end of file while reading /dev/sdb
Retry/Ignore/Cancel? i                                                    
Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used.
OK/Cancel? OK                                                             
Model: ATA ST1000LM024 HN-M (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  316MB   315MB                EFI system partition          boot, esp
 2      316MB   945MB   629MB   ntfs         Basic data partition          hidden, diag
 3      945MB   1079MB  134MB                Microsoft reserved partition  msftres
 4      1079MB  979GB   978GB   ntfs         Basic data partition          msftdata
 5      979GB   1000GB  21,5GB  ntfs         Basic data partition          hidden, diag

(parted) q

Es gibt also 2 Fehler (Error: end of file while reading /dev/sdb, Error: The primary GPT table is corrupt, but the backup appears OK, so that will be used.), die die Partition wahrscheinlich unmountbar machen. Irgendwelche Ideen, wie man sie löst?

EDIT Dies ist die Ausgabe von ntfsfix:

$ Sudo ntfsfix /dev/sdb
Mounting volume... NTFS signature is missing.
FAILED
Attempting to correct errors... NTFS signature is missing.
FAILED
Failed to startup volume: Invalid argument
NTFS signature is missing.
Trying the alternate boot sector
Unrecoverable error
Volume is corrupt. You should run chkdsk.

EDIT Ausgabe von gdisk

GPT fdisk (gdisk) version 1.0.1

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: damaged

****************************************************************************
Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk
verification and recovery are STRONGLY recommended.
****************************************************************************

EDIT Dies ist der Befehl, den ich falsch ausgeführt habe und der den Fehler verursacht hat: Sudo dd if=/dev/zero of=/dev/sdb bs=512 seek=1

2
Leo Brito

TLDR: Ich konnte die Festplatte (mit Daten) wiederherstellen, indem ich mit gdisk (w -Befehl) schrieb.

Wie im Frage- und Kommentarbereich erläutert, ist dies das Szenario: Ich habe versehentlich den GPT-Header der Festplatte zerstört, indem ich dd mit 0s auf /dev/sdb ausgegeben habe.

Ich habe gdisk(8) auf der Festplatte ausgeführt, was darauf hinwies, dass der GPT-Header beschädigt war, die Sicherung jedoch in Ordnung war, und die Sicherung geladen. In der gdisk CLI habe ich den Befehl w ausgeführt (der die Partitionstabelleninformationen auf die Festplatte schreibt) und beendet. Danach wurde /dev/sdb von Ubuntu sofort erkannt und eingehängt, und es waren keine weiteren Änderungen erforderlich.

5
Leo Brito