Ja, Sie können dies mit dem /sys
Dateisystem tun .
/sys
ist ein gefälschtes Dateisystem, das dynamisch von den Kernel- und Kerneltreibern generiert wird.
In diesem speziellen Fall können Sie zu gehen /sys/block/sda
und Sie werden ein Verzeichnis für jede Partition auf dem Laufwerk sehen. Es gibt zwei bestimmte Dateien in diesen Ordner , die Sie brauchen, start
und size
. start
Enthält den Versatz vom Anfang des Laufwerks und entspricht size
der Größe der Partition. Löschen Sie einfach die Partitionen und erstellen Sie sie mit genau den gleichen Startwerten und Größen wie in /sys
.
Zum Beispiel sieht mein Laufwerk so aus:
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 133119 65536 83 Linux
/dev/sda2 * 133120 134340607 67103744 7 HPFS/NTFS/exFAT
/dev/sda3 134340608 974675967 420167680 8e Linux LVM
/dev/sda4 974675968 976773167 1048600 82 Linux swap / Solaris
Und das habe ich in /sys/block/sda
:
sda1/
start: 2048
size: 131072
sda2/
start: 133120
size: 134207488
sda3/
start: 134340608
size: 840335360
sda4/
start: 974675968
size: 2097200
Ich habe dies getestet, um sicherzustellen, dass die Informationen korrekt sind, nachdem die Partitionstabelle auf einem laufenden System geändert wurde
/dev/sdb/start
. Wurde es in umbenanntext_range
? Kernel:4.8.15-1-MANJARO
/sys/block/sdb/start
nicht/dev/sdb/start
stat
da, aber neinstart
.fdisk
da hier die Anzahl der Sektoren direkt eingegeben werden kann und Sie die Werte überprüfen können, bevor Sie auf die Festplatte schreiben. Ich habe eine Festplatte erfolgreich wiederhergestellt, indem ich die erste Partition erstellt, das Sein akzeptiert und dann "+ size" (von oben) für das Endestart
eingegeben habe , die zweite Partition von / sys ... und "+ size" erneut eingab und so weiter ... Größe der Partitionen vor dem Schreiben der neuen Tabelle. Viel Glück!Ich habe ein Skript erstellt, um dieses Problem zu lösen, OHNE GARANTIE . (aber ich habe auf meiner virtuellen Maschine getestet)
Führen Sie das folgende Skript mit beschädigter Festplatte als erstem Parameter aus: $ ./repart.sh sda
Die Ausgabe ist ein sfdisk-Format. Aber Vorsicht , diese Datei muss modifiziert werden, um verwendet zu werden. Erhöhen Sie bei erweitertem Partitionstyp = 5 die Größe unter Verwendung des gesamten logischen Speicherplatzes plus des Speicherplatzes zwischen dem Start der erweiterten und dem Start der ersten logischen Partition.
Sie müssen den Typ von XX in die Nummer des Partitionstyps ändern . Stellen Sie die bootfähige Partition in die erste Zeile.
Übernehmen Sie diese Änderungen
Partitionstabellen erneut lesen
Maden wieder einbauen
quelle
Hast du testdisk ausprobiert ? Es kann die Festplatte scannen und verlorene Partitionstabellen wiederherstellen, auch nachdem Sie neu gestartet haben.
Es ist vorinstalliert für Debian und vermutlich auch für Ubuntu. Wahrscheinlich andere Distributionen.
Wenn Sie eine gparted-CD booten, ist es wahrscheinlich sinnvoll, zu überprüfen, ob sie darauf vorinstalliert ist.
quelle