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

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

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 die folgende Ausgabe:

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? Kann ich sie wiederherstellen?

Antwort1

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

  1. Sie haben Ihren Computer nicht neu gestartet.
  2. Das Laufwerk war zum Zeitpunkt der Tabellenänderung im Einsatz.

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

Wie macht man das:

Gehen Sie zu /sys/block/sda. Dort sehen Sie für jede Partition ein Verzeichnis ( sda1, sda2, usw.). In jedem dieser Verzeichnisse befindet sich eine Datei mit dem Namen startund size(also /sys/block/sda/sda1/start). Wenn Sie Ihre Partitionstabelle mit genau denselben Startpositionen und Größen neu erstellen, ist alles in Ordnung.

Beachten Sie, dass der Partitionstyp nicht gespeichert wird. Linux interessiert sich nicht für diese Information. Sie müssen sich also nach der Neuerstellung merken, auf welchen Partitionstyp (NTFS oder was auch immer) Sie eingestellt haben.


Beispiel

Originaldiskette:

# fdisk -l /dev/sdc

Datenträger /dev/sdc: 8006 MB, 8006926336 Bytes, 15638528 Sektoren
Einheiten = Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physisch): 512 Bytes / 512 Bytes
I/O-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Datenträgerkennung: 0x000ce29c

   Gerät Booten Start Ende Blöcke Id System
/dev/sdc1 2048 2099199 1048576 83 Linux
/dev/sdc2 2099200 15638527 6769664 83 Linux
grep sdc
/dev/sdc2 auf /mnt/tmp Typ xfs (rw)
# Katze /mnt/tmp/Welt
Hallo

Löschen der Partitionstabelle

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

Änderungen bleiben nur im Speicher, bis Sie sich entscheiden, sie zu 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

Datenträger /dev/sdc: 8006 MB, 8006926336 Bytes, 15638528 Sektoren
Einheiten = Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physisch): 512 Bytes / 512 Bytes
I/O-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Datenträgerkennung: 0x000ce29c

   Gerät Booten Start Ende Blöcke 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 beschäftigt.
Der Kernel verwendet noch die alte Tabelle. Die neue Tabelle wird verwendet bei
beim nächsten Neustart oder nachdem Sie partprobe(8) oder kpartx(8) ausgeführt haben
Datenträger werden synchronisiert.

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

# Katze /mnt/tmp/Welt
Hallo

Holen Sie sich die Offsets

# cd /sys/klasse/block/sdc

# ls
Ausrichtungsoffset Gerät@ Ereignisse_Umfrage_msecs Leistung/ ro Slaves/
bdi@ discard_alignment ext_range Warteschlange/ sdc1/ stat
Fähigkeit Ereignisse Inhaber/ Bereich sdc2/ Subsystem@
dev events_async inflight entfernbare Größe uevent

# Katze sdc1/start
2048

# Katze sdc1/Größe
2097152

# Katze sdc2/start
2099200

# cat sdc2/Größe
13539328

Wiederherstellen der Partitionstabelle

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

Änderungen bleiben nur im Speicher, bis Sie sich entscheiden, sie zu 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 erweitert
Auswählen (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 der Größe 1 GiB ist eingestellt

Befehl (m für Hilfe): n
Partitionstyp:
   p primär (1 primär, 0 erweitert, 3 frei)
   e erweitert
Auswählen (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 mit einer Größe von 6,5 GiB ist eingestellt

Befehl (m für Hilfe): p

Datenträger /dev/sdc: 8006 MB, 8006926336 Bytes, 15638528 Sektoren
Einheiten = Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physisch): 512 Bytes / 512 Bytes
I/O-Größe (minimal/optimal): 512 Bytes / 512 Bytes
Datenträgerkennung: 0x000ce29c

   Gerät Booten Start Ende Blöcke 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 beschäftigt.
Der Kernel verwendet noch die alte Tabelle. Die neue Tabelle wird verwendet bei
beim nächsten Neustart oder nachdem Sie partprobe(8) oder kpartx(8) ausgeführt haben
Datenträger werden synchronisiert.

!!Beachten Sie, dass wir beim Angeben des letzten Sektors die Größe -1 verwenden.!!

Überprüfung

Lassen Sie uns das Laufwerk aushängen, partprobeden Kernel anweisen, die neue Tabelle abzurufen, es dann erneut aushängen und überprüfen, ob wir noch an unsere Datei gelangen.

# umount /mnt/tmp/

# Teilprobe /dev/sdc

# mount /dev/sdc2 /mnt/tmp

# Katze /mnt/tmp/Welt
Hallo

Antwort2

Sie können es mitTestdiskum die Partitionstabelle wiederherzustellen. Testdisk liest die Oberfläche der Festplatte und versucht zu bestimmen, wo Partitionen beginnen und enden.

Antwort3

partedverfügt über einen Rettungsbefehl, der den Anfang und die Länge des Dateisystems ermitteln kann, wenn Sie ungefähr wissen, wo es war.

Antwort4

Wenn Sie zufällig die Abmessungen der NTFS-Festplatte kennen, können Sie diese „möglicherweise“ mit fdisk oder parted zurücksetzen, aber ich glaube, da haben Sie Pech.

verwandte Informationen