Ich habe meine Partitionstabelle mit gparted gelöscht. Gibt es eine Möglichkeit, meine Partition wiederherzustellen?

7

Ich habe meine NTFS-Partitionstabelle (Windows) mit gparted gelöscht, indem ich auf "Gerät-> Partitionstabelle erstellen ... und dann anwenden" geklickt habe. Gibt es eine Möglichkeit, meine NTFS-Partition wiederherzustellen?

Ich habe versucht, diesen Befehl zu verwenden. gpart /dev/sda Ich erhalte Folgendes:

Begin scan...
End scan.

Checking partitions...
Ok.

Guessed primary partition table:
Primary partition(1)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Primary partition(2)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Primary partition(3)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Primary partition(4)
type: 000(0x00)(unused)
size: 0mb #s(0) s(0-0)
chs:  (0/0/0)-(0/0/0)d (0/0/0)-(0/0/0)r

Was bedeutet diese Ausgabe? Gibt es eine Möglichkeit, mich zu erholen?

Mustafa
quelle
versuche es testdisk.
Frostschutz

Antworten:

4

Sie können versuchen, die Partitionstabelle mit testdisk wiederherzustellen. Testdisk liest die Oberfläche der Festplatte und versucht festzustellen, wo Partitionen beginnen und enden.

Curtis Gedak
quelle
7

Es besteht die Möglichkeit, die Partitionstabelle wiederherzustellen, es müssen jedoch zwei Bedingungen erfüllt sein:

  1. Sie haben Ihren Computer nicht neu gestartet.
  2. Das Laufwerk war zum Zeitpunkt des Tabellenwechsels in Gebrauch.

Dies funktioniert so, dass der Kernel das Partitionslayout im Speicher behält. Wenn eine Partition verwendet wird, muss sie wissen, wo die Partition beginnt, damit sie das erneute Laden der neuen Tabelle verweigert, bis sie nicht mehr verwendet wird.

Wie macht man das:

Gehe zu /sys/block/sda. Im Innern gibt es ein Verzeichnis für jede Partition (siehe sda1, sda2usw.). In jedem von diesen befindet sich eine Datei namens startund size(so /sys/block/sda/sda1/start). Wenn Sie Ihre Partitionstabelle mit genau denselben Startpositionen und -größen neu erstellen, ist dies in Ordnung.

Beachten Sie, dass der Partitionstyp nicht beibehalten wird. Linux kümmert sich nicht um diese Informationen. Nach der Neuerstellung müssen Sie sich also merken, auf welchen Partitionstyp eingestellt wurde (NTFS oder was auch immer).


Beispiel

Originalscheibe:

# fdisk -l / dev / sdc

Festplatte / dev / sdc: 8006 MB, 8006926336 Byte, 15638528 Sektoren
Einheiten = Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch / physisch): 512 Bytes / 512 Bytes
E / A-Größe (Minimum / Optimum): 512 Bytes / 512 Bytes
Festplattenkennung: 0x000ce29c

   Gerätestart Start Ende blockiert ID-System
/ dev / sdc1 2048 2099199 1048576 83 Linux
/ dev / sdc2 2099200 15638527 6769664 83 Linux
# mount | grep sdc
/ dev / sdc2 on / mnt / tmp Typ xfs (rw)
# cat / mnt / tmp / world
Hallo

Löschen der Partitionstabelle

# fdisk / dev / sdc
Willkommen bei fdisk (util-linux 2.22.2).

Änderungen bleiben nur im Speicher, bis Sie sie schreiben.
Seien Sie vorsichtig, bevor Sie den Schreibbefehl verwenden.


Befehl (m für Hilfe): d
Partitionsnummer (1-4): 1
Partition 1 wird gelöscht

Befehl (m für Hilfe): d
Ausgewählte Partition 2
Partition 2 wird gelöscht

Befehl (m für Hilfe): p

Festplatte / dev / sdc: 8006 MB, 8006926336 Byte, 15638528 Sektoren
Einheiten = Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch / physisch): 512 Bytes / 512 Bytes
E / A-Größe (Minimum / Optimum): 512 Bytes / 512 Bytes
Festplattenkennung: 0x000ce29c

   Gerätestart Start Ende blockiert ID-System

Befehl (m für Hilfe): w
Die Partitionstabelle wurde geändert!

Aufruf von ioctl () zum erneuten Lesen der Partitionstabelle.

WARNUNG: Das erneute Lesen der Partitionstabelle ist mit Fehler 16 fehlgeschlagen: Gerät oder Ressource belegt.
Der Kernel verwendet weiterhin die alte Tabelle. Die neue Tabelle wird bei verwendet
beim nächsten Neustart oder nachdem Sie partprobe (8) oder kpartx (8) ausgeführt haben
Festplatten synchronisieren.

Beachten Sie, dass es immer noch gemountet und zugänglich ist:

# cat / mnt / tmp / world 
Hallo

Holen Sie sich die Offsets

# cd / sys / class / block / sdc

# ls
align_offset device @ events_poll_msecs power / ro Slaves /
bdi @ discard_alignment ext_range queue / sdc1 / stat
Inhaber von Fähigkeitsereignissen / Bereich sdc2 / Subsystem @
dev events_async inflight entfernbare Größe uevent

# cat sdc1 / start
2048

# cat sdc1 / size
2097152

# cat sdc2 / start
2099200

# cat sdc2 / size
13539328

Stellen Sie die Partitionstabelle wieder her

# fdisk / dev / sdc
Willkommen bei fdisk (util-linux 2.22.2).

Änderungen bleiben nur im Speicher, bis Sie sie schreiben.
Seien Sie vorsichtig, bevor Sie den Schreibbefehl verwenden.


Befehl (m für Hilfe): n
Partitionstyp:
   p primär (0 primär, 0 erweitert, 4 frei)
   e verlängert
Wählen Sie (Standard p): p
Partitionsnummer (1-4, Standard 1): 1
Erster Sektor (2048-15638527, Standard 2048): 2048
Letzter Sektor, + Sektoren oder + Größe {K, M, G} (2048-15638527, Standard 15638527): +2097151
Partition 1 vom Typ Linux und von Größe 1 GiB ist gesetzt

Befehl (m für Hilfe): n
Partitionstyp:
   p primär (1 primär, 0 erweitert, 3 frei)
   e verlängert
Wählen Sie (Standard p): p
Partitionsnummer (1-4, Standard 2): 2
Erster Sektor (2099200-15638527, Standard 2099200): 2099200
Letzter Sektor, + Sektoren oder + Größe {K, M, G} (2099200-15638527, Standard 15638527): +13539327
Partition 2 vom Typ Linux und von Größe 6,5 GiB ist festgelegt

Befehl (m für Hilfe): p

Festplatte / dev / sdc: 8006 MB, 8006926336 Byte, 15638528 Sektoren
Einheiten = Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch / physisch): 512 Bytes / 512 Bytes
E / A-Größe (Minimum / Optimum): 512 Bytes / 512 Bytes
Festplattenkennung: 0x000ce29c

   Gerätestart Start Ende blockiert ID-System
/ dev / sdc1 2048 2099199 1048576 83 Linux
/ dev / sdc2 2099200 15638527 6769664 83 Linux

Befehl (m für Hilfe): w
Die Partitionstabelle wurde geändert!

Aufruf von ioctl () zum erneuten Lesen der Partitionstabelle.

WARNUNG: Das erneute Lesen der Partitionstabelle ist mit Fehler 16 fehlgeschlagen: Gerät oder Ressource belegt.
Der Kernel verwendet weiterhin die alte Tabelle. Die neue Tabelle wird bei verwendet
beim nächsten Neustart oder nachdem Sie partprobe (8) oder kpartx (8) ausgeführt haben
Festplatten synchronisieren.

!! Beachten Sie, dass wir bei der Angabe des letzten Sektors die Größe 1 verwenden. !!

Nachprüfung

Lassen Sie uns das Laufwerk partprobeaushängen , ausführen , um den Kernel anzuweisen, die neue Tabelle aufzunehmen, dann erneut einhängen und überprüfen, ob wir noch zu unserer Datei gelangen.

# umount / mnt / tmp /

# partprobe / dev / sdc

# mount / dev / sdc2 / mnt / tmp

# cat / mnt / tmp / world 
Hallo
Patrick
quelle
+1 Wie ich wünschte, ich hätte damals die Gelegenheit gehabt, dies zu versuchen.
Vix
1

parted hat einen Rettungsbefehl, der nach dem Start und der Länge des Dateisystems suchen kann, wenn Sie ungefähr wissen, wo es sich befand.

psusi
quelle
0

Wenn Sie die Abmessungen der NTFS-Festplatte kennen, können Sie diese möglicherweise mit fdisk oder parted zurücksetzen, aber ich denke, Sie haben kein Glück.

slm
quelle